PDFbox 2.0.20-新的PagePane引发RuntineException

问题描述

由于我已将PDFbox更新至最新版本(2.0.8-> 2.0.20),因此在实例化PagePane类时遇到运行时错误。

我试图更改JDK版本,还从maven获取最新的依赖关系,将项目切换到maven以摆脱依赖关系。

无论如何,我在执行此原始代码段时出错(在主void中运行):

public static void main(String[] args) {
    JFrame f = new JFrame();
    f.setSize(1000,1000);
    File file = new File("/home/bujakowski/Pobrane/test.pdf");
    PDDocument doc;
    try {
        doc = PDDocument.load(file);

        JLabel lab = new JLabel();
        PagePane pp = new PagePane(doc,doc.getPage(0).getCOSObject(),new JLabel());
        f.add(pp.getPanel());
        f.setVisible(true);

    } catch (IOException ex) {
    }
}

我还尝试了不同的PDF版本-扫描图像,纯文本,混合内容,旧PDF版本和最新版本。

我也已经看到错误可能来自PagePane jar中调用的BufferedImage。 我默认使用JDK 11。

线程“ AWT-EventQueue-0”中的异常java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException在 org.apache.pdfbox.debugger.pagepane.PagePane $ RenderWorker.done(PagePane.java:434) 在java.desktop / javax.swing.SwingWorker $ 5.run(SwingWorker.java:750) 在 java.desktop / javax.swing.SwingWorker $ DoSubmitAccumulativeRunnable.run(SwingWorker.java:847) 在 java.desktop / sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112) 在 java.desktop / javax.swing.SwingWorker $ DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:857) 在java.desktop / javax.swing.Timer.fireActionPerformed(Timer.java:317) 在java.desktop / javax.swing.Timer $ DoPostEvent.run(Timer.java:249)处 java.desktop / java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) 在 java.desktop / java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) 在java.desktop / java.awt.EventQueue $ 4.run(EventQueue.java:721)在 java.desktop / java.awt.EventQueue $ 4.run(EventQueue.java:715)在 java.base / java.security.AccessController.doPrivileged(本机方法) 在 java.base / java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) 在 java.desktop / java.awt.EventQueue.dispatchEvent(EventQueue.java:740) 在 java.desktop / java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) 在 java.desktop / java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) 在 java.desktop / java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) 在 java.desktop / java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) 在 java.desktop / java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在 java.desktop / java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 引起原因:java.util.concurrent.ExecutionException: java.lang.NullPointerException在 java.base / java.util.concurrent.FutureTask.report(FutureTask.java:122) 在java.base / java.util.concurrent.FutureTask.get(FutureTask.java:191) 在java.desktop / javax.swing.SwingWorker.get(SwingWorker.java:613)处 org.apache.pdfbox.debugger.pagepane.PagePane $ RenderWorker.done(PagePane.java:414) ... 19更多原因于:java.lang.NullPointerException org.apache.pdfbox.debugger.ui.RotationMenu.getRotationDegrees(RotationMenu.java:102) 在 org.apache.pdfbox.debugger.pagepane.PagePane $ RenderWorker.doInBackground(PagePane.java:391) 在 org.apache.pdfbox.debugger.pagepane.PagePane $ RenderWorker.doInBackground(PagePane.java:384) 在java.desktop / javax.swing.SwingWorker $ 1.call(SwingWorker.java:304) 在java.base / java.util.concurrent.FutureTask.run(FutureTask.java:264) 在java.desktop / javax.swing.SwingWorker.run(SwingWorker.java:343)处 java.base / java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base / java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:628) 在java.base / java.lang.Thread.run(Thread.java:834)中的异常 线程“ AWT-EventQueue-0”处的java.lang.NullPointerException org.apache.pdfbox.debugger.pagepane.PagePane.ancestorAdded(PagePane.java:271) 在 java.desktop / javax.swing.AncestorNotifier.fireAncestorAdded(AncestorNotifier.java:86) 在 java.desktop / javax.swing.AncestorNotifier.componentShown(AncestorNotifier.java:193) 在 java.desktop / java.awt.Component.processComponentEvent(Component.java:6463) 在java.desktop / java.awt.Component.processEvent(Component.java:6411) 在java.desktop / java.awt.Container.processEvent(Container.java:2263) 在java.desktop / java.awt.Window.processEvent(Window.java:2049)处 java.desktop / java.awt.Component.dispatchEventImpl(Component.java:5007) 在 java.desktop / java.awt.Container.dispatchEventImpl(Container.java:2321) 在java.desktop / java.awt.Window.dispatchEventImpl(Window.java:2772) 在java.desktop / java.awt.Component.dispatchEvent(Component.java:4839) 在 java.desktop / java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) 在java.desktop / java.awt.EventQueue $ 4.run(EventQueue.java:721)在 java.desktop / java.awt.EventQueue $ 4.run(EventQueue.java:715)在 java.base / java.security.AccessController.doPrivileged(本机方法) 在 java.base / java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) 在 java.base / java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) 在java.desktop / java.awt.EventQueue $ 5.run(EventQueue.java:745)在 java.desktop / java.awt.EventQueue $ 5.run(EventQueue.java:743)在 java.base / java.security.AccessController.doPrivileged(本机方法) 在 java.base / java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) 在 java.desktop / java.awt.EventQueue.dispatchEvent(EventQueue.java:742) 在 java.desktop / java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) 在 java.desktop / java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) 在 java.desktop / java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) 在 java.desktop / java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) 在 java.desktop / java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在 java.desktop / java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 线程“ AWT-EventQueue-0”中的异常java.lang.NullPointerException 在 org.apache.pdfbox.debugger.pagepane.PagePane.ancestorRemoved(PagePane.java:283) 在 java.desktop / javax.swing.AncestorNotifier.fireAncestorRemoved(AncestorNotifier.java:108) 在 java.desktop / javax.swing.AncestorNotifier.componentHidden(AncestorNotifier.java:208) 在 java.desktop / java.awt.AWTEventMulticaster.componentHidden(AWTEventMulticaster.java:197) 在 java.desktop / java.awt.AWTEventMulticaster.componentHidden(AWTEventMulticaster.java:197) 在 java.desktop / java.awt.Component.processComponentEvent(Component.java:6466) 在java.desktop / java.awt.Component.processEvent(Component.java:6411) 在java.desktop / java.awt.Container.processEvent(Container.java:2263) 在java.desktop / java.awt.Window.processEvent(Window.java:2049)处 java.desktop / java.awt.Component.dispatchEventImpl(Component.java:5007) 在 java.desktop / java.awt.Container.dispatchEventImpl(Container.java:2321) 在java.desktop / java.awt.Window.dispatchEventImpl(Window.java:2772) 在java.desktop / java.awt.Component.dispatchEvent(Component.java:4839) 在 java.desktop / java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) 在java.desktop / java.awt.EventQueue $ 4.run(EventQueue.java:721)在 java.desktop / java.awt.EventQueue $ 4.run(EventQueue.java:715)在 java.base / java.security.AccessController.doPrivileged(本机方法) 在 java.base / java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) 在 java.base / java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) 在java.desktop / java.awt.EventQueue $ 5.run(EventQueue.java:745)在 java.desktop / java.awt.EventQueue $ 5.run(EventQueue.java:743)在 java.base / java.security.AccessController.doPrivileged(本机方法) 在 java.base / java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) 在 java.desktop / java.awt.EventQueue.dispatchEvent(EventQueue.java:742) 在 java.desktop / java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) 在 java.desktop / java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) 在 java.desktop / java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) 在 java.desktop / java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) 在 java.desktop / java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在 java.desktop / java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...