XeLaTeX、hyperref 和 PDF/A

XeLaTeX、hyperref 和 PDF/A

我正在用西拉特克斯并面临提交符合 PDF/A 要求的文档。

首先,我想强调的是,我已经找到并阅读了几篇相关文章(例如 )。基于使用pdfx包的解决方案似乎不适用于 XeLaTeX,并会产生一系列以“未定义的控制序列。\pdfminorversion”开头的错误。因此,我基本上遵循了本教程并成功使用 Ghostscript 生成符合 PDF/A 标准的文档。

但是,我只能在不使用hyperref包或使用选项 调用包时才能执行此操作draft。这样,我得到的 PDF/A 文档就没有好东西了:书签、链接和以 100% 缩放打开的选项。当我尝试使用hyperref包和选项执行相同操作pdfa时,运行 Ghostscript 时出现此错误:“注释设置为非打印,在 PDF/A 中不允许,恢复为正常 PDF 输出”。链接和书签会保留,但 100% 缩放不会保留。(这与例如Word 2007 会创建 PDF/A 文档。)但是我获取的文件不是 PDF/A 文件。

这是我hyperref从序言中调用包的方式:

\usepackage[%draft=true,
            pdfa=true,
            bookmarks=true,bookmarksopen=true,bookmarksopenlevel=1,
            unicode=true,
            pdfauthor={My Name},
            pdftitle={My Title},
            breaklinks,hidelinks,
            colorlinks=true,linkcolor=blue,citecolor=blue,urlcolor=blue]{hyperref}
    \hypersetup{pdfstartview={XYZ null null 1.00}}

我的问题是如何保留链接和书签,如果可能的话,100% 缩放,并获取 PDF/A 文件。是否可以设置hyperref包中的选项以使用 XeLaTeX 和最终的 Ghostscript 完成类似的操作?

答案1

该软件包的最新版本 (1.5.8)pdfx已用于使用 XeLaTeX 创建有效的 PDF/A 文档。但是存在一些困难。

首先,您必须使用以下调用:

xelatex -shell-escape -output-driver="xdvipdfmx -z 0" <filename>

这意味着生成的 PDF 不使用压缩,因此如果使用压缩,其大小可能会是原来的 10 倍以上。这是因为 PDF/A 不允许压缩元数据包,但目前没有办法有选择地应用压缩(或非压缩)。(允许-shell-escape使用texlua来生成一些所需的信息。)

其次,特别是在使用 CJK 字体时,似乎没有办法生成有效的/CIDToGIDMap。如果这个断言不正确,请告诉我如何做,以便我可以在 的下一个版本中包含适当的程序pdfx.sty。有设置的可能性/CIDToGIDMap /Identity ,但如何确定这是否合适?

相关内容