【发布时间】: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?如果你能解雇那个人,那就去做吧。