渡されたプリンタ名とPDF URLを使用してPDFを印刷するコードを記述しました。これは、漢字を含むPDFを渡す場合を除いて、文字は単なるボックスです。 UnicodeフォントはPDFで埋め込まれているので、理想的には何とか活用したいと思います。埋め込みフォントを使用したJava印刷PDF
PDDocument document = PDDocument.load(new URL(fileUrl));
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintService(printer);
PageFormat pageFormat = job.defaultPage();
Paper paper = pageFormat.getPaper();
Book pBook = new Book();
List allPages = document.getDocumentCatalog().getAllPages();
for (Object pdPage : allPages)
{
PDPage page = (PDPage) pdPage;
double width = page.findMediaBox().getWidth();
double height = page.findMediaBox().getHeight();
double margin = 0.0d;
paper.setSize(width, height);
paper.setImageableArea(margin, margin, width - (margin * 2), height - (margin * 2));
pageFormat.setOrientation(PageFormat.PORTRAIT);
pageFormat.setPaper(paper);
PageFormat validatePage = job.validatePage(pageFormat);
pBook.append(document.getPrintable(allPages.indexOf(pdPage)), validatePage);
job.setPageable(pBook);
}
job.setJobName(jobName);
job.print();
ご覧のとおり、PDFBox(バージョン1.8.7)を使用しています。私はこれでいくつかの検索をしましたが、何か有用なものを見つけることができませんでした。しかし、私はこのJIRAの問題を発見しました:https://issues.apache.org/jira/browse/PDFBOX-490
今年(2016年)にリリースされたバージョン2.0で何かが行われたようです。ある時点で、私は最新のバージョンに更新しようとしましたが、私はそうしないように多くの変更がありました。
私の唯一のオプションは更新していますか?私が1.8.7でできることはありますか?
ありがとうございます!
* *「多分何かが、バージョン2.0で行われたようだ」 - 確かに、あなたはしません前の2.0バージョンで成功する。 – mkl