如何逐页获取整个文件内容的base64的PDF文件内容?

Sar*_*ara 2 java pdf base64 parsing

我有一个 PDF 文件的 base64 内容,例如JVBERi0xLjIgDSXi48/T....

我怎样才能解析它以获得它每一页的base64?

假设 PDF 文件有 5 页。如何获取每个页面的base64内容?我已经用谷歌搜索但找不到任何东西。任何帮助表示赞赏。

Kur*_*fle 5

一般来说,甚至不可能逐页分离原生PDF 文件的内容(当文件采用 Base64 编码时就不可能这样做,正如您将看到的)。

PDF 文件最通用的结构按以下顺序排列:

  1. PDF 标题
  2. PDF 对象(文件体)
  3. PDF 外部参照表(内容表,给出每个 PDF 对象的文件偏移位置)
  4. PDF预告片

您不能假设 PDF 对象在文件中的显示顺序与页面在 PDF 查看器中的显示顺序相同。

如果您提取单个页面,则该页面本身需要是一个有效的 PDF 文档:包含(按相同顺序)标题、对象、外部参照和预告片,其中外部参照和预告片需要重新构建,以便它们与新文档匹配(外部参照和预告片不能简单地从原始文档复制)。

因此,您需要先对 Base64 编码的文件进行完全解码,然后才能考虑访问生成的 PDF 的单个页面。

要从已使用 base64 编码的 5 页 PDF 文档中获取所有单独的 PDF 页面作为 base64,您必须执行以下步骤:

  1. 将完整的 base64 文件解码为有效的 5 页 PDF 文档。
  2. 将 5 页 PDF 文档拆分为 5 个单独的 1 页 PDF 文档。
    (为此,您需要了解“PDF 游戏规则”,或者使用确实了解的 PDF 库)
  3. 使用 base64 对每个 1 页 PDF 文档进行编码。