【问题标题】:Converting base64 encoded pdf to file input stream without writing file to system将base64编码的pdf转换为文件输入流而不将文件写入系统
【发布时间】:2018-04-06 07:54:52
【问题描述】:

作为客户请求的一部分,我收到了 base64 PDF 输入,我需要将此文件转换为文件输入流以与 PDF BOX 库一起使用。我试图在不将文件写入驱动器并将base64 pdf直接读入文件输入流的情况下实现这一点。

我能做什么: 将base64编码的pdf转换为文件并写入驱动器 将文件读入文件输入流

我想做的事: 将 base64 编码的 PDF 转换为文件输入流以与 PDFBOX 一起使用。 我试图避免将文件写入磁盘。

【问题讨论】:

  • 发布一些代码。
  • A FileInputStream 暗示它来自一个文件。为什么不使用InputStream 的其他风格,例如ByteArrayInputStreamPipedInputStream
  • 将您的 PDF 加载到字节数组中并在其上使用 Base64.getDecoder().decode(...)。然后将生成的字节数组写入输出流。你的困难是什么?
  • 如果你不展示你能做什么的代码,就很难展示如何调整该代码来做你想让它做的事情做.

标签: java pdf file-io base64 pdfbox


【解决方案1】:

在 pdfbox 中,您可以从 InputStream 加载 pdf。它不需要是FileInputStream

使用以下代码,您可以获得解码后的 pdf 的 inputStream。
注意:根据用于编码 pdf 的方案,您可能需要使用:.getMimeDecoder() 而不是 .getDecoder()

InputStream decoded = java.util.Base64.getDecoder().wrap(inputStream);
PDDocument.load(decoded);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    相关资源
    最近更新 更多