gpt4 book ai didi

Java gzip pdf 从 url 到文件 - 结果出现轻微字符不匹配

转载 作者:行者123 更新时间:2023-12-01 09:07:04 24 4
gpt4 key购买 nike

我正在尝试从 URL 下载 gzip pdf,将其解压并将其写入文件。它几乎可以工作,但目前由我的代码生成的 pdf 中的一些字符与真实的 pdf 不匹配。我通过在记事本中打开两个 pdf 文件来检查这一点。

我提供了两个 pdf 中的一些简短文本示例。

来 self 的代码:

’8 /qªMiUe°Ä[H`ðKíulýªäqvA®v8;xÒhÖßÚ²ý!Æ¢ØK$áýçpF[¸t1@y$93

来自真实的pdf:

ƒ8 /qªMiUe°Ä[H`ðKíulªäqvA®—v8;ŸÒhÖßÚ²!ˆ¢ØK$áçpF[¸t1@y$‘‹3

这是我的代码:

public void readPDFfromURL(String urlStr) throws IOException {
URL myURL = new URL(urlStr);
HttpURLConnection urlCon = (HttpURLConnection) myURL.openConnection();
urlCon.setRequestProperty("Accept-Encoding", "gzip");
urlCon.setRequestProperty("Content-Type", "application/pdf");
urlCon.setRequestMethod("GET");
urlCon.setDoInput(true);
urlCon.connect();
Reader reader;
if ("gzip".equals(urlCon.getContentEncoding())) {
reader = new InputStreamReader(new GZIPInputStream(urlCon.getInputStream()));
}
else {
reader = new InputStreamReader(urlCon.getInputStream());
}
FileOutputStream fos = new FileOutputStream("document.pdf");
int data = reader.read();
while(data != -1) {
char c = (char) data;
fos.write(c);
data = reader.read();
}
fos.close();
reader.close();
}

我可以打开 pdf,并且它的页数正确,但页面都是空白。

我最初的想法是它可能与字符代码有关,比如我的java项目中的一些设置,intellij等。

或者,我实际上不需要将其放入文件中。我只需要下载它,以便我可以将其上传到另一个地方。然而,无论哪种情况,pdf 都应该可以工作。我实际上只是将其放入实际文件中以检查它是否有效。

感谢您的帮助!

最佳答案

这是我的新实现,它解决了我的问题:

public void readPDFfromURL(String urlStr) throws IOException {
URL myURL = new URL(urlStr);
HttpURLConnection urlCon = (HttpURLConnection) myURL.openConnection();
urlCon.setRequestProperty("Accept-Encoding", "gzip");
urlCon.setRequestProperty("Content-Type", "application/pdf");
urlCon.setRequestMethod("GET");
urlCon.setDoInput(true);
urlCon.connect();
GZIPInputStream reader = new GZIPInputStream(urlCon.getInputStream());
FileOutputStream fos = new FileOutputStream("document.pdf");
byte[] buffer = new byte[1024];
int len;
while((len = reader.read(buffer)) != -1){
fos.write(buffer, 0, len);
}
fos.close();
reader.close();
}

关于Java gzip pdf 从 url 到文件 - 结果出现轻微字符不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41186982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com