【问题标题】:itextsharp PdfStamper.AcroFields.SetField giving erroritextsharp PdfStamper.AcroFields.SetField 给出错误
【发布时间】:2014-08-20 07:05:00
【问题描述】:

我有一个包含中文、日文的PDF。在那个 PDF 中,我有一些输入字段。我想在 C#.net 中动态填充这个 PDF

我正在使用 iTextSharp dll 读取 pad 并成功读取 PDF 字段,但是当我要使用 PdfStamper.AcroFields.SetField 设置值时,它给了我这个错误

无法识别带有“UniJIS-UCS2-H”的字体“KozMinPro-Regular”。

要阅读 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 方法上遇到错误

无法识别带有“UniJIS-UCS2-H”的字体“KozMinPro-Regular”。

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

【问题讨论】:

    标签: asp.net itextsharp


    【解决方案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。

    【讨论】:

    • 我已经用上面的方法成功生成了pdf,但是默认情况下显示在字段中的文本要大得多,当我点击它时,文本又会变小。可能是因为字段具有自动字体大小属性。请帮我解决这个问题
    • 字体大小在字段级别定义。如果此大小为 0,则 iText 将选择字体大小。如果不为 0,则 iText 将使用定义的字体大小。
    • 是的,但是如果我们定义了字体大小,那么在长文本的情况下,我们的文本将不适合字段。所以我将字体大小设置为 0 并且工作正常。但在我的情况下,pdf 在打开 PDF 时显示较大的字体,当我们单击文本框时,它会变小。
    • 嗯...如果您将字体大小设置为 0,那么您必须忍受这一点。如果您使用 0,则没有规则可以定义默认外观应使用哪种确切的字体大小。一个另一种方法是告诉 iText 不生成外观。在这种情况下,外观将由 PDF 查看器创建。
    猜你喜欢
    • 1970-01-01
    • 2018-05-31
    • 2012-08-28
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    相关资源
    最近更新 更多