pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Hewson <j...@jahewson.com>
Subject Re: PDF prints smaller on page than actual file
Date Mon, 26 Jan 2015 22:42:05 GMT
Hi,

> PageFormat pf = job.defaultPage();

PrinterJob#defaultPage() creates a new page, it can’t be used to modify the default, see:
http://docs.oracle.com/javase/6/docs/api/java/awt/print/PrinterJob.html#defaultPage() <http://docs.oracle.com/javase/6/docs/api/java/awt/print/PrinterJob.html#defaultPage()>

The PageFormat which will be used for the job is controlled by the Pageable instance,
i.e, this line:

> job.setPageable(printer.getPageable());


That’s a PDFPageable instance, which PDFPrinter creates for you. To specify a custom
Paper, you need to pass it to PDFPrinter , we provide a constructor which you can use:

PDFPrinter(PDDocument, Scaling, Orientation, Paper)

Call this with Scaling.SHRINK_TO_FIT and Orientation.AUTO.

-- John

> On 26 Jan 2015, at 13:31, Josh Nankin <jnankin@gmail.com> wrote:
> 
> When I print a PDF using the below code, the PDF appears smaller in the
> result than the original file.  How do I solve this?
> 
> Input: http://joshnankin.com/input.pdf
> What prints: http://joshnankin.com/whatPrints.pdf
> 
> 
> Code:
> 
>        PDFPrinter printer = new PDFPrinter(PDDocument.load(new
> File("input.pdf")));
> 
>        PrinterJob job = PrinterJob.getPrinterJob();
>        PageFormat pf = job.defaultPage();
>        Paper paper = new Paper();
>        paper.setSize(612, 792);
>        double margin = 0;
>        paper.setImageableArea(margin, margin, paper.getWidth() - margin,
> paper.getHeight() - margin);
> 
>        pf.setPaper(paper);
>        job.setPageable(printer.getPageable());
>        job.setJobName("test");
>        job.printDialog();
>        try {
>            job.print();
>        } catch (PrinterException e) {
>            System.out.println(e);
>        }


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message