如何获取具有整个文件内容的base64的页面的PDF文件的内容?

时间:2015-01-11 02:42:08

标签: java parsing pdf base64

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

我如何解析它以获得每页的base64?

假设PDF文件有5页。如何在base64中获取每个页面的内容?我已经google了,但找不到任何东西。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:4)

通常,甚至不可能逐页分离本机 PDF文件的内容(当文件是base64编码时,无法这样做,正如您将看到的那样)。

PDF文件的最常规结构依次为:

  1. PDF标题
  2. PDF对象(文件正文)
  3. PDF xref表(目录,为每个PDF对象提供文件偏移位置)
  4. PDF预告片
  5. 您不能假设PDF对象在文件内部显示的顺序与PDF查看器中显示的内容相同。

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

    出于这个原因,您需要先解码base64编码的文件 ,然后才能考虑访问生成的PDF的单个页面。

    要获得 - 使用base64编码的5页PDF文档 - 所有单独的PDF页面为base64,您必须按照以下步骤操作:

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

答案 1 :(得分:1)

您可能希望澄清您的答案。根据您的措辞,您是否要在base64中进行编码或从中进行解码,这一点并不明显。

假设你要解码(因为你说你有base64),有标准库可用: Decode Base64 data in Java