使用 pdfbase 添加外观

使用 pdfbase 添加外观

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. 示例文本似乎被截断了。我该如何利用这一点来实际展示新的外观之一?我尝试过,但我力不从心。
  2. 这可以用来创建超链接复选框的外观吗?(几篇帖子表明它们的外观在外观词典中被省略,使得它们在浏览器中查看时未选中。)

答案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}

使用 Adob​​e Reader 时您应该禁用在文本字段周围添加边框的选项:

在此处输入图片描述

相关内容