On 26 Oct 2015, at 03:54, Dominic Eubel <[email protected]> wrote:
> 
> Hey guys,
> I hope, it's the right way for my problem :)
> 
> We need to print pdfs on very small pages. Like on 40mm x 26mm. (It's a Zebra 
> thermal printer)
> For testing, I want to print a A4-testpage on this little label.
> 
> If I try it with native dialog the a4 page is scaled correctly to 40x26. 
> (equal if landscape or portrait with keeping aspect ratio).
> 
> Now, if I try to print with Java/pdfbox the page is not scaling correctly.
> But if I try to print the a4 page with pdfbox on a a4-printer (landscape and 
> portrait), it is scaling fine.
> 
> Some information for you:
> - latest pdfbox 2.0.0
> - MacOsx 10.10/10.11 and Windows
> - Java 1.8
> 
> Here is source-code :
> 
> private static void printOne(PDDocument doc) throws IOException, 
> PrinterException { PrinterJob job= PrinterJob.getPrinterJob(); PrintService[] 
> printService= PrinterJob.lookupPrintServices(); for(PrintService printer: 
> printService) { System.out.println("Printer: " + printer.getName()); 
> if(printer.getName().equals("ZEBRA")) { try{ job.setPrintService(printer); 
> break; } catch (PrinterException pe) { pe.printStackTrace(); } } } Paper 
> paper= new Paper(); paper.setSize(40 / (25.4 / 72), 26 / (25.4 / 72)); // 
> It's working with a4 (210x297) double pWidth= paper.getWidth(); double 
> pHeight= paper.getHeight(); paper.setImageableArea(0, 0, pWidth, pHeight); 
> PageFormat pageFormat= job.defaultPage(); pageFormat.setPaper(paper); 
> pageFormat.setOrientation(PageFormat.PORTRAIT); // Or PageFormat.LANDSCAPE 
> Book book= new Book(); book.append(new PDFPrintable(doc, 
> Scaling.SCALE_TO_FIT), pageFormat, doc.getNumberOfPages()); 
> job.setPageable(book); job.print(); }

You shouldn’t be using job.defaultPage(). Follow the printWithPaper example in 
our Printing example
which can be found in org.apache.pdfbox.examples.printing.

— John

> I hope, you can help me :)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to