java - PDF盒打印: Null Pointer Exception while printing using PDFBox

标签 java

在 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/

相关文章:

java - 在Jax中连接Hadoop(Hive API)数据库-RS Rest Service-Netbeans

java - 在这种情况下,多个 ifs 和 if-else 之间有什么区别?

javascript - 我如何传递两个参数 @Path 和 @PathParam

java - 在对对象 vector 进行排序时需要帮助

java - 从人类可读的时区字符串中获取时区 ID

java - Log4j 记录器和并发

java - 为什么 ForkJoinPool::shutdownNow 返回一个空列表?

java - 在 Netbeans 中读取图像

java - 如何从 startActivityForResult 读取结果

java - 丢失小数位Java Double