PowerShell结合iText更新PDF表单时如何修改单个字段的字体
解决方案
- 提前准备好你需要的手写字体文件(TTF/OTF格式均可),放到本地固定路径,示例路径为
C:\Scripts\PDF\Fonts\SignatureFont.ttf,可替换为系统自带的手写类字体(如华文行楷、草书等),也可使用自定义的商用免费签名字体。 - 只需修改你代码中处理签名字段的部分,添加字体加载、字段字体设置逻辑即可,修改后的代码片段如下:
##---------------------------------------------------------------------------------------- ## Signature ##---------------------------------------------------------------------------------------- # 加载自定义手写字体,替换为你实际的字体文件路径 $fontProgram = [iText.IO.Font.FontProgramFactory]::CreateFont("C:\Scripts\PDF\Fonts\SignatureFont.ttf", $true) # 选用IDENTITY_H编码兼容中英文显示,无需修改 $signatureFont = [iText.Kernel.Font.PdfFontFactory]::CreateFont($fontProgram, [iText.Kernel.Pdf.PdfEncodings]::IDENTITY_H, $false) $Field = ($Fields | Where-Object {$_.key -eq "text_7byxl"}).Value # 先给字段设置自定义字体 $Field.SetFont($signatureFont) # 可根据字段大小调整字号,按需修改数值即可 $Field.SetFontSize(14) $Field.SetValue("$myRequestor [from Request $myRequest]")
注意事项
- 如调用系统自带字体,直接读取
C:\Windows\Fonts\下对应字体文件即可 - 若运行时报字体加载错误,检查字体文件是否有读取权限,建议用管理员权限运行PowerShell脚本
内容的提问来源于stack exchange,提问作者Jim Weaver
相关产品推荐
相关产品推荐

