/* (non-Javadoc) * @see com.itextpdf.html2pdf.attach.impl.layout.form.renderer.AbstractFormFieldRenderer#applyAcroField(com.itextpdf.layout.renderer.DrawContext) */ protected internal override void ApplyAcroField(DrawContext drawContext) { PdfDocument doc = drawContext.GetDocument(); PdfAcroForm form = PdfAcroForm.GetAcroForm(doc, true); Rectangle area = flatRenderer.GetOccupiedArea().GetBBox().Clone(); PdfPage page = doc.GetPage(occupiedArea.GetPageNumber()); String groupName = this.GetProperty <String>(Html2PdfProperty.FORM_FIELD_VALUE); PdfButtonFormField radioGroup = (PdfButtonFormField)form.GetField(groupName); bool addNew = false; if (null == radioGroup) { radioGroup = PdfFormField.CreateRadioGroup(doc, groupName, "on"); addNew = true; } if (IsBoxChecked()) { radioGroup.SetValue(GetModelId()); } PdfFormField radio = PdfFormField.CreateRadioButton(doc, area, radioGroup, GetModelId()); radio.SetCheckType(PdfFormField.TYPE_CIRCLE); if (addNew) { form.AddField(radioGroup, page); } else { form.ReplaceField(GetModelId(), radioGroup); } WriteAcroFormFieldLangAttribute(doc); }
public virtual void PdfAButtonFieldTest() { PdfDocument pdf; Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); String file = "pdfAButtonField.pdf"; String filename = destinationFolder + file; pdf = new PdfADocument(new PdfWriter(new FileStream(filename, FileMode.Create)), PdfAConformanceLevel.PDF_A_1B , new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB ICC preference", @is)); PageSize pageSize = PageSize.LETTER; Document doc = new Document(pdf, pageSize); PdfFontFactory.Register(sourceFolder + "FreeSans.ttf", sourceFolder + "FreeSans.ttf"); PdfFont font = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", true); PdfButtonFormField group = PdfFormField.CreateRadioGroup(pdf, "group", "", PdfAConformanceLevel.PDF_A_1B); group.SetReadOnly(true); Paragraph p = new Paragraph(); Text t = new Text("supported"); t.SetFont(font); p.Add(t); Image ph = new Image(new PdfFormXObject(new Rectangle(10, 10))); Paragraph pc = new Paragraph().Add(ph); PdfAFormFieldTest.PdfAButtonFieldTestRenderer r = new PdfAFormFieldTest.PdfAButtonFieldTestRenderer(pc, group , "v1"); pc.SetNextRenderer(r); p.Add(pc); Paragraph pc1 = new Paragraph().Add(ph); PdfAFormFieldTest.PdfAButtonFieldTestRenderer r1 = new PdfAFormFieldTest.PdfAButtonFieldTestRenderer(pc, group , "v2"); pc1.SetNextRenderer(r1); Paragraph p2 = new Paragraph(); Text t2 = new Text("supported 2"); t2.SetFont(font); p2.Add(t2).Add(pc1); doc.Add(p); doc.Add(p2); //set generateAppearance param to false to retain custom appearance group.SetValue("v1", false); PdfAcroForm.GetAcroForm(pdf, true).AddField(group); pdf.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(filename, sourceFolder + "cmp/PdfAFormFieldTest/cmp_" + file, destinationFolder, "diff_")); }
protected void ManipulatePdf(String dest) { PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest)); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true); PdfButtonFormField button = PdfFormField.CreatePushButton(pdfDoc, new Rectangle(36, 700, 36, 30), "post", "POST"); button.SetBackgroundColor(ColorConstants.GRAY); button.SetValue("POST"); // The second parameter is optional, it declares which fields to include in the submission or which to exclude, // depending on the setting of the Include/Exclude flag. button.SetAction(PdfAction.CreateSubmitForm("http://itextpdf.com:8180/book/request", null, PdfAction.SUBMIT_HTML_FORMAT | PdfAction.SUBMIT_COORDINATES)); button.SetVisibility(PdfFormField.VISIBLE_BUT_DOES_NOT_PRINT); form.AddField(button); pdfDoc.Close(); }