![在 PDF 文件中添加不可见注释的方法](https://linux22.com/image/474511/%E5%9C%A8%20PDF%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%B7%BB%E5%8A%A0%E4%B8%8D%E5%8F%AF%E8%A7%81%E6%B3%A8%E9%87%8A%E7%9A%84%E6%96%B9%E6%B3%95.png)
在 XeTeX 中,我想将诸如“LABEL234”之类的注释包含到 PDF 文件的代码中,在当前的 TeX 位置,但不改变文档的外观,也不改变通过复制操作获得的文本。
我首先尝试过,但这在文档中引入了无效的 PDF 代码(并且我在 PDF 规范中\special{pdf:content LABEL234}
没有找到流内注释的任何概念)。BT ... ET
然后我尝试使用非常小的字体,并\rlap{\smash{LABEL234}}
以 0.01pt 的字体大小和白色引入,这在预览时确实是不可见的,但是当我复制粘贴文本时它会出现在粘贴的文本中。
1pixel.png
我尝试将“LABEL234”作为仅包含单个不可见像素的图像的名称,\special{pdf:image @LABEL234 (1pixel.png)}
但在生成的 PDF 文件中我却无法获得图片的名称,只能获得图片。
我需要将信息连接到 TeX 文件中出现命令的页面,而不是出现在某些全局词典中(如 XMP 元数据注释等)。
您是否知道如何将这些信息偷偷放入 PDF 代码中,以便它在 PDF 查看器中不可见,但在读取 PDF 代码时可以访问,以便可以在 PDF 文件中跟踪其页面,并且它不会影响复制和粘贴操作?
提前感谢任何提示
答案1
您可以使用 0 大小的注释或 bmc-Marker:
\DocumentMetadata{uncompress}
\documentclass{article}
\begin{document}
abc
\ExplSyntaxOn
%annotation
\pdfannot_box:nnnn{0pt}{0pt}{0pt}{/Contents~(Label123)}
%bmc marker
\pdf_bmc:n{Label123}\pdf_emc:
\ExplSyntaxOff
\end{document}
然后 bmc-Marker 位于流中:
/Label123 BMC EMC
注释记录在页面资源中,并包含矩形位置:
<</Type/Annot/Contents (Label123)/Rect[167.253 657.235 167.253 657.235]>>