FormFields.vb
 '' '' This code is part of Document Solutions for PDF demos. '' Copyright (c) MESCIUS inc. All rights reserved. '' Imports System.IO Imports System.Drawing Imports GrapeCity.Documents.Text Imports GrapeCity.Documents.Pdf Imports GrapeCity.Documents.Pdf.AcroForms Imports GrapeCity.Documents.Pdf.Annotations Imports GrapeCity.Documents.Pdf.Actions '' This sample demonstrates how to create the various AcroForm fields '' such as textbox, checkbox, push buttons and so on. Public Class FormFields Function CreatePDF(ByVal stream As Stream) As Integer Dim doc = New GcPdfDocument() Dim page = doc.NewPage() Dim g = page.Graphics Dim tf = New TextFormat() tf.Font = StandardFonts.Times tf.FontSize = 14 Dim ip = New PointF(72, 72) Dim fldOffset = 72.0F * 2 Dim fldHeight = tf.FontSize * 1.2F Dim dY = 32.0F '' Text field: g.DrawString("Text field:", tf, ip) Dim fldText = New TextField() fldText.Value = "Initial TextField value" fldText.Widget.Page = page fldText.Widget.Rect = New RectangleF(ip.X + fldOffset, ip.Y, 72 * 3, fldHeight) fldText.Widget.DefaultAppearance.Font = tf.Font fldText.Widget.DefaultAppearance.FontSize = tf.FontSize doc.AcroForm.Fields.Add(fldText) ip.Y += dY '' Checkbox: g.DrawString("Checkbox:", tf, ip) Dim fldCheckbox = New CheckBoxField() fldCheckbox.Checked = True fldCheckbox.Widget.Page = page fldCheckbox.Widget.Rect = New RectangleF(ip.X + fldOffset, ip.Y, fldHeight, fldHeight) doc.AcroForm.Fields.Add(fldCheckbox) ip.Y += dY '' Radio button: g.DrawString("Radio button:", tf, ip) Dim fldRadio = New RadioButtonField() fldRadio.Value = 1 fldRadio.Widgets.Add(New WidgetAnnotation(page, New RectangleF(ip.X + fldOffset, ip.Y, fldHeight, fldHeight))) fldRadio.Widgets.Add(New WidgetAnnotation(page, New RectangleF(ip.X + fldOffset, ip.Y + fldHeight * 1.2F, fldHeight, fldHeight))) fldRadio.Widgets.Add(New WidgetAnnotation(page, New RectangleF(ip.X + fldOffset, ip.Y + (fldHeight * 1.2F) * 2, fldHeight, fldHeight))) doc.AcroForm.Fields.Add(fldRadio) ip.Y = fldRadio.Widgets(fldRadio.Widgets.Count - 1).Rect.Y + dY '' CombTextField g.DrawString("CombText field:", tf, ip) Dim fldCombText = New CombTextField() fldCombText.Value = "123" fldCombText.Widget.DefaultAppearance.FontSize = 12 fldCombText.Widget.Rect = New RectangleF(ip.X + fldOffset, ip.Y, 72 * 3, fldHeight) fldCombText.Widget.Page = page doc.AcroForm.Fields.Add(fldCombText) ip.Y += dY '' Combo-box: g.DrawString("Combo box:", tf, ip) Dim fldComboBox = New ComboBoxField() fldComboBox.Items.Add(New ChoiceFieldItem("ComboBox Choice 1")) fldComboBox.Items.Add(New ChoiceFieldItem("ComboBox Choice 2")) fldComboBox.Items.Add(New ChoiceFieldItem("ComboBox Choice 3")) fldComboBox.SelectedIndex = 1 fldComboBox.Widget.Rect = New RectangleF(ip.X + fldOffset, ip.Y, 72 * 3, fldHeight) fldComboBox.Widget.Page = page doc.AcroForm.Fields.Add(fldComboBox) ip.Y += dY '' List box: g.DrawString("List box:", tf, ip) Dim fldListBox = New ListBoxField() fldListBox.Items.Add(New ChoiceFieldItem("ListBox Choice 1")) fldListBox.Items.Add(New ChoiceFieldItem("ListBox Choice 2")) fldListBox.Items.Add(New ChoiceFieldItem("ListBox Choice 3")) fldListBox.SelectedIndexes = New Integer() {0, 2} fldListBox.MultiSelect = True fldListBox.CommitOnSelChange = True fldListBox.Widget.Rect = New RectangleF(ip.X + fldOffset, ip.Y, 100, 50) fldListBox.Widget.Page = page doc.AcroForm.Fields.Add(fldListBox) ip.Y = fldListBox.Widget.Rect.Bottom - fldHeight + dY '' Signature field: g.DrawString("Signature field:", tf, ip) Dim fldSignature = New SignatureField() fldSignature.AlternateName = "All fields locked when the document is signed" fldSignature.LockedFields = New SignatureLockedFields() fldSignature.Widget.Rect = New RectangleF(ip.X + fldOffset, ip.Y, 72 * 2, 72 - dY) fldSignature.Widget.DefaultAppearance.FontSize = 8 fldSignature.Widget.ButtonAppearance.Caption = "Click to sign" fldSignature.Widget.Border = New Border() With {.Width = 0.5F, .Color = Color.DarkSeaGreen} fldSignature.Widget.Page = page doc.AcroForm.Fields.Add(fldSignature) ip.Y += 72 - fldHeight '' Buttons: g.DrawString("Push buttons:", tf, ip) '' Submit form button: Dim btnSubmit = New PushButtonField() btnSubmit.Widget.Rect = New RectangleF(ip.X + fldOffset, ip.Y, 72, fldHeight) btnSubmit.Widget.ButtonAppearance.Caption = "Submit" btnSubmit.Widget.Highlighting = HighlightingMode.Invert btnSubmit.Widget.Activate = New ActionSubmitForm("Sample Form Submit URI") btnSubmit.Widget.Page = page doc.AcroForm.Fields.Add(btnSubmit) '' ip.Y += dY '' Reset form button: Dim btnReset = New PushButtonField() btnReset.Widget.Rect = New RectangleF(ip.X + fldOffset + 72 * 1.5F, ip.Y, 72, fldHeight) btnReset.Widget.ButtonAppearance.Caption = "Reset" btnReset.Widget.Highlighting = HighlightingMode.Invert btnReset.Widget.Activate = New ActionResetForm() btnReset.Widget.Page = page doc.AcroForm.Fields.Add(btnReset) ip.Y += dY '' '' Done: doc.Save(stream) Return doc.Pages.Count End Function End Class