pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Hewson <j...@jahewson.com>
Subject Re: Problems with scaling and orientation for small pages (pdfbox 2.0.0)
Date Wed, 28 Oct 2015 01:37:30 GMT
On 26 Oct 2015, at 03:54, Dominic Eubel <dominic.eubel@plentymarkets.com> 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: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message