使用itextsharp

时间:2015-05-29 07:53:39

标签: c# itextsharp

我的要求是将数据写入客户端提供的PDF文件中。 此PDF文本框,单选按钮和复选框很少。

我可以使用C#用itextsharp(5.5.5.0)在给定的PDF文件中写入数据,但我在这里遇到了三个挑战

  1. 单选按钮 - 我可以选择一个单选按钮但不知何故它选择为" X",我该如何解决?

  2. 以PDF格式写入数据后,PDF变为只读,我无法更改数据。在通过C#填充PDF格式的数据后,如何将PDF的状态保持为可写状态?

  3. 根据单选按钮的选择,PDF应该显示不同的文本框,我的意思是如果我选择RadioButton 1到C#那么PDF应该显示TextBox1,如果我选择RadioButton 2到C#,PDF应该显示TextBox2,我该怎么办实现这个目标?

  4. 我正在使用此代码以PDF格式编写并选择RadioButton

    string pdfTemplate = @"C:\Users\Desktop\vstryout\Form_SH-7 - Copy.pdf";
                string newFile = @"C:\Users\Desktop\vstryout\Form_SH-7 - Copy-1.pdf";
                PdfReader pdfReader = new PdfReader(pdfTemplate);
                PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create, FileAccess.ReadWrite), '\0', false);
                AcroFields formFields = pdfStamper.AcroFields;
    
                foreach (var de in formFields.Fields)
                {
                    if (de.Key == "Form5_Dtls[0].Page1[0].Heading[0].CompName_C[0]")
                    {
                        formFields.SetField("Form5_Dtls[0].Page1[0].Heading[0].CompName_C[0]", "Company Name");
                    }
    
                    if (de.Key.ToString() == "Form5_Dtls[0].Page1[0].Heading[0].CompanyAdd_C[0]")
                    {
                        formFields.SetField("Form5_Dtls[0].Page1[0].Heading[0].CompanyAdd_C[0]", "Company Address");
                    }
    
                    if (de.Key.ToString() == "Form5_Dtls[0].Page1[0].SRN[0].SRN_C[0]")
                    {
                        formFields.SetField("Form5_Dtls[0].Page1[0].SRN[0].SRN_C[0]", "SRN");
                    }
    
                    if (de.Key.ToString() == "Form5_Dtls[0].Page1[0].Resolution[0].DateOfMeeting_D[0]")
                    {
                        formFields.SetField("Form5_Dtls[0].Page1[0].Resolution[0].DateOfMeeting_D[0]", "16/12/2010");
                    }
    
                    if (de.Key.ToString() == "Form5_Dtls[0].Page1[0].Resolution[0].OrdinarySpecial_R[0]")
                    {
                        formFields.SetField("Form5_Dtls[0].Page1[0].Resolution[0].OrdinarySpecial_R[0]", "Yes");
                    }
    
    
                    if (de.Key.ToString() == "Form5_Dtls[0].Page1[0].Heading[0].PurposeofForm[0]")
                    {
                        if (formFields.GetFieldType("Form5_Dtls[0].Page1[0].Heading[0].PurposeofForm[0]").ToString() == "3")
                        {
                            string[] str = formFields.GetAppearanceStates("Form5_Dtls[0].Page1[0].Heading[0].PurposeofForm[0]");
                            formFields.SetField("Form5_Dtls[0].Page1[0].Heading[0].PurposeofForm[0]", str[2]);
                        }
                    }
                }
                pdfStamper.FormFlattening = true;
                pdfStamper.Close();
                pdfReader.Close();
    

    仅供参考...我不需要在PDF中创建任何字段,PDF文件中已存在字段,我只需要将数据放在这些字段中。

    此致

0 个答案:

没有答案