public override void Draw(DrawContext context) { int pageNumber = GetOccupiedArea().GetPageNumber(); Rectangle bbox = GetInnerAreaBBox(); PdfDocument pdf = context.GetDocument(); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true); PdfFormField chk = PdfFormField.CreateRadioButton(pdf, bbox, _group, _value, PdfAConformanceLevel.PDF_A_1B ); chk.SetPage(pageNumber); chk.SetValue("Off"); chk.RegenerateField(); chk.SetVisibility(PdfFormField.VISIBLE); chk.SetBorderColor(ColorConstants.BLACK); chk.SetBackgroundColor(ColorConstants.WHITE); chk.SetReadOnly(true); PdfFormXObject appearance = new PdfFormXObject(bbox); PdfCanvas canvas = new PdfCanvas(appearance, pdf); canvas.SaveState().MoveTo(bbox.GetLeft(), bbox.GetBottom()).LineTo(bbox.GetRight(), bbox.GetBottom()).LineTo (bbox.GetRight(), bbox.GetTop()).LineTo(bbox.GetLeft(), bbox.GetTop()).LineTo(bbox.GetLeft(), bbox.GetBottom ()).SetLineWidth(1f).Stroke().RestoreState(); form.AddFieldAppearanceToPage(chk, pdf.GetPage(pageNumber)); chk.SetAppearance(PdfName.N, "v1".Equals(_value) ? _value : "Off", appearance.GetPdfObject()); }
public virtual void PdfA1bButtonAppearanceRegenerateTest() { String name = "pdfA1b_ButtonAppearanceRegenerateTest"; String outPath = destinationFolder + name + ".pdf"; String cmpPath = cmpFolder + "cmp_" + name + ".pdf"; String diff = "diff_" + name + "_"; PdfWriter writer = new PdfWriter(outPath); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); doc.SetTagged(); doc.GetCatalog().SetLang(new PdfString("en-US")); doc.AddNewPage(); PdfAcroForm form = PdfAcroForm.GetAcroForm(doc, true); Rectangle rect = new Rectangle(36, 626, 100, 40); PdfFont font = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", "WinAnsi", true); PdfFormField button = PdfFormField.CreatePushButton(doc, rect, "push button", "push", font, 12, PdfAConformanceLevel .PDF_A_1B); button.RegenerateField(); form.AddField(button); doc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPath, cmpPath, destinationFolder, diff )); }
public virtual void DashedBorderWithBackgroundTest() { String outPdf = destinationFolder + "dashedBorderWithBackground.pdf"; String cmpPdf = sourceFolder + "cmp_dashedBorderWithBackground.pdf"; using (PdfDocument doc = new PdfDocument(new PdfWriter(outPdf))) { PdfAcroForm form = PdfAcroForm.GetAcroForm(doc, true); PdfFormField formField = PdfTextFormField.CreateText(doc, new Rectangle(100, 600, 200, 100), "formField"); formField.GetWidgets()[0].SetBorderStyle(PdfName.D); formField.SetBorderWidth(3f).SetBorderColor(DeviceRgb.RED).SetBackgroundColor(DeviceRgb.GREEN); formField.RegenerateField(); form.AddField(formField); } NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder)); }
public virtual void FormFieldBordersTest() { String outPdf = destinationFolder + "formFieldBorders.pdf"; String cmpPdf = sourceFolder + "cmp_formFieldBorders.pdf"; using (PdfDocument doc = new PdfDocument(new PdfWriter(outPdf))) { PdfAcroForm form = PdfAcroForm.GetAcroForm(doc, true); PdfFormField simpleField = PdfTextFormField.CreateText(doc, new Rectangle(300, 300, 200, 100), "simpleField" ); simpleField.RegenerateField(); PdfFormField insetField = PdfTextFormField.CreateText(doc, new Rectangle(50, 600, 200, 100), "insetField"); insetField.GetWidgets()[0].SetBorderStyle(PdfName.I); insetField.SetBorderWidth(3f).SetBorderColor(DeviceRgb.RED).RegenerateField(); PdfFormField underlineField = PdfTextFormField.CreateText(doc, new Rectangle(300, 600, 200, 100), "underlineField" ); underlineField.GetWidgets()[0].SetBorderStyle(PdfName.U); underlineField.SetBorderWidth(3f).SetBorderColor(DeviceRgb.RED).RegenerateField(); PdfFormField solidField = PdfTextFormField.CreateText(doc, new Rectangle(50, 450, 200, 100), "solidField"); solidField.GetWidgets()[0].SetBorderStyle(PdfName.S); solidField.SetBorderWidth(3f).SetBorderColor(DeviceRgb.RED).RegenerateField(); PdfFormField dashField = PdfTextFormField.CreateText(doc, new Rectangle(300, 450, 200, 100), "dashField"); dashField.GetWidgets()[0].SetBorderStyle(PdfName.D); dashField.SetBorderWidth(3f).SetBorderColor(DeviceRgb.RED).RegenerateField(); PdfFormField beveledField = PdfTextFormField.CreateText(doc, new Rectangle(50, 300, 200, 100), "beveledField" ); beveledField.GetWidgets()[0].SetBorderStyle(PdfName.B); beveledField.SetBorderWidth(3f).SetBorderColor(DeviceRgb.RED).RegenerateField(); form.AddField(simpleField); form.AddField(insetField); form.AddField(underlineField); form.AddField(solidField); form.AddField(dashField); form.AddField(beveledField); } NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder)); }