Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用iTextSharp压模填写PDF中的空白字段_C#_Asp.net Mvc_Itextsharp - Fatal编程技术网

C# 使用iTextSharp压模填写PDF中的空白字段

C# 使用iTextSharp压模填写PDF中的空白字段,c#,asp.net-mvc,itextsharp,C#,Asp.net Mvc,Itextsharp,当我等待有人创建一个可填充的PDF供我在我的项目中使用时,我在编写代码时用一个可填充的税务表格代替了它。下面的代码填充了税务PDF表单,但当我用可填充的PDF表单替换税务表单时,它不再有效。我已经验证了字段名是否正确(通过检查acroFields中的字段)。为什么我的表格不填?(模板是可填写的表单) 和PopulatePDF(我还验证了PDFFields.StudentLName有一个值): 你知道为什么这个新表格不能填吗?表单是否需要某些属性才能使用iTextSharp?iTextSharp是

当我等待有人创建一个可填充的PDF供我在我的项目中使用时,我在编写代码时用一个可填充的税务表格代替了它。下面的代码填充了税务PDF表单,但当我用可填充的PDF表单替换税务表单时,它不再有效。我已经验证了字段名是否正确(通过检查acroFields中的字段)。为什么我的表格不填?(模板是可填写的表单)

和PopulatePDF(我还验证了PDFFields.StudentLName有一个值):


你知道为什么这个新表格不能填吗?表单是否需要某些属性才能使用iTextSharp?iTextSharp是4.1.2.0版

答案是移除括号。“监视”窗口正在“添加”字段名。

您确定字段名中包含括号吗?这似乎既没有必要,也有点奇怪。另外,如果你没有捕捉到任何东西,为什么要用try-catch来包装整个区块?啊,括号就是它!当你检查手表窗口中的“字段”时,它们会用括号显示,所以我假设。。。做坏事。我还没有完成日志记录,因此捕获结果是空的。那么,在这种情况下,我将添加它作为回答:)
        try
        {
            if (!string.IsNullOrWhiteSpace(template))
            {
                pdfMemoryReader = new PdfReader(template);
                pdfMemoryReader.RemoveUsageRights();  // prevents the "This document enabled extended features in Adobe Reader...." message
                PdfStamper pdfMemoryStamper = null;
                try
                {
                    pdfMemoryStamper = new PdfStamper(pdfMemoryReader, memoryStream);

                    AcroFields acroMemoryFields = pdfMemoryStamper.AcroFields;

                    acroMemoryFields = PopulatePDF(studentId, termId, acroMemoryFields, PDFFields);

                    pdfMemoryStamper.FormFlattening = true;
                    pdfMemoryStamper.Writer.CloseStream = false;
                    if (pdfMemoryStamper != null)
                    {
                        pdfMemoryStamper.Close();
                    }
                    memoryStream.Position = 0;
                }
                finally
                {
                    pdfMemoryReader.Close();  //this supposedly closes the underlying stream
                }
            }
        }
        catch
        { }
        return memoryStream;
        public AcroFields PopulatePDF(Guid studentId, Guid termId, AcroFields acroFields, PDFViewModel PDFFields)
    {            
        SharedInfo(studentId, termId, PDFFields);
        acroFields.SetField("[StudentLName]", PDFFields.StudentLName);
        acroFields.SetField("[StudentFName]", PDFFields.StudentFName);
        acroFields.SetField("[Grade]", PDFFields.StudentFName);
     }