Pandoc 用户使用指南 - 无障碍 PDF 与 PDF 归档标准

PDF 是一种灵活的格式,在某些上下文中使用 PDF 需要额外的约定。例如,PDF 默认情况下不具备无障碍特性;它们定义了字符如何放置在页面上,但不包含关于内容的语义信息。但是,可以生成无障碍 PDF,这些 PDF 使用标记来为文档添加语义信息。

Pandoc 默认使用 LaTeX 来生成 PDF。LaTeX 中的标记支持还在开发中并未广泛可用,因此通过这种方式生成的 PDF 总是未标记且不具备无障碍特性。这意味着为了生成无障碍 PDF 必须使用其他引擎。

PDF 标准 PDF/A 和 PDF/UA 定义了进一步的限制,旨在优化 PDF 用于归档和无障碍访问。标记通常与这些标准结合使用以确保最佳效果。

然而需要注意的是,标准符合性依赖于许多因素,包括嵌入图像的颜色空间。Pandoc 无法检查这些因素,必须使用外部程序来确保生成的 PDF 符合标准要求。

ConTeXt

ConTeXt 始终会生成带有标记的 PDF,但质量取决于输入内容。Pandoc 生成的默认 ConTeXt 标记是为了优化可读性和重用性,而不是为了标记。启用 标记 格式扩展以强制使用针对标记进行了优化的标记。这可以与 pdfa 变量结合使用以生成符合标准的 PDF。例如:

pandoc --to=context+tagging -V pdfa=3a

应当使用较新的 ConTeXt 版本,因为旧版本中存在一个会导致无效 PDF 元数据的错误。

WeasyPrint(实验性支持)

基于 HTML 的引擎 WeasyPrint 自第 57 版起提供了对 PDF/A 和 PDF/UA 的实验性支持。可以通过以下命令创建带标记的 PDF:

pandoc --pdf-engine=weasyprint \
       --pdf-engine-opt=--pdf-variant=pdf/ua-1 ...

此功能仍处于实验阶段,不应假设其完全符合标准。

Prince XML(非自由软件)

非自由的 HTML 到 PDF 转换器 Prince XML 对多种 PDF 标准以及标记提供了广泛的支持。例如:

pandoc --pdf-engine=prince \
       --pdf-engine-opt=--tagged-pdf ...

更多信息请参阅 Prince XML 的文档。

文字处理软件

LibreOfficeMicrosoft Word 这样的文字处理软件也可以用来生成标准化和带标记的 PDF 输出。Pandoc 不支持直接通过这些工具进行转换。但是,Pandoc 可以将文档转换为 docxodt 文件,然后可以使用相应的文字处理软件打开并转换为 PDF。更多信息请参阅 WordLibreOffice 的文档。

在本文档中