PDF 表单是否支持背景颜色和边框颜色?

PDF 表单是否支持背景颜色和边框颜色?

我正在玩一些新的l3pdffield-testphase

\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{uncompress}
\documentclass[varwidth, margin = 5pt]{standalone}
\usepackage{l3pdffield-testphase}
% For some reason, l3color is not in TeXLive, but l3draw defines color macros
\usepackage{l3draw} 

\ExplSyntaxOn
\cs_set_eq:NN\pdffieldtextfield\pdffield_textfield:n
% Manual definition taken from xcolor-material
\color_set:nnn{MaterialOrange100}{HTML}{FFE0B2}
\ExplSyntaxOff

\begin{document}

\pdffieldtextfield{V = {Test 1}, name = test1, backgroundcolor = MaterialOrange100, bordercolor = red, width = 4cm}

\end{document}

我理解可填写的表单很大程度上依赖于查看器(chrome/chromium内部 pdf 查看器做得很好,但会evince出现段错误)。但 chrome 和 evince 都无法显示 和backgroudcolorbordercolor所以,我的问题是:错误是在查看器端,还是我对新的色彩管理不了解,l3color或者目前存在错误?

答案1

您需要激活NeedAppearances选项来告诉 pdfviewer 它应该建立一个“外观”。这可以通过以下方式完成

\pdfmanagement_add:nnn{Catalog/AcroForm}{NeedAppearances}{true}

NeedAppearances在 pdf 2.0 中已弃用。替代方法是将外观(=小图形)添加到定义中(不需要 l3draw,您也可以使用 tikz 或其他;在当前的 LaTeX 中,不再需要明确加载 pdfmanagement-testphase,它由 \DocumentMetadata 完成):

\DocumentMetadata{}
\documentclass[varwidth, margin = 5pt]{standalone}
\usepackage{l3pdffield-testphase}
\usepackage{l3draw}
\ExplSyntaxOn
\cs_set_eq:NN\pdffieldtextfield\pdffield_textfield:n
\color_set:nnn{MaterialOrange100}{HTML}{FFE0B2}

\pdffield_appearance:nn{cjorssen/textfield}
 {
   \draw_begin:
    \color_fill:n { MaterialOrange100 }
    \color_stroke:n { red }
    \draw_path_rectangle:nn { 0 , 0 } { 4cm , 12pt }
    \draw_path_use:n {fill}
    \draw_path_use:n {stroke}
   \draw_end:
 }  

\ExplSyntaxOff

\begin{document}

\pdffieldtextfield{V = {Test 1}, name = test1, appearance=cjorssen/textfield, width = 4cm}

\end{document}

在此处输入图片描述

相关内容