我有一个包含中文,日文的PDF。在那个PDF中我有一些输入字段。我想在C#.net
中动态填写此PDF我正在使用iTextSharp dll读取pad并成功读取PDF字段但是当我要使用PdfStamper.AcroFields.SetField
设置值时,它会给我这个错误
Font' KozMinPro-Regular'与' UniJIS-UCS2-H'不被承认。
要阅读PDF并获取字段,我使用以下代码
string pdfTemplate = @"C:\Users\admin\Desktop\test.pdf";
PdfReader pdfReader = new PdfReader(pdfTemplate);
StringBuilder sb = new StringBuilder();
foreach (DictionaryEntry de in pdfReader.AcroFields.Fields)
{
sb.Append(de.Key.ToString() + Environment.NewLine);
}
我成功地获得了所有领域。
要填写PDF中的数据我正在使用此代码
string pdfTemplate = @"C:\Users\admin\Desktop\test.pdf";
string newFile = @"C:\Users\admin\Desktop\newdata_test.pdf";
PdfReader pdfReader = new PdfReader(pdfTemplate);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(
newFile, FileMode.Create));
AcroFields pdfFormFields = pdfStamper.AcroFields;
// set form pdfFormFields
pdfFormFields.SetField("fill_17", "test");
我在pdfFormFields.SetField
方法上面临错误
Font' KozMinPro-Regular'与' UniJIS-UCS2-H'不被承认。
请告知我需要更改的内容或如何解决此问题。
答案 0 :(得分:1)
您的项目中缺少一些文件。为了使用字体' KozMinPro-Regular'使用' UniJIS-UCS2-H',您需要授予iTextSharp访问包含该字体信息的指标文件的权限。这些指标文件可以从SourceForge单独下载。更具体地说,您需要可以在iTextAsian-all-2.1.zip中找到的文件iTextAsian-dll-2.1.zip
请注意,这仅适用于最近版本的iTextSharp(5.3.0.0或更高版本)。这个iTextAsian DLL不能使用旧版本的iTextSharp。