itextsharp PdfStamper.AcroFields.SetField给出错误

时间:2014-08-20 07:05:00

标签: asp.net itextsharp

我有一个包含中文,日文的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'不被承认。

请告知我需要更改的内容或如何解决此问题。

1 个答案:

答案 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。