Hi!
John, maybe it was, but I still get only one page printed out.
I'm using this code:
private static void printWithPDFBox2(File pdfFile, int copies) {
PDDocument document = null;
try {
document = PDDocument.load(pdfFile);
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setJobName(pdfFile.getName());
printJob.setPrintService(PrintServiceLookup.lookupDefaultPrintService());
printJob.setCopies(copies);
HashPrintRequestAttributeSet printRequestAttributeSet = new
HashPrintRequestAttributeSet();
printRequestAttributeSet.add(new Copies(copies));
printRequestAttributeSet.add(SheetCollate.COLLATED);
PDFPrinter printer = new PDFPrinter(document,
Scaling.ACTUAL_SIZE, Orientation.AUTO);
printer.print(printJob, printRequestAttributeSet);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (document != null) {
try {
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
When the print dialog is displayed I see field "Number of copies:" set to 5
and "Collate" is checked, but, again, only one page is printed out.
I've tried with Java products for working with PDF that cost thousands od $
and also only get one page out. It is something with my printer or
something in Java.
I'm working on Linux, so I'm using cups-pdf package that provides a PDF
printer. So, I'm printing PDF files via Java and I get out a PDF file. :)
If I use the code above, I get a PDF file with one page, but if I do: "lpr
-#5 -o Collate=True example.pdf" I get a PDF with 5 pages, becuase
example.pdf has only one page.
Any ideas why I'm getting one page PDF in Java?
Best regards,
Kovi
2015-05-08 23:40 GMT+02:00 John Hewson <[email protected]>:
> This has been fixed in 2.0:
>
> https://issues.apache.org/jira/browse/PDFBOX-2094 <
> https://issues.apache.org/jira/browse/PDFBOX-2094>
>
> — John
>
> > On 7 May 2015, at 16:04, Gregor Kovač <[email protected]> wrote:
> >
> > Hi!
> >
> > I'm using PDFBox 1.8.9 and using this method to print a PDF file:
> >
> > private static void printWithPDFBox(File pdfFile, int copies) {
> > PDDocument document = null;
> >
> > try {
> > document = PDDocument.load(pdfFile);
> >
> > PrintService printService =
> > PrintServiceLookup.lookupDefaultPrintService();
> > PrinterJob printJob = PrinterJob.getPrinterJob();
> > printJob.setJobName(pdfFile.getName());
> > printJob.setPrintService(printService);
> > printJob.setCopies(copies);
> >
> > HashPrintRequestAttributeSet printRequestAttributeSet = new
> > HashPrintRequestAttributeSet();
> > printRequestAttributeSet.add(new Copies(copies));
> > printRequestAttributeSet.add(SheetCollate.COLLATED);
> > printJob.setPageable(new PDPageable(document, printJob));
> > printJob.print(printRequestAttributeSet);
> > } catch (Exception e) {
> > e.printStackTrace();
> > } finally {
> > if (document != null) {
> > try {
> > document.close();
> > } catch (IOException e) {
> > e.printStackTrace();
> > }
> > }
> > }
> > }
> >
> >
> > I have a test file with one page and when I call this method with copies
> > greater than 1 I only get one page printed out.
> >
> > Am I doing something wrong?
> >
> > Best regards,
> > Kovi
> >
> > --
> > -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
> > | In A World Without Fences Who Needs Gates? |
> > | Experience Linux. |
> > -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
>
>
--
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
| In A World Without Fences Who Needs Gates? |
| Experience Linux. |
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~