有没有办法更改添加到 PDF 文档的属性?例如,当我转到特性在 Acrobat 面板中,我看到:
应用程序:带有 hyperref 包的 LaTeX
PDF 制作器:PdfTeX-1.40.11
PTEX.Fullbanner:这是 pdfTeX 版本 3.1415926-1.40.11-22(TeX Live 2010)
这些是我在我的 Acrobat 版本中唯一能看到的,但 PDF 中可能有更多嵌入的内容。
我想知道是否有设置可以控制嵌入在 PDF 文档中的属性值。我记得有一次 Acrobat 在其中嵌入了登录用户 ID,但我在 Mac 上没有看到。我想自定义所有这些属性,除非它们是必要的(我假设字体列表是正确显示 PDF 所必需的)。
很可能有一种方法可以使用 Acrobat Pro 来做到这一点,但这需要我对每个文件分别执行此操作。
答案1
至少有两种方法可以做到这一点。
选项1:在制作 LaTeX 文档并使用hyperref
包裹。 在手册它提到你可以设置以下文档属性信息:
- 标题字段(通过
pdftitle
) - 作者字段(通过
pdfauthor
) - 主题字段(通过
pdfsubject
) - 创建者字段(通过
pdfcreator
) - 生产者字段(通过
pdfproducer
) - 关键字字段(通过
pdfkeywords
) - 以及其他许多人。
为此,你可以使用
\documentclass{minimal}
\usepackage[%
pdftitle={My Title},%
pdfauthor={My Author},%
pdfsubject={My Subject},%
pdfproducer={My Producer},%
pdfkeywords={keyword1,keyword2}]{hyperref}
\begin{document}
This is just some dummy text.
\end{document}
选项 2:您可以在后期制作过程中通过以下方式修改/更新 PDF 文档属性:PDF 工具包使用下面的命令行执行:
pdftk <inputfile> update_info <pdf_info> output <outputfile>
该文本文件<pdf_info>
看起来像您想要更新的每个字段的键值列表。
答案2
您可以使用以下方式更改创建者和制作者字段hyperref
:
\documentclass{article}
\usepackage{hyperref}
\hypersetup{
pdfcreator={Hello},
pdfproducer={World}
}
\begin{document}
Hello World
\end{document}
第三个字段更有趣,需要进一步研究。它当然可以在 PDF 文件中看到,但 Evince 并pdfinfo
没有显示它……该字段也在pdfTeX 手册。
让我们看一下 pdfTeX 源代码。src/texk/web2c/pdftexdir/pdftex.web
我们看到
pdf_str_entry_ln("PTEX.Fullbanner", pdftex_banner);
和
@d pdfTeX_banner=='This is pdfTeX, Version 3.1415926',pdftex_version_string
在哪里
@d pdftex_version_string=='-1.40.11' {current \pdfTeX\ version}
pdf_str_entry_ln
直接输出其参数:
procedure pdf_str_entry(s, v: str_number); {print out an entry in
dictionary with string value to PDF buffer}
…
procedure pdf_str_entry_ln(s, v: str_number);
begin
if v = 0 then
return;
pdf_str_entry(s, v);
pdf_print_nl;
end;
因此,文本是硬编码的,并且您在 TeX 端无法使用此字段 - 除非您编辑源代码。