【问题标题】:Not able to get the pdf from internet无法从互联网上获取 pdf
【发布时间】:2013-06-14 07:33:33
【问题描述】:

我正在尝试从 Internet 下载 pdf 内容并将其下载到本地文件。 我正在使用 iText 读取 pdf 并使用 Java 流来编写它。

写入文件后,新文件无法在 PDF 阅读器中打开。

PdfReader reader = new PdfReader(strURL);
FileOutputStream fos = new FileOutputStream(new File(fileName));
fos.write(reader.getPageContent(1));
fos.flush();
fos.close();

我正在尝试从this link 获取 PDf

我调试了一些东西。以下是调查结果。

reader.getEofPos()

给出291633,与文件长度相同。但是

reader.getPageContent(1).length;

只给出 42360 字节。显然字节读取小于实际大小。

只有一页pdf存在

reader.getNumberOfPages() =1 

阅读整个 pdf 文件是否需要指定更多内容?

【问题讨论】:

  • 处理来自远程 http 服务器的流不是 PdfReader 的任务。例如它可以处理链接重定向吗?您可以使用 http-client 库下载文件,然后使用 itext 进行编辑。
  • reader.getPageContent(1).length 返回页面内容流的长度。用于该页面的许多资源,例如图像和字体不属于该流。因此,这里的长度无关紧要。谁曾告诉过您,页面的内容流本身可以解析为 PDF?如果你能解雇那个人,那就去做吧。

标签: java pdf itext


【解决方案1】:

如果您只想从 Internet 下载 PDF 并将其保存在本地,则可以使用简单的 HTTP Web 请求来完成。 Internet 下载通常只是一个 HTTP GET 请求,您可以通过执行以下操作来完成:

URLConnection connection = new URL(url).openConnection();
connection.setRequestProperty("Accept-Charset", charset);
InputStream response = connection.getInputStream();

获得响应后,您可以将字节保存到您选择的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    相关资源
    最近更新 更多