在不破坏可访问性或 PDF 标签的情况下连接 PDF
Posted
技术标签:
【中文标题】在不破坏可访问性或 PDF 标签的情况下连接 PDF【英文标题】:Concatenate PDFs without ruining accessibility or PDF tags 【发布时间】:2013-08-21 08:41:23 【问题描述】:非常感谢您在以下方面的帮助: 我有 2 个部分可访问的 PDF(包含标签),我想使用一些命令行工具(如 PDFtk 或 Ghostscript,或任何 Perl 模块)将它们连接起来: 我已经尝试使用 PDFtk 和 Ghostscript 执行此操作,并且都输出了没有原始标签的不可访问的 PDF(每个连接的 PDF 都有标签)。
您知道使用上述工具之一或其他 Linux 命令行工具实现此功能的任何方法吗? (不一定是免费软件) Perl 模块也是一种选择。
谢谢!
【问题讨论】:
iText 可以连接标记的 PDF 并使用 PDFCopy 保留标记(只要 PDF 不是可填写的表单) 谢谢你,Kevin- 这解决了问题:1. 使用此示例进行连接:link 2. 应用以下更改来保留标签:添加:copy.setTagged();
更改为:@987654325 @
更新-这并没有完全解决问题-我仍然应该断言创建的标签是有意义的+在连接后大声读出不起作用(尽管它确实有效原始连接的 PDF)
我要指出,大声朗读并不是对正确标签结构的测试。使用可访问性检查器分析两个输入文件以及输出。我敢打赌,您在源文档中有未标记的内容。
嗨凯文。感谢您的答复。我已经做到了:原始 PDF 和连接版本(= originalX2...)的报告的主要区别在于连接版本在以下方面失败:1. 主要语言 2. 标题。 iText 朗读演示也是如此:examples.itextpdf.com/results/part4/chapter15/read_out_loud.pdf 您可以在此处找到它的报告:itext-general.2136553.n4.nabble.com/file/n4659005/… 朗读也不适用于此演示 PDF。
【参考方案1】:
pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
您可以阅读更多in a similar question
【讨论】:
我会尝试第二个选项并更新-第一个不起作用-我已经测试了第一个命令(在写帖子之前)并根据 PAC2 (access-for-all.ch/en/pdf-lab/pdf-accessibility-checker-pac.html)结果根本无法访问,并且不包含标签,尽管该软件将原始 PDF 视为“部分可访问”。将很快更新关于第二个选项。谢谢。【参考方案2】:已解决 - 新版本的 iText 可以正常工作(前者,在写消息时最新版本不起作用 - 只是因为 5.4.4 可以工作)。
重要的是要提到(过去的文档中缺少) 在标记模式下连接文档时,必须保留所有阅读器 打开直到结果文档关闭,即:
首先: 文档.close(); 只有在此之后: reader.close();
【讨论】:
以上是关于在不破坏可访问性或 PDF 标签的情况下连接 PDF的主要内容,如果未能解决你的问题,请参考以下文章