使用 pdfathesis 生成的 PDFA 比普通 PDF 大 20 倍

使用 pdfathesis 生成的 PDFA 比普通 PDF 大 20 倍

我很高兴能够通过 pdfathesis 包创建我的论文的 PDFA 文档。但是,我的 PDF 格式的论文占用 3MB,而 PDFA 文件却有 85.3MB。我发现矩阵的每个 tikzpicture 都会使 PDFA 格式所用空间的数量增加几倍。我在 Overleaf 中做了一个最小示例:

https://www.overleaf.com/read/bpfxhqhywzbg

您需要下载该项目,在本地进行编译(使用 XeLaTex),以便获得 main.sh 和 main.gs 文件。然后打开终端,进入 PDFA_Matrix 文件夹并输入sh main.sh

我使用了 lipsum 包,因为它确实有区别。如果没有 lipsum 文本,普通 PDF 的大小为 50KB,生成的 PDFA 的大小为 250KB。使用 lipsum 文本后,50KB 的 PDF 会转换为 1.2MB 的大 PDFA。

一个简单的解决方案是将情节外部化,但也许有人也很好奇并想知道为什么会发生这种情况。

答案1

您的示例使用 ghostscript 和 -dPDFA 选项创建符合 pdf/A-1 标准的 pdf。您的示例还使用了不透明度。但 PDF/A-1 中禁止使用透明对象和图层,看起来 ghostscript 正在执行很多努力移除它们。我无法检查到底发生了什么,因为即使是小例子,未压缩的 pdf 也是巨大的

此示例创建一个 9kb 的 pdf:

\documentclass[12pt]{book}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\fill[red,opacity=0.3](0,0)rectangle (1,1);
\end{tikzpicture}
\end{document}

将其转换(我在 Windows 上)

gswin64 -dPDFA=1  -sDEVICE=pdfwrite  -o main-PDFA.pdf main.pdf

给出一个 160kb 的 pdf,因此大 10 倍以上,解压缩后得到 142000 kb。

所以你的选择是

  • 删除所有不透明度设置或
  • 使用 -dPDFA=2 转换为 pdf/A-2,其中允许透明度。至少使用我的 ghostscript,这给出了合理的尺寸。

相关内容