在 CentOS 的 Linux 中使用以下代码打印 pdf 文件时:
PrinterJob job = PrinterJob.getPrinterJob();
PDDocument pdf = PDDocument.load(new ByteArrayInputStream(out.toByteArray()));
job.setPageable(new PDPageable(pdf, job));
job.print();
抛出空指针异常:
2014-06-03 10:37:06 WARN org.apache.pdfbox.util.PDFStreamEngine PDFStreamEngine:542 - java.lang.NullPointerException java.lang.NullPointerException at org.apache.pdfbox.pdmodel.font.PDCIDFont.getFontHeight(PDCIDFont.java:200) at org.apache.pdfbox.pdmodel.font.PDType0Font.getFontHeight(PDType0Font.java:119) at org.apache.pdfbox.util.PDFStreamEngine.processEncodedText(PDFStreamEngine.java:401) at org.apache.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:62) at org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:529) at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:258) at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:225) at org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:205) at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:154) at org.apache.pdfbox.pdmodel.PDPageable.print(PDPageable.java:195) at sun.print.RasterPrinterJob.printPage(RasterPrinterJob.java:1936) at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1431) at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1247)
当我们在 Windows 中执行相同的操作时,它工作正常。任何想法 ?请帮忙
最佳答案
这可能是因为字体在 linux/CentOs 上不可用。
您可以使用 acrobat reader 检查 pdf 中的字体。从文件菜单 -> 属性 -> 字体选项卡
安装这些字体并重试。
关于java - PDF盒打印: Null Pointer Exception while printing using PDFBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24009467/