为何要点选栏位才可以看到文字? (验证测试程式码2的结果)
系统环境
- Windows11 Traditional Chinese
安装字型
- 使用附件中的TEST-Plus-Kai.ttf
- 档案总管中点选此字型档按右键, 必需选择"为所有使用者安装".
开发环境
- VS2022, .net 7
- 安装 Spire.PDF Latest Stable 9.6.0
附件
1.TEST-Plus-Kai-98.ttf
2.F91E1字码的实际显示样示.jpg
3.EmbedGridInCell.pdf
4.我测试产生的:TEST-Plus-Kai-98_embedded.pdf
测试程式码1: 使用Windows11 Traditional Chinese的标楷体
- Code: Select all
// 加载PDF文件
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("C:\\temp\\EmbedGridInCell.pdf");
// 获取表单字段
PdfFormWidget form = pdf.Form as PdfFormWidget;
// 检查表单是否存在
if (form != null)
{
// 查找名为"txt_Guardian"的表单字段
var fieldName = "txt_Guardian";
//遍历所有域名
for (int i = 0; i < form.FieldsWidget.Count; i++)
{
PdfField field = form.FieldsWidget.List[i] as PdfField;
if (field is PdfTextBoxFieldWidget)
{
PdfTextBoxFieldWidget textBoxField = field as PdfTextBoxFieldWidget;
//为textbox填入文本设置字体: 若您的windows没有该中文字体, 请自行换成"宋体"或其它windows中的中文字体
textBoxField.Font = new PdfTrueTypeFont(new Font("DFKai-SB", 16f, FontStyle.Regular), true);
textBoxField.Text = $"你好{char.ConvertFromUtf32(0xF91E1)}!";
}
}
}
// 保存填充后的PDF文件
pdf.SaveToFile("DFKai-SB_test_output.pdf");
pdf.Close();
验证测试程式码1的结果
1.使用Adobe Acrobat Reader开启DFKai-SB_test_output.pdf
2.可以看到"你好 !". 其中空白部份是'0xF91E1'字码
---
测试程式码2: 使用Windows11 Traditional Chinese的自建字型TEST-Plus-Kai-98
测试程式码2: 使用Windows11 Traditional Chinese的自建字型TEST-Plus-Kai-98
- Code: Select all
// 加载PDF文件
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("C:\\temp\\EmbedGridInCell.pdf");
// 获取表单字段
PdfFormWidget form = pdf.Form as PdfFormWidget;
// 检查表单是否存在
if (form != null)
{
// 查找名为"txt_Guardian"的表单字段
var fieldName = "txt_Guardian";
//遍历所有域名
for (int i = 0; i < form.FieldsWidget.Count; i++)
{
PdfField field = form.FieldsWidget.List[i] as PdfField;
if (field is PdfTextBoxFieldWidget)
{
PdfTextBoxFieldWidget textBoxField = field as PdfTextBoxFieldWidget;
//为textbox填入文本设置自建字体
textBoxField.Font = new PdfTrueTypeFont(new Font("TEST-Plus-Kai-98", 16f, FontStyle.Regular), true);
textBoxField.Text = $"你好{char.ConvertFromUtf32(0xF91E1)}!";
}
}
}
// 保存填充后的PDF文件
pdf.SaveToFile("TEST-Plus-Kai-98_test_output.pdf");
pdf.Close();
验证测试程式码2的结果
1.使用Adobe Acrobat Reader开启TEST-Plus-Kai-98_test_output.pdf.pdf
2.在表单栏位完全看不到"你好 !"的字. 点选该栏位后, 4个字都正常显示. => 问题: 为何要点选栏位才可以看到文字?
3.检视PDF内容的字型资料, 显示TEST-Plus-Kai-98字型已经内嵌. (附件:TEST-Plus-Kai-98_embedded.pdf)