PDFBox: Comment imprimer le pdf avec une imprimante spécifiée?
Je veux utiliser PDFBox pour l'impression de fichiers PDF créé par iText. J'ai essayé avec succès avec PDDocument classe et de sa méthode print(). Vous pouvez trouver de la documentation ici: http://pdfbox.apache.org/apidocs/.
(Je suis en utilisant ce code:)
public static void printPDF(String fileName)
throws IOException, PrinterException {
PDDocument doc = PDDocument.load(fileName);
doc.print();
}
La méthode print() fonctionne très bien, mais il y a un problème: Quand j'en ai besoin pour imprimer plusieurs fichiers, la méthode me demande de sélectionner une imprimante pour chacun des documents..
Est-il de toute façon comment définir l'imprimante qu'une seule fois?
Pour la sélection de l'imprimante je peux utiliser ce code par exemple:
public static PrintService choosePrinter() {
PrinterJob printJob = PrinterJob.getPrinterJob();
if(printJob.printDialog()) {
return printJob.getPrintService();
}
else {
return null;
}
}
Merci d'avance
Solution:
public static PrintService choosePrinter() {
PrinterJob printJob = PrinterJob.getPrinterJob();
if(printJob.printDialog()) {
return printJob.getPrintService();
}
else {
return null;
}
}
public static void printPDF(String fileName, PrintService printer)
throws IOException, PrinterException {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintService(printer);
PDDocument doc = PDDocument.load(fileName);
doc.silentPrint(job);
}
source d'informationauteur Firzen
Vous devez vous connecter pour publier un commentaire.
PDDocument
offre également d'autres méthodes d'impression que le sans paramètreprint()
:La
silentPrint
méthodes de ne pas afficher la boîte de dialogue.Vous pouvez obtenir ce que vous voulez en sélectionnant d'abord une imprimante et ensuite appeler
silentPrint
avecPrinterJob
instances initialisé en conséquence.utiliser le code ci-dessus pour imprimer des pdf à l'aide d'apache Pdfbox
EDIT: la version 2.0.0
Vous pouvez utiliser le setPrintService() la méthode sur le PrinterJob Objet.
Cela fonctionne très bien pour moi. Mais c'est une vieille version pdfbox. La nouvelle version supporte pas .charger et .silentprint