it-swarm.cn

结构 PDF 文件?

对于一个小项目,我必须解析pdf文件并获取它们的特定部分(一个简单的字符链)。我想用python来做这个,我发现有几个库能够在某些方面做我想做的事情。

但是经过一些研究后,我想知道pdf文件的真实结构是什么,有人知道在网上有任何规格或解释吗?我在Adobe上找到了一个链接,但它似乎是一个死链接:(

59
Valentin Jacquemin

以下是Adobe参考资料的链接

http://www.Adobe.com/devnet/pdf/pdf_reference.html

你应该知道PDF只是关于表示而不是结构。解析并不容易。

38
minty

当我第一次开始使用PDF时,我发现 PDF参考 很难导航。它可能会帮助您了解文件结构的概述在语法中找到,Adobe称文档结构是对象结构而不是文件结构。这也可以在Syntax中找到。附录A中隐藏了运算符的描述 - 对于理解内容流中发生的事情非常有用。如果您有使用色彩空间的痛苦,您会发现隐藏在图形中!希望这些指针可以帮助您比我更快地找到事情。

如果您正在使用Windows, pdftron CosEdit 允许您浏览对象结构以了解它。有一个免费的演示版本,允许您检查文件但不保存它。

22
danio

我发现 GNU PDF 简介有助于理解结构。它包含一个易于阅读的 示例PDF文件 他们详细描述。

其他有用的链接:

  • PDF简洁的书 更长,并有有用的图片。
  • PDF内部介绍_ 是一个不那么深入的演示文稿,但提供了快速概述并且有很多图片。
21
Jeff Moser

这是原始 PDF 1.7的参考 ,这里有一篇文章 描述PDF 文件的结构。如果您使用Vim, pdftk插件 是一种以非常小的原始形式探索文档的好方法,以及 pdftk 实用程序本身(及其GPL源代码)是一种分开文件的好方法。

10
jmah

我试图做同样的事情。 PDF参考是一个非常难以阅读的文档。 这个教程 我认为是一个更好的开始。

7
Noran

这可能会有所帮助:(来自PDF32000.book的第11页)

通过将PDF语法视为四个部分,可以最好地理解PDF语法,如图1所示:

•物体。 PDF文档是由一小组基本类型的数据对象组成的数据结构。子条款7.2“词汇约定”描述了用于编写对象和其他语法元素的字符集。子句7.3“对象”描述了对象的语法和基本属性。第7.3.8节“流对象”提供了最复杂数据类型(流对象)的完整细节。

•文件结构。 PDF文件结构确定对象在PDF文件中的存储方式,访问方式以及更新方式。该结构独立于对象的语义。第7.5节“文件结构”描述了文件结构。第7.6节“加密”描述了用于保护文档内容免受未授权访问的文件级机制。

•文件结构。 PDF文档结构指定基本对象类型如何用于表示PDF文档的组件:页面,字体,注释等。第7.7款“文件结构”描述了整个文件结构;后面的子句解决了组件的详细语义。

•内容流。 PDF内容流包含描述页面或其他图形实体外观的一系列指令。这些指令虽然也表示为对象,但在概念上与表示文档结构的对象不同,并且分别描述。第7.8节“内容流和资源”讨论了PDF内容流及其相关资源。

看起来导航PDF文件需要的不仅仅是传递努力。

6
Josh Albert
3
Peter Teoh

如果你想用Python解析PDF,请看看 _ pdfminer _ 。这是迄今为止解析PDF文件的最佳库。

3
codingscientist

从PDF中提取文本是一个难题,因为PDF具有这种面向布局的结构。您可以看到 文档和源代码 我几乎没有成功尝试过CPAN(我的实现是在Perl中)。 PDF数据结构非常酷,设计精良,但写入比阅读更容易。

2
Chris Dolan

获得一些线索的一种方法是创建一个由空白页组成的PDF文件。我的计算机上有CutePDF Writer,并制作了一页空白的Wordpad文档。打印到.pdf文件,然后使用记事本打开.pdf文件。

接下来,使用此文件的副本并删除可能感兴趣的行或文本块,然后在Acrobat Reader中重新加载。你会惊讶于制作一个单页PDF文件所需的信息很少。

我正在尝试编写一个电子表格,以便从代码中创建PDF表单。

2
Daniel Kim

您需要PDF参考手册才能开始阅读PDF文件的详细信息和结构。我建议从1.7版本开始。

在Windows上,我使用了一个免费工具 PDF Analyzer 来查看PDF文件的内部结构。在阅读参考手册时,这将有助于您理解。

enter image description here 

0
juFo