【问题标题】:JAVA Reading web embedded PDFJAVA阅读网页嵌入PDF
【发布时间】:2019-07-28 17:43:46
【问题描述】:

我需要一种方法让您阅读一些网页嵌入的 pdf(如 https://www.tutorialspoint.com/java/java_tutorial.pdf)。

我使用的是我用来抓取普通 html 页面的方式,但它似乎不适用于 pdf 网页。我没有在 pdf 页面上显示什么,而是得到了编码字符(我可以通过下载 pdf 并用记事本打开它来获得)

我需要从网页嵌入的 pdf 中抓取 html 代码,有人可以帮我吗?

编辑: 现在我正在尝试使用(str是url)

        URL url = null;
        try {
            url = new URL(str);
        } catch (MalformedURLException e) {
        }
        
        String html = "";
        try {
            html = IOUtils.toString(url.openConnection().getInputStream());
        } catch (IOException e) {
        }

        return html;

我得到的不是 html 代码,而是:

%PDF-1.5
%µµµµ
1 0 obj
<</Type/Catalog/Pages 2 0 R/Lang(en-US) /StructTreeRoot 134 0 R/MarkInfo<</Marked true>>>>
endobj
2 0 obj
<</Type/Pages/Count 32/Kids[ 3 0 R 14 0 R 30 0 R 46 0 R 48 0 R 55 0 R 57 0 R 59 0 R 61 0 R 63 0 R 65 0 R 67 0 R 76 0 R 87 0 R 89 0 R 91 0 R 96 0 R 102 0 R 104 0 R 106 0 R 108 0 R 110 0 R 112 0 R 114 0 R 116 0 R 118 0 R 121 0 R 123 0 R 125 0 R 127 0 R 129 0 R 131 0 R] >>
endobj
3 0 obj
<</Type/Page/Parent 2 0 R/Resources<</Font<</F1 5 0 R/F2 9 0 R/F3 11 0 R>>/ExtGState<</GS7 7 0 R/GS8 8 0 R>>/XObject<</Image13 13 0 R>>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 595.32 841.92] /Contents 4 0 R/Group<</Type/Group/S/Transparency/CS/DeviceRGB>>/Tabs/S/StructParents 0>>
endobj
4 0 obj
<</Filter/FlateDecode/Length 270>>
stream
xœµÓËJC1à} ïð/U蜙$“”.z±T(X=àB\ˆÔ®ªXß<©Š,ÈA³�™d>fšK‡Ír²˜‚G#Œ§¼XÃÄuåœ-JÞ!¡â°[[ss†'kÆ­5͹@„8 }´¦f3®$ŠŠ˜‡vÛåͯ6¯õi¯    L‘s·g¯Ømöá|$|5·æö§wh/¬™u5WÖ`¶œ

【问题讨论】:

  • 如果您添加更多关于您如何进行网络抓取的详细信息会很棒,以便 stackoverflow 的某个人可以为这个问题提供有意义的答案。到目前为止,这个问题似乎太宽泛了。

标签: java pdf web-scraping


【解决方案1】:

我使用 PDFBOX https://pdfbox.apache.org/ 解决了问题:

        URL url = new URL(urlOfPDF);
        InputStream in = new BufferedInputStream(url.openStream());
        PDDocument pddDocument = PDDocument.load(in);
        PDFText2HTML stripper = new PDFText2HTML();
        String text = stripper.getText(pddDocument);
        return text;

【讨论】:

  • 别忘了关闭in - 避免内存泄漏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多