pdf - 合并 PDF 的最佳双工方式
问题描述
我正在将多个多页源 PDF 合并为一个新的结果 PDF 供客户打印。
现在一些源 PDF 包含偶数页,一些包含奇数页(不可预测)。
一些客户打印单面,一些打印双面。这很困难,因为单面客户不希望在文档之间有空白页面,而双面客户不希望在同一张纸上拥有结束页面和起始页面。
为这两种类型的客户提供良好体验的最佳方式是什么?
是否有用于标记文档边框的 PDF 功能?我什么都找不到...
[编辑]
为了进一步澄清我的问题:人们将 pdf 文档上传到我的工具,将它们合并为一个并再次下载。从软件的角度来看,我完全不知道他们的打印配置/习惯/设置/设备。因此,我似乎需要一个 PDF 功能来存储“文档边框”或“打印说明”(文档 1 从第 1-3 页开始,文档 2 从第 4-11 页开始,......) - 但这个功能似乎没有存在 - 或其他具有相同效果并且可以存储在文件中的东西,因为该文件是软件生成的所有文件。
[编辑 2]
这个问题的一个明显解决方案是询问用户我们是否希望在每个具有不均匀页码的合并文档之后插入空白页(最后一个除外),但这会破坏 PDF 文档的数字阅读体验。
解决方案
PDF 规范中没有“子文档”的功能。PDF 文档是一组页面。如果您将它们连接在一起,那么您正在从源文档中制作所有页面的一个文档。
可以使用 Adobe 的作业定义文件格式 (JDF) 来包含描述子文档边界的数据(因为它是可扩展的 XML)。JDF 文件可以存储在 PDF 中。但是,您的用户最终需要能够解析 JDF 文件并采取相应措施的软件。
或者,您可以创建两个单独的工具:一个为每个具有奇数页数的源文档添加空白页,另一个不添加。但是,这将依赖于您的用户运用他们的判断来选择正确的。
另一种做法可能是建议那些使用双面打印机的用户合并 PDF 没有什么好处,他们应该只将多个 PDF 文档发送到他们的打印机。
推荐阅读
- sql - 我如何表示一个由 3 个其他实体组成的实体?
- slack-api - 我怎样才能让它看起来像一个机器人正在输入松弛?
- blazor - Blazor、Debug.WriteLine 未输出到 Google Chrome 控制台
- c++ - Valgrind POSIX timer_create()“可能丢失”
- amazon-web-services - 有没有办法从当前资源生成 CloudFormation 模板?
- swift - 如何将数组作为表单数据传递给邮递员
- javascript - 无法使用 JavaScript 在 Appium 中使用 By.name 定位器单击元素
- python - TypeError:张量是不可散列的。相反,使用 tensor.ref() 作为键
- ios - 反应本机 Xcode 项目未启动
- javascript - 有没有办法在 Detox 中记录找到的值?