前言
可移植文档格式(PDF)是世界领先的页面描述语言,
第一种同样适用于打印和在线使用的格式。
PDF文档现在几乎无处不在于印刷行业,
文档交换以及分页内容的在线分发。
然而,它们被广泛认为是不透明和脆弱的,
即使是技术性质的人也很难理解。
部分原因是缺乏文档;文件格式参考是免费提供的,
但其大小和复杂性要求大多数使用PDF的人
不太可能花费时间。
本书旨在成为一本平易近人的介绍。
它既适合技术专家,也适合那些只想了解一些
PDF格式的人,使用生成或处理PDF文档的工具
为他们的工作提供背景信息。
谁应该读这本书
我们尝试编写一本书作为一般性介绍,
并附带一些可选的技术插图,
让你有机会输入示例PDF文件并查看它们的显示方式。
本书适合:
- 希望了解其提供的设施背后原因的Adobe Acrobat用户,
而不仅仅是如何使用它们。例如:加密选项,
修剪和裁剪框以及页面标签。 - 希望使用命令行软件批量处理PDF文档的高级用户,
通过合并,拆分和优化它们。 - 程序员编写代码来读取,编辑或创建PDF文件。
- 想要了解如何使用PDF的元数据和工作流功能来
构建连贯系统的搜索,电子出版和打印行业专业人士。
内容组织
在本章中,我们将提供PDF格式的历史记录并将其
放入上下文中。我们看一下PDF相对于类似技术
的优势,介绍PDF/X和PDF/A等专业PDF文件,
并简要介绍一下典型PDF文档的元素。
最后,我们将了解PDF在行业中的应用。
我们认真地开始,在文本编辑器中从头开始构建
一个简单的PDF文件。我们将展示如何将其处理
为完全有效的PDF并在PDF查看器中打开它。
我们先解释一下PDF文档的各个部分,然后解释文件的每个组成部分。
在本章中,我们将介绍PDF文件的布局和内容,
以及构建它的对象的语法。我们将描述如何将PDF
文档从平面文件读取为结构化格式,相反,
将该文档从该结构化格式写入平面文件。
在本章中,我们将PDF文件的位和字节留下,
并考虑其对象的逻辑结构,描述页面及其资源如何排列到文档中。
我们将介绍如何在PDF中创建矢量图形和光栅图像,
以及如何处理透明度,颜色空间和模式。
我们用示例说明,在PDF查看器中显示代码和结果。
在本章中,我们将介绍使用不同字体和大小构建和
显示文本字符串的PDF运算符,以及如何构建行和段落。
我们描述了PDF文档中不同类型的字体和编码,以及它
们的定义和使用方式。我们从PDF文档中查看文本提取过程。
在这里,我们讨论与文档的视觉外观不直接相关的主题,
但讨论辅助数据:书签,元数据,超链接,注释和文件附件。
对于每一个,我们描述了如何在PDF中定义它们并给出示例。
我们将了解加密和文档权限如何在PDF中工作,
并了解如何在Adobe Reader中检查加密信息。
我们将描述处理PDF文件的程序如何读取,写入和编辑加密文档。
在本章中,我们将展示如何使用流行的pdftk程序
进行PDF文件的命令行处理,查看常见的使用场景。
我们描述了诸如pdftk之类的程序必须在内部执行某
些任务(例如,合并或拆分文档)。
在这里,我们描述了用于查看,转换,编辑和使用PDF文
件编程的Adobe和开源软件。我们提供进一步文档和其
他资源的来源,例如支持和论坛。
致谢
我要感谢我的编辑Simon St.Laurent,他从一开始就对这个项目充满热情。
本书使用的惯例
略
获取代码示例
本书中的所有PDF代码示例均可从O'Reilly网站的zip存档中下载。
本书的内容包含足够的信息来重建这些示例(加密文档除外,
它们不适合手动输入)。
这些示例包括本书中数字的PDF源代码。
使用代码示例
这本书是为了帮助你完成工作。通常,你可以在程序和文档中
使用本书中的代码。除非你复制了大部分代码,否则你无
需与我们联系以获得许可。例如,编写使用本书中几
个代码块的程序不需要许可。出售或分发O'Reilly书籍中
的示例CD-ROM需要获得许可。通过引用本书并引用示例
代码来回答问题不需要许可。将本书中的大量示例代码
合并到产品文档中需要获得许可。
我们感谢,但不要求,归属。归属通常包括标题,作者,出版商和ISBN。
例如:“PDF 解释 由John Whitington(O'Reilly)。
版权所有2012 John Whitington,978-1-449-31002-8。“
如果你认为你对代码示例的使用超出了合理使用范围或上述许可范围,
请随时通过permissions@oreilly.com与我们联系。