使用 pdflatex:如何将 PDF 的文本对象“T”从八进制恢复回 ascii?

使用 pdflatex:如何将 PDF 的文本对象“T”从八进制恢复回 ascii?

我有一个精美的 PDF 文档,其中包含许多使用 hyperref 创建的表格。

梅威瑟:

\documentclass{article}
\usepackage{hyperref}

\begin{document}
\begin{Form}
X \TextField[hidden=true, name=Magic,readonly=true,value=QuickBrownFox]{\phantom{Magic number}} X
\end{Form}
\end{document}

我的用户填写 PDF 然后我使用手写工具提取他们的答案。

从昨天开始(以及更新到 TexLive 2021 之后),pdflatex 会从我未更改的 TeX 文件中创建乱码的 PDF 文本。当我尝试从已填写的 PDF 中提取键和值时,我发现字符串突然被散布的八进制代码编码:

新创建的 PDF 中的一行可能如下所示:

/Subtype/Widget/F 6/T(\376\377\000M\000a\000g\000i\000c)/FT/Tx etc.

可以看到“magic”一词交错出现。但在我的旧文件中,它看起来是这样的:

/Subtype/Widget/F 6/T(Magic)/FT/Tx etc.

我如何调整 pdflatex 来恢复创建 ASCII 字符串的行为?

376、377 以及特别是 000 字符代码的含义是什么?

任何提示都值得赞赏。我需要编写八进制解码器吗?如何处理这些代码?

附言:我已查阅 PDF 参考第三版,但发现它没什么帮助。

PPS。我现在正在下载 TL 2020,看看是否可以重现旧的行为。

斯蒂芬

答案1

根据 Ulrike 的评论,解决方案很容易找到:

\usepackage[unicode=false]{hyperref}

成功了。

相关内容