Beispiel #1
0
        /* (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_"));
        }
Beispiel #3
0
        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();
        }