有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java 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) 个答案

  1. # 1 楼答案

    您必须合并非pdf格式的文件。请仔细检查列表中是否有pdf以外的文件

  2. # 2 楼答案

    在我的例子中,我在一个目录中迭代文件
    Windows在任何目录中都有一个Thumbs.db文件
    这干扰了pdf文件处理
    应用筛选器仅拾取PDF文件(*.pdf)会有所帮助
    干杯

  3. # 3 楼答案

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

    in.read(data, 0, 1024);
    

    然后您希望PDFBox能够处理剩余的字节

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

    最有可能的是,实际的PDF头包含在您从PDFBox解析器保留的前导字节中

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

  4. # 4 楼答案

    正在分析的文件夹已过期。看起来是空的,所以默认为拇指。db。我记得我特别跳过了这个,但我猜不是在文件夹为空的时候

    更新目录已修复

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