使用 PDFLaTeX 制作匿名 PDF 文件

使用 PDFLaTeX 制作匿名 PDF 文件

在为期刊撰写审稿报告时,最好让 pdflatex 生成的 PDF 文件完全匿名。

是否需要采取特殊措施来确保这一点?例如,如果结果文件中的任何地方包含对文件名及其路径的任何引用,则将产生信息(例如我的主目录/home/mariano/...

答案1

pdfTeX 和 luaTeX 将附加信息写入生成的 PDF 中,如pdftex-pdfkeys.pdf

  1. 文档目录包含一个附加键PTEX.Fullbanner,其中包含 pdftex/luatex 的完整版本,即“这是 pdfTeX,版本 3.1415926-2.4-1.40.13 (TeX Live 2012) kpathsea 版本 6.1.0)”。此键可在某些版本的 Adob​​e Reader 和 Adob​​e Acrobat 中看到(文档属性 -> 高级)。

对于每个包含的图像,这些键都会添加到包含该图像的 XObject 中:

  1. PTEX.FileName是 pdfTeX 所看到的文件名,例如“./sample2e.pdf”
  2. PTEX.PageNumber是包含的 PDF 的页码
  3. PTEX.InfoDict是所含 PDF 的信息词典(例如标题、作者等)的副本。

自 pdftex 1.40.17 起,这些键可以关闭;请参阅@BeingQuisitive 的回答

答案2

如果您希望删除它,可以尝试:

\usepackage{hyperref}
\hypersetup{
  pdfinfo={
  pdfproducer={},
  Title={},
  Subject={},
  Author={},
  }
}

(对于软件包文档第 3.9 节中描述的所有密钥hyperref)。


使用 Werner 的建议(我完全不知道),您可以直接使用引擎完成相同的操作PDFTeX,因此:

\pdfinfo{
  /Title ()
  /Creator ()
  /Producer ()
  /Author ()
  /Subject ()
  /Keywords ()
}

TeX然而,我对这个斜线语法(而不是反斜线)有点困惑。

答案3

欢喜吧!pdf隐私现在可以自动完成!

从包的文档中

要使用 pdfprivacy,只需将其包含进去:\usepackage[〈options〉]{pdfprivacy}[…] 默认情况下,[…] [t] 这会删除/隐藏所有 pdf 创建者、制作者、日期和 pdfTeX 元数据。标题、作者、主题和关键字等标准文档属性仍会保留。默认情况下,pdftrailerid 也会保留。

答案4

首先,PDF 不像 DOC 或 XLS——我从未遇到过其中的路径名或其他“隐藏”信息泄露有关我的计算机或环境的详细信息。 显然我错了,pdftex 和 luatex 确实将额外信息写入了 PDF 的对象目录中!详情请参阅 Martin 的回答。

然而,有时我们都会有点偏执。在这种情况下,一种简单但蛮力的方法就是栅格化整个 PDF(这里使用 ImageMagick):

convert -density 300 report.pdf report-anonymized.pdf

当然,缺点是生成的 PDF 会变得相当大,而且不再可能从中选择文本。

稍微不那么激烈的方法是将 PS 转换回 PDF,正如 Mariano 所建议的(这里使用 Ghostscript):

pdf2ps report.pdf - | ps2pdf - report-anonymized.pdf

这也会导致 PDF 完全重新编码。(我经常使用这种方法来“净化”由 OpenOffice 生成的透明胶片的 PDF,因为 pdflatex 经常会卡住)。

相关内容