PDF (XMP) 格式的每页信息规范

Spec for per page information in PDF (XMP)

我用 N 张图片创建了一个 PDF。使用此命令行非常简单直接:

convert front1.png back1.png front2.png back2.png result.pdf

遗憾的是,在此过程中丢失了一些信息。文件result.pdf有四页,但不清楚是包含前后两页,还是包含前页。

我想将此信息存储在创建的 result.pdf 的元数据中。

是否有官方标准以 PDF 格式存储 front/back 信息?

我试图在这里找到一些东西,但找不到相关信息:http://www.adobe.com/products/xmp/standards.html

http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf

查看 pdf 规范 (1.7)

第 580 页(在交互功能下)列出了您可以设置首选项,例如双工和单工。

我不知道这是否可以使用 ImageMagick。 我知道可以使用 iText。

看到这个问题:Printing a PDF duplex using Java

就 PDF 格式而言,页面就是页面:它们不是 真正被认为是 'front' 或 'back'

只有当页面被光栅化到一张物理纸上(即印刷)时,这个概念才有意义。

这并不意味着 PDF 完全不知道这个概念。

它有几种发挥作用的方式:

  • PDF 可以带有一个内部指示符,指示文档是否打算双面打印(有几个选项, 如 Joris 的回答中所述)。然而,这些真的只是 对您发送它的打印系统的建议。没有 保证给定的打印系统实际上会尊重 按照您期望的方式在纸张的两面设置和放置页面。
  • PDF 的内容 可能布局 就像要双面打印一样(例如镜像页面布局等)。 ).但这只是内容流的一部分; PDF 格式本身是不可知的(除了上面提到的选项)。

所以很难说给定页面是 'front' 或 'back'。您可以检查是否设置了 Duplex 标志,如果设置了,则取页码并除以二:如果是偶数,则为首页,如果为奇数,则为后页(请记住,页码在 PDF 中以零开头)。

但仍然存在边缘情况。

例如,如果您要打印一个范围(比如第 3-7 页),并且您希望第 3 页是 'back' 页,则打印机输出的第一页可能不会它的正面是空白的,背面是第 3 页(这是您对我上面建议的期望)。

大多数打印机将从第一张 sheet 纸张的正面开始,您的 'front' 和 'back' 页面将乱序。

另一种方法是使用文章:PDF 参考 v1.7 中的第 8.3.2 节。您可以有 2 篇文章,一篇用于首页,另一篇用于封底。

PDF 参考 v1.7 - 8.3.2:"Some types of documents may contain sequences of content items that are logically connected but not physically sequential".