pdfbox标题版本信息错误

时间:2013-09-25 19:48:07

标签: java parsing pdf pdfbox

我使用PDFbox解析该pdf文档。它抛出异常,说它无法找到标题版本信息。有什么想法吗?

我认为版本是1.3当我将每个字节转换为char时我看到了它。 链接是http://www.selab.isti.cnr.it/ws-mate/example.pdf

这里的方法和输出代码:

 public String PDFtest(String textLink) throws IOException{
        PDFParser parser;
        String parsedText = null;
        PDFTextStripper pdfStripper;
        PDDocument pdDoc;
        COSDocument cosDoc;
        PDDocumentInformation pdDocInfo;


    StringBuilder sd=new StringBuilder();
    URL link;
    try {
        link = new URL(textLink);
        URLConnection urlConn = link.openConnection();
        BufferedInputStream in = null;
        in = new BufferedInputStream(urlConn.getInputStream());
        byte data[] = new byte[1024];
        in.read(data, 0, 1024);

    parser = new PDFParser(in);
    parser.parse();
    cosDoc = parser.getDocument();
    pdfStripper = new PDFTextStripper();
    pdDoc = new PDDocument(cosDoc);
    parsedText = pdfStripper.getText(pdDoc);
    } catch (MalformedURLException ex) {
        Logger.getLogger(HTMLhelper.class.getName()).log(Level.SEVERE, null, ex);
    }
    catch (NumberFormatException e){
        System.out.println("hata");
    }

    return parsedText;



}

例外:

Exception in thread "main" java.io.IOException: Error: Header doesn't contain versioninfo
    at org.apache.pdfbox.pdfparser.PDFParser.parseHeader(PDFParser.java:317)
    at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:173)
    at ParsingMachine.HTMLhelper.PDFtest(HTMLhelper.java:99)
    at ParsingMachine.tester.main(tester.java:18)
Java Result: 1

4 个答案:

答案 0 :(得分:5)

您必须合并非pdf格式的文件。请仔细检查列表中是否有任何文件,然后是pdf。

答案 1 :(得分:2)

就我而言,我正在遍历目录中的文件。
Windows在任何目录中都有一个Thumbs.db文件。
这干扰了pdf文件的过程。
应用过滤器仅选择PDF文件(*.pdf)很有帮助。
干杯。

答案 2 :(得分:0)

首先将前导千字节数据读入字节数组:

in.read(data, 0, 1024);

然后你希望PDFBox与剩余字节相处

parser = new PDFParser(in);
parser.parse();

实际的PDF标头很可能包含在您从PDFBox解析器中保留的那些前导字节中。

因此,只需允许PDFBox读取所有数据。

答案 3 :(得分:0)

已解析的文件夹已过时。看起来是空的,因此默认为Thumbs.db。我记得专门跳过了此操作,但是当文件夹为空时不会猜测。

更新目录已固定。

(与murphy1310相似的情况,但目录为空,即此处没有PDF)