Comment créer des pdfformfields en utilisant iTextSharp?

J’utilise iTextSharp et CSharp pour créer le fichier PDF. J’ai besoin d’append des champs tels que les cases à cocher, les boutons radio et les menus déroulants qui ne peuvent pas être modifiés

J’ai utilisé ça ..

FileStream pdffile = new FileStream(path + "/Pdf/tes.pdf",FileMode.Create); PdfWriter writer = PdfWriter.GetInstance(doc, pdffile); doc.Open(); Rectangle rect = new Rectangle(100, 100, 100, 100); RadioCheckField checkbox = new RadioCheckField(writer, rect, "bhjabsdf", "on"); checkbox.CheckType = RadioCheckField.TYPE_CHECK; PdfFormField field = checkbox.CheckField; writer.AddAnnotation(field); doc.Close(); 

Mais ça ne marche pas. J’ai aussi lu sur PdfStamper . Mais je crée un nouveau pdf sans changer celui existant. Je ne sais donc pas si je peux utiliser PdfStamper ?

Merci..

Modifier:

 private void CreateRadioButton(PdfWriter writer, PdfContentByte cb,Font font) { Rectangle rect; PdfFormField field; PdfFormField radiogroup = PdfFormField.CreateRadioButton(writer, true); radiogroup.FieldName = "language"; RadioCheckField radio; int x = 20; for (int i = 0; i = 1) x = 25; } writer.AddAnnotation(radiogroup); } 

Vous créez un champ “à la dure”. Il existe une classe nommée RadioCheckField qui facilite beaucoup la création d’un champ.

Veuillez consulter les exemples de livre du chapitre 8 . Vous pouvez trouver des versions C # des exemples ici , par exemple un exemple nommé Boutons .

 checkbox = new RadioCheckField(writer, rect, LANGUAGES[i], "on"); checkbox.CheckType = RadioCheckField.TYPE_CHECK; PdfFormField field = checkbox.CheckField; 

Vous pouvez créer votre modèle de formulaire personnalisé à l’aide de LiveCycle, puis lier les champs de formulaire à l’aide de iTextSharp comme ceci.

 ssortingng randomFileName = Helpers.GetRandomFileName(); ssortingng formTemplate = Server.MapPath("~/FormTemplate.pdf"); ssortingng formOutput = Server.MapPath(ssortingng.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.ToShortDateSsortingng()); 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(); 

Vous n’avez pas besoin d’utiliser un PdfStamper pour créer des champs de formulaire AcroForm dans un PDF, PdfWriter vous le permet également.

Malheureusement, vous n’avez ni dit en quoi votre code ne fonctionnait pas, ni quelles exigences précises vous aviez; encore quelques exemples de code pourraient vous amener sur la bonne voie:

Consultez le chapitre 8 de iText in Action, 2e édition; Les exemples de boutons vous donneront de nombreux conseils sur la création de boutons radio et de cases à cocher. L’exemple de ChoiceFields vous montrera comment créer des listes et des listes déroulantes.