2016-02-18 3 views
3

Я пытаюсь распечатать существующий pdf-файл с помощью pdfbox. В настоящее время я использую pdfbox 2.0.0 RC3 через maven.java pdfbox printerjob неправильное масштабирование/формат страницы

Это мой текущий код:

PDDocument document = PDDocument.load(new File(myPdfFile)); 
PrinterJob job = PrinterJob.getPrinterJob(); 

if (job.printDialog()) { 
    job.setPageable(new PDFPageable(document)); 
    job.print(); 
} 

document.close(); 

Для тестирования я напечатал пробную PDF с Adobe Acrobat и тот же PDF с несколькими строками кода. Все работает отлично, за исключением границ. Все границы (верхний колонтитул, нижний колонтитул, левый & справа) являются маленькими, а нижний колонтитул слишком мал.

Есть ли волшебный метод, который я не мог найти во всемирной паутине для настройки правильного масштабирования/формата?

+0

Пожалуйста, посмотрите на источник printWithPaper() в примере Printing.java. Помогает ли это? –

+0

Где я могу найти Printing.java? –

+0

В исходном коде скачать https://pdfbox.apache.org/download.cgi#20x или здесь: https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/ apache/pdfbox/examples/printing/Btw также см. ответ от Dato. –

ответ

4

Попробуйте для pdfbox 2.0.0-RC3 версии

PDDocument doc = PDDocument.load(new File("test.pdf")); 
PDFPrintable printable = new PDFPrintable(doc, Scaling.SHRINK_TO_FIT); 
PrinterJob job = PrinterJob.getPrinterJob(); 
job.setPrintable(printable); 
job.print(); 

Вот еще одна версия

PDDocument doc = PDDocument.load(new File("test.pdf")); 
    PrinterJob job = PrinterJob.getPrinterJob(); 

    // define custom paper 
    Paper paper = new Paper(); 
    paper.setSize(306, 396); // 1/72 inch 
    paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight()); // no margins 

    // custom page format 
    PageFormat pageFormat = new PageFormat(); 
    pageFormat.setPaper(paper); 

    // override the page format 
    Book book = new Book(); 
    // append all pages 
    book.append(new PDFPrintable(doc, Scaling.SHRINK_TO_FIT), pageFormat, doc.getNumberOfPages()); 
    job.setPageable(book); 

    job.print(); 
+0

Intellij не может решить 'PDFPrinter'. Это в формате PDFBox 2.0.0-RC3? Потому что я не могу использовать PDFBox 1.8.10. У него есть ошибка с некоторыми шрифтами. –

+0

У меня были проблемы с шрифтом с версией 1.8. Я использую PDFBox 2.0.0-снимок ' org.apache.pdfbox pdfbox 2.0.0-SNAPSHOT ' –

+0

странно, он не может Finde зависимости от версии снимки. Но он находит RC1. http://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox здесь нет моментальной версии –

Смежные вопросы