当前位置: 首页 > 知识库问答 >
问题:

将HTTPResponse正文中的字节流转换为pdf文件

弓华茂
2023-03-14

当我通过邮差访问API时,我可以下载一个pdf文件。当我通过java代码访问相同的API时,我会在ResponseBody中获得pdf内容。我可以用responsebody内容创建一个新的pdf文件,但当我打开该文件时,它是空白的。

file  = new File("/home/abc.pdf");
            outputStream = new BufferedOutputStream(new FileOutputStream(file));
            if (!file.exists()) {
                file.createNewFile();
            }

            byte[] contentInBytes = response.getBody().getBytes();
            System.out.println(Arrays.toString(contentInBytes));

            outputStream.write(contentInBytes);
            outputStream.flush();
            outputStream.close();

共有1个答案

墨星鹏
2023-03-14

创建临时byte[]数组来存储整个响应体,然后再将其保存到文件,这是一种浪费。您希望将响应InputStream写入文件OutputStream

这可以通过几种方法来实现,一种是使用Guava的byteStreams.copy()例如:

try (OutputStream out = Files.newOutputStream(Paths.get("abc.pdf")) {
    ByteStreams.copy(response.getBody(), out);
}
 类似资料:
  • 问题内容: 我有大量文本字符串,这些字符串显然是PDF文件的原始数据,我需要将其重新制作为PDF。 目前,我正在将字符串读取到StringBuffer中,但是如果需要,可以更改它。从那里,我尝试将其写到文件中并更改扩展名(我真的希望这样做能起作用,但是我有点不知道),我尝试将其带入String,然后从中取出byte []。并将其写入文件,或使用DataOutputStream将字节放入文件中。这些

  • 问题内容: 按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我需要从现有的(X)HTML文档自动生成PDF文件。输入文件(报告)使用非常简单的基于表的布局,因此可能不需要支持真正精美的JavaScript / CSS。

  • 问题内容: 我想将PDF文档转换为图像。我正在使用Ghost4j。 问题: Ghost4J需要gsdll32.dll文件在运行时,我也 并不 想使用的DLL文件。 问题1: 在ghost4j中,有没有办法在没有dll的情况下转换图像? 问题2: 我在PDFBox API中找到了解决方案。convertToImage()将PDF页面转换为图像格式。 PDF文档上只有文本。运行此代码时出现该异常: 问

  • 问题内容: 我需要从现有的(X)HTML文档自动生成PDF文件。输入文件(报告)使用非常简单的基于表的布局,因此可能不需要支持真正精美的JavaScript / CSS。 由于我习惯于在Java中工作,因此最好在Java项目中轻松使用的解决方案。不过,它仅需要在Windows系统上工作。 一种可行的方法,但不会产生高质量的输出(至少是开箱即用的),一种方法是使用CSS2XSLFO和Apache F

  • 我想把PDF文档转换成图像。我用的是Ghost4j。 问题:Ghost4J需要gsdll32。dll文件,我不想使用dll文件。 问题1:是否有任何方法,在ghost4j转换图像没有dll? 问题2:我在PDFBox API中找到了解决方案<代码>组织。阿帕奇。pdfbox。pdmodel。PDPagep具有将PDF页面转换为图像格式的方法convertToImage()。 我只有PDF文档上的文

  • 我想将扫描的pdf文件转换为文本可搜索的pdf文件。我想给一个输入扫描的PDF然后我的预期输出是可搜索的PDF。 很少有工具可以将扫描的pdf文件中的文本作为输出,但我希望可以搜索文本的pdf文件作为输出,而不仅仅是文本。 我在这里搜索了一下,找到了一个解决方案,但我的生产服务器是amazon centos,这个工具的安装只适用于ubuntu,不适用于amazon centos。 如果需要,我准备