Я хочу использовать PDFBox для печати PDF файлов, созданных iText. Я пробовал это успешно с классом PDDocument и его методом print(). Вы можете найти документацию здесь: http://pdfbox.apache.org/apidocs/.
(Я использую этот код:)
public static void printPDF(String fileName)
throws IOException, PrinterException {
PDDocument doc = PDDocument.load(fileName);
doc.print();
}
Метод print() отлично работает, но есть одна проблема: когда мне нужно печатать несколько файлов, метод просит меня выбрать принтер для каждого из документов.
Есть ли способ установить принтер только один раз?
Для выбора принтера я могу использовать этот код, например:
public static PrintService choosePrinter() {
PrinterJob printJob = PrinterJob.getPrinterJob();
if(printJob.printDialog()) {
return printJob.getPrintService();
}
else {
return null;
}
}
Заранее спасибо
Решение:
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);
}