【问题标题】:Parsing PDF that has been downloaded from internet解析从 Internet 下载的 PDF
【发布时间】:2013-09-30 06:19:26
【问题描述】:

我在 stackoverflow 上搜索了有关此主题的问题。他们确实帮助了我,但我又卡住了。

我的问题是我需要编写一个从 (www.example.com/abc.pdf) 之类的网站下载 pdf 的方法,然后我想读取输出。我不想保存这个文件,只是读入系统。我不需要将字节放入文件输出流。我试图将字节转换为 char 以获取字符(这可能是最愚蠢的解决方案)。但是我得到了未知的字符。有什么想法还是我理解错了?

这是代码及其输出:

String textlink="http://www.selab.isti.cnr.it/ws-mate/example.pdf";// it comes from main class

public String HtmlTest(String textLink) throws IOException{

        StringBuilder sd=new StringBuilder();
        URL link=new URL(textLink);
        URLConnection urlConn = link.openConnection();

         BufferedInputStream in = null;
        try
        {

            in = new BufferedInputStream(urlConn.getInputStream());
            byte data[] = new byte[1024];
            in.read(data, 0, 1024);
        for (int j = 0; j < data.length; j++) {

            if(j%100==0){
            sd.append((char)data[j]+"\n"); // i used this for making readable text
            }
            else{
            sd.append((char)data[j]);
            }

        }
        }
        finally
        {
            if (in != null)
                in.close();
        }
        return sd.toString();

    }

输出

运行:

%
PDF-1.3
%ᅦ↓マᄁ
7 0 obj
<</Length 8 0 R/Filter /FlateDecode>>
stream
xワᆳY[モᅴᄊ○ᄈ&?BoNf,,q%¢ᄐ4￞x&゙6ᄅロlᅮ
ラᄐ￐폐Zeム￲f→チ

【问题讨论】:

  • 尝试指定阅读时使用的编码。
  • 我会考虑研究 IText:itextpdf.com 但请注意他们的许可证有点限制。
  • 问题在于 PDF 不是纯文本文件 (.txt):它具有定义明确且结构完整的格式。您肯定需要一个库来以干净的方式从 PDF 中提取文本。

标签: java parsing pdf pdfbox


【解决方案1】:

阅读 .pdf 文件不会让您走得太远,就好像它基本上是一个文本文件一样。首先,“文本”是压缩的二进制格式;您可能还需要处理其他问题。

强烈建议:

使用 Java .pdf 库,例如 Apache PDFBox

恕我直言>。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 2018-12-22
    • 1970-01-01
    相关资源
    最近更新 更多