如何逐页获取具有整个文件内容的base64的PDF文件内容?
How to get content of a PDF file page by page having base64 of the whole file content?
我有一个 base64 格式的 PDF 文件的内容,如 JVBERi0xLjIgDSXi48/T...
。
如何解析它以获取它的每一页的base64?
假设PDF文件有5页。如何获取base64中每个页面的内容?我已经 google 它但找不到任何东西。感谢任何帮助。
您可能想澄清您的答案。从你的措辞中看不出你是想用base64编码还是解码。
假设你想解码(因为你说你有 base64),有可用的标准库:
Decode Base64 data in Java
一般来说,native PDF 文件的内容一页一页地分开是不可能的(当文件是 base64 编码时就不可能这样做,因为你会看到的)。
PDF 文件最一般的结构是,按以下顺序:
- PDF header
- PDF objects(文件body)
- PDF 外部参照 table(table 的内容,给出每个 PDF 的文件偏移位置 object)
- PDF 预告片
您不能假定 PDF object 在文件中的显示顺序与页面在 PDF 查看器中的显示顺序相同。
如果您提取单个页面,该页面本身需要是一个有效的 PDF 文档:包含(以相同的顺序)header、objects、外部参照和尾部,其中外部参照和trailer 需要是 re-constructed 新的,这样它们才能匹配新文档(不能简单地从原始文档复制外部参照和预告片)。
因此,您需要 de-code 完全 base64 编码文件,然后才能考虑访问生成的 PDF 的单页。
要从已使用 base64 编码的 5 页 PDF 文档中获取所有单独的 PDF 页面作为 base64,您必须执行以下步骤:
- De-code 将完整的 base64 文件转换为有效的 5 页 PDF 文档。
- 将 5 页 PDF 文档拆分为 5 个单独的 1 页 PDF 文档。
(为此你需要知道 "rules of the PDF game",或者使用知道的 PDF 库)
- 使用 base64 对每个 1 页 PDF 文档进行编码。
我有一个 base64 格式的 PDF 文件的内容,如 JVBERi0xLjIgDSXi48/T...
。
如何解析它以获取它的每一页的base64?
假设PDF文件有5页。如何获取base64中每个页面的内容?我已经 google 它但找不到任何东西。感谢任何帮助。
您可能想澄清您的答案。从你的措辞中看不出你是想用base64编码还是解码。
假设你想解码(因为你说你有 base64),有可用的标准库: Decode Base64 data in Java
一般来说,native PDF 文件的内容一页一页地分开是不可能的(当文件是 base64 编码时就不可能这样做,因为你会看到的)。
PDF 文件最一般的结构是,按以下顺序:
- PDF header
- PDF objects(文件body)
- PDF 外部参照 table(table 的内容,给出每个 PDF 的文件偏移位置 object)
- PDF 预告片
您不能假定 PDF object 在文件中的显示顺序与页面在 PDF 查看器中的显示顺序相同。
如果您提取单个页面,该页面本身需要是一个有效的 PDF 文档:包含(以相同的顺序)header、objects、外部参照和尾部,其中外部参照和trailer 需要是 re-constructed 新的,这样它们才能匹配新文档(不能简单地从原始文档复制外部参照和预告片)。
因此,您需要 de-code 完全 base64 编码文件,然后才能考虑访问生成的 PDF 的单页。
要从已使用 base64 编码的 5 页 PDF 文档中获取所有单独的 PDF 页面作为 base64,您必须执行以下步骤:
- De-code 将完整的 base64 文件转换为有效的 5 页 PDF 文档。
- 将 5 页 PDF 文档拆分为 5 个单独的 1 页 PDF 文档。
(为此你需要知道 "rules of the PDF game",或者使用知道的 PDF 库) - 使用 base64 对每个 1 页 PDF 文档进行编码。