How to create pdfformfields using iTextSharp?

前端 未结 3 1303
再見小時候
再見小時候 2020-12-21 14:25

I am using iTextSharp and CSharp for creating the pdf. I need to add formfields like checkbox, radiobutton and dropdown which can not be edited.

I used this..

<
相关标签:
3条回答
  • 2020-12-21 14:58

    You can create your custom form template using LiveCycle and then data bind the form fields using iTextSharp like this

    string randomFileName = Helpers.GetRandomFileName();
    string formTemplate = Server.MapPath("~/FormTemplate.pdf");
     string formOutput = Server.MapPath(string.Format("~/downloads/Forms/Form-{0}.pdf",    randomFileName));
    
    PdfReader reader = new PdfReader(formTemplate);
    PdfStamper stamper = new PdfStamper(reader, new System.IO.FileStream(formOutput,   System.IO.FileMode.Create));
    AcroFields fields = stamper.AcroFields;
    
    // set form fields
    fields.SetField("Date", DateTime.Now.ToShortDateString());
    fields.SetField("FirstName", user.FirstName);
    fields.SetField("LastName", user.LastName);
    fields.SetField("Address1", user.Address1);
    fields.SetField("Address2", user.Address2);
    fields.SetField("City", user.City);
    fields.SetField("State", user.State);
    fields.SetField("Zip", user.Zip);
    fields.SetField("Email", user.Email);
    fields.SetField("Phone", user.Phone);
    
    // set document info
    System.Collections.Hashtable info = new System.Collections.Hashtable();
    info["Title"] = "User Information Form";
    info["Author"] = "My Client";
    info["Creator"] = "My Company";
    stamper.MoreInfo = info;
    
     // flatten form fields and close document
    stamper.FormFlattening = true;
    stamper.Close();
    
    0 讨论(0)
  • 2020-12-21 15:09

    You do not need to use a PdfStamper to create AcroForm form fields in a PDF, PdfWriter also allows you to.

    Unfortunately you neither said in which way your code didn't work nor what exact requirements you have; still some sample code might bring you on track:

    Have a look at chapter 8 of iText in Action, 2nd edition; especially the sample Buttons will give you numerous hints on how to create radio buttons and check boxes. The sample ChoiceFields will show you how to create list and combo boxes.

    0 讨论(0)
  • 2020-12-21 15:14

    You're creating a field 'the hard way'. There's a class named RadioCheckField that makes it much easier for you to create a field.

    Please take a look at the book examples from Chapter 8. You can find C# versions of the examples here, for instance an example named Buttons.

    checkbox = new RadioCheckField(writer, rect, LANGUAGES[i], "on");
    checkbox.CheckType = RadioCheckField.TYPE_CHECK;
    PdfFormField field = checkbox.CheckField;
    
    0 讨论(0)
提交回复
热议问题