如何根据外部文件的内容设置 pdfinfo?

如何根据外部文件的内容设置 pdfinfo?

如何在 PDF 元数据中包含外部文件的内容(内置属性,如Subject,或自定义属性,如My ID)?

我已经用 编写了一些文本shell-output.txt,例如date > shell-output.txtgit rev-parse HEAD > shell-output.txt(具体内容不重要)。我正在用 进行编译xelatex demo.tex,并且我愿意接受其他标志,--shell-escape例如write18

  • PDF 元数据应该包括我的文件的内容
  • PDF 元数据确实包含文字文件名,但不包含其内容

日志中的错误:

Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref)                removing `\@ifnextchar' on input line 10.

制作示例:

\documentclass{article}

\usepackage{hyperref}

\hypersetup{
pdfinfo={
MyID={\input{shell-output.txt}},
% Custom PDF metadata not shown in many applications,
% switch to more common attribute for debug
% Subject={\input{shell-output.txt}},
}
}

\begin{document}
Unimportant.
\end{document}

答案1

输入在这里不起作用,但您可以手动逐行读取文件的内容,并将其分配给变量并在稍后使用,如下所示:

\documentclass{article}

\usepackage{hyperref}

\begin{document}

    \newread    \myFile
    \openin     \myFile = shell-output.txt
    
    \read       \myFile to \myOutputLineOne
    \read       \myFile to \myOutputLineTwo

    \hypersetup{%
        pdfinfo={%
            Subject =   {\myOutputLineOne},
            Author  =   {\myOutputLineTwo},
        }
    }

Lorem ipsum.

    \closein    \myFile
\end{document}

相关内容