Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从internet获取pdf_Java_Pdf_Itext - Fatal编程技术网

Java 无法从internet获取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();

我正在尝试从互联网下载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();
我正在尝试从中获取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格式?如果你能解雇那个人,那就做吧。