pdfbase.sty
(在 media9 包中)似乎提供了对低级 pdf 功能的访问,并且此 chat.stackexchange.com 帖子(如下所示)演示了其在创建外观中的用途。
使用 \pdfxform 从 savebox 内容创建外观。使用 pdfbase 命令和 Fontawesome 的示例:
\documentclass{article}
\usepackage{fontawesome5}
\usepackage{pdfbase}
\ExplSyntaxOn
\let\pbsPdfXform\pbs_pdfxform:nnnnn
\let\pbsPdfLastXform\pbs_pdflastxform:
\let\pbsPdfAnnot\pbs_pdfannot:nnnn
\def\pbsAppendToFields{\pbs_appendtofields:n{\pbs_pdflastann:}}
\ExplSyntaxOff
\begin{document}
\sbox{0}{\faIcon[regular]{square}}\pbsPdfXform{0}{1}{}{}{0}\edef\OffAppearance{\pbsPdfLastXform}%
\sbox{0}{\faIcon[regular]{check-square}}\pbsPdfXform{0}{1}{}{}{0}\edef\OnAppearance{\pbsPdfLastXform}%
\makebox[1.6ex][l]{\rule{0pt}{1.6ex}\leavevmode\pbsPdfAnnot{1.6ex}{1.6ex}{0pt}{%
- 示例文本似乎被截断了。我该如何利用这一点来实际展示新的外观之一?我尝试过,但我力不从心。
- 这可以用来创建超链接复选框的外观吗?(几篇帖子表明它们的外观在外观词典中被省略,使得它们在浏览器中查看时未选中。)
答案1
我使用 中的代码重新实现了复选框以使用外观pdfmanagement-testphase
。将来某个时候,它将取代 hyperref 中的代码。有关如何将其与 hyperref 一起使用的一些提示请参阅 文档l3pdffield-testphase
。在下面的示例中,熊和框都是复选框:
请注意,这需要一个非常新的 tex 系统,并且testphase
包名称中的 都表示代码处于测试阶段——它尚未与所有内容兼容。目前代码仅处理复选框。我还需要处理其他类型。
\DocumentMetadata{}
\documentclass{article}
\usepackage{l3pdffield-testphase}
\usepackage{bearwear}
\ExplSyntaxOn
\pdffield_store_appearance:nn {checkbox/bear/Yes}
{
\tikz\bear\bearwear;
}
\pdffield_store_appearance:nn {checkbox/bear/Off}
{
\tikz\bear;
}
\newlength\bearheight
\newlength\bearwidth
\settoheight\bearheight{\tikz\bear;}
\settowidth\bearwidth{\tikz\bear;}
\ExplSyntaxOff
\begin{document}
\ExplSyntaxOn
\pdffield_checkbox:n {name=bear,appearance=checkbox/bear,width=0.5\bearwidth,height=0.5\bearheight}
\quad
\pdffield_checkbox:n {name=default}
\ExplSyntaxOff
\end{document}
使用 Adobe Reader 时您应该禁用在文本字段周围添加边框的选项: