Java 无法从internet获取pdf
我正在尝试从互联网下载pdf内容,并将其下载到本地文件。 我正在使用iText阅读pdf,并使用Java流编写它 写入文件后,无法在PDF阅读器中打开新文件Java 无法从internet获取pdf,java,pdf,itext,Java,Pdf,Itext,我正在尝试从互联网下载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();
PdfReader reader = new PdfReader(strURL);
FileOutputStream fos = new FileOutputStream(new File(fileName));
fos.write(reader.getPageContent(1));
fos.flush();
fos.close();
我正在尝试从中获取PDf
我调试了一些东西。以下是调查结果
reader.getEofPos()
给出291633,与文件长度相同。但是
reader.getPageContent(1).length;
仅提供42360字节。显然,字节读取小于实际大小
仅提供一页pdf
reader.getNumberOfPages() =1
要阅读整个pdf文件,我是否需要为读者指定更多内容?如果您只想从internet下载pdf并将其保存在本地,则可以使用简单的HTTP web请求来完成。internet下载通常只是HTTP GET请求,您可以通过执行以下操作来完成:
URLConnection connection = new URL(url).openConnection();
connection.setRequestProperty("Accept-Charset", charset);
InputStream response = connection.getInputStream();
一旦得到响应,您就可以将字节保存到您选择的路径。处理来自远程http服务器的流不是PdfReader想要完成的任务。例如,它可以处理链接重定向吗?您可以使用http客户端库下载文件,然后使用itext进行编辑。
reader.getPageContent(1)。length
返回页面内容流的长度。用于该页面的许多资源(例如图像和字体)不属于该流。因此,这一长度在这里并不重要。谁曾告诉过你,页面的内容流本身就可以解析为PDF格式?如果你能解雇那个人,那就做吧。