如何默认将文本字段内的文本设为粗体

如何默认将文本字段内的文本设为粗体

我在新命令定义中尝试了各种组合(fontWeight=bfseries、font=bfseries),以默认将输入文本设为粗体,但目前尚未成功。如有任何建议,我将不胜感激。MWE:

\documentclass[11pt,a4paper]{article}
\usepackage[table]{xcolor}
\usepackage{hyperref,stackengine}
\newcommand{\TF}[2][5em]{\TextField[borderwidth=-0.2pt,
                           width=#1,
                           height=#1,  
                           charsize=12pt,
                           backgroundcolor=white!50!white,
                           color=black!100!black,
                           bordercolor=white!20!white,
                           name=#2
                           charWeight=\bfseries
                          ]{}}

\begin{document}
\fbox{\TF[12em, height=12pt, charsize=12pt,
     color=black!100!black, bordercolor=1 1 1]{d}}
\end{document}

答案1

这确实很难。与 PDF 中的普通文本不同,文本字段中的字形不是从嵌入的资源中获取的,而是 PDF 查看器必须动态生成的(毕竟没人知道用户将在这样的字段中输入哪些字符)。PDF 参考没有指定有关如何构建此类字体资源的很多细节,而是将其留给处理器,这意味着它很大程度上取决于 PDF 查看器。

因此 hyperref 不提供很多选项,您可以尝试设置字体大小和颜色,但或多或​​少就是这样。

使用 l3pdffield-testphase 您还可以指定字体名称,但正如我上面所写,不能保证每个查看者都会遵守该设置。如果他们找不到字体,他们可以退回到其他字体(或者干脆忽略该设置):

\DocumentMetadata{}
\documentclass{article} 
\usepackage{l3pdffield-testphase}
\usepackage{fontspec}
\setmainfont{DejaVuSans}
\begin{document}
\textbf{Some bold text}
\ExplSyntaxOn
\pdffield_textfield:n{name=name,font=DejaVuSans-Bold,width=5cm}
\ExplSyntaxOff

\end{document}

使用 Adob​​e Reader 时,会在字段中显示以下字体:

在此处输入图片描述

相关内容