繁体   English   中英

未找到 PDF 标题异常

[英]PDF header not found exception

我正在使用 itext 7 和 java,我的问题是当我尝试打开现有的 pdf 文件时出现异常。 这是我的代码

    JFileChooser load = new JFileChooser();
    load.setFileFilter(new PdfFilter());
    load.showOpenDialog(this);
    String loadPath = load.getSelectedFile().getAbsolutePath();
//some stuff here....


    path = path.concat(".pdf");//path is declared above


    try {
        pdf = new PdfDocument(new PdfReader(loadPath), new PdfWriter(path));
    } catch (IOException ex) {
        Logger.getLogger(ParagrafoFrame.class.getName()).log(Level.SEVERE, null, ex);
    }

    doc = new Document(pdf);
    doc.add(new Paragraph("test"));
    doc.close();

为什么不起作用?

这里是堆栈跟踪

线程“AWT-EventQueue-0”com.itextpdf.io.IOException 中的异常:未找到 PDF 标头。 在 com.itextpdf.io.source.PdfTokenizer.getHeaderOffset(PdfTokenizer.java:223) 在 com.itextpdf.kernel.pdf.PdfReader.getOffsetTokeniser(PdfReader.java:1075) 在 com.itextpdf.kernel.pdf.PdfReader.( PdfReader.java:120) 在 com.itextpdf.kernel.pdf.PdfReader.(PdfReader.java:154) 在 com.itextpdf.kernel.pdf.PdfReader.(PdfReader.java:170) 在 com.antonionappi.editorpdf.ParagrafoFrame .continuaButtonActionPerformed(ParagrafoFrame.java:1339) 在 com.antonionappi.editorpdf.ParagrafoFrame.access$2400(ParagrafoFrame.java:46) 在 com.antonionappi.editorpdf.ParagrafoFrame$25.actionPerformed(ParagrafoFrame.java:40) AbstractButton.fireActionPerformed(AbstractButton.java:2022) 在 javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) 在 javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 在 javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java:259) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:25 2) 在 java.awt.Component.processMouseEvent(Component.java:6533) 在 javax.swing.JComponent.processMouseEvent(JComponent.java:3324) 在 java.awt.Component.processEvent(Component.java:6298) 在 java。 awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent (Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java: 4466) 在 java.awt.Container.dispatchEventImpl(Container.java:2280) 在 java.awt.Window.dispatchEventImpl(Window.java:2746) 在 java.awt.Component.dispatchEvent(Component.java:4711) 在 java。 awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue 3 美元 .run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain) .java:90) 在 java.awt.EventQueue$4.run(EventQueue.java:731) 在 java.awt.EventQueue$4.run(EventQueue.java:729) 在 java.security.AccessController.doPrivileged(Native Method) 在java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt .EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在 java.awt.夏娃 ntDispatchThread.java:93) 在 java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

我的情况我忘了关闭文档:

PdfDocument pdfDoc = new PdfDocument(new PdfWriter(DEST));
Document doc = new Document(pdfDoc);
//...
doc.close(); //HAVE YOU CLOSE?
pdfDoc.close(); //HAVE YOU CLOSE?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM