1
我已經編寫了使用傳入的打印機名稱和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
看起來可能是在2.0版本中完成的,該版本是在今年(2016年)發佈的。有一次,我嘗試更新到最新版本,但是有太多變化,我選擇不要。
更新我唯一的選擇? 1.8.7有什麼我可以做的嗎?
謝謝!
*「看來或許真的是在2.0版本做了」 * - 實際上,與預先2.0版本,你不會成功。 – mkl