FormSubmitSound.vb
'''' This code is part of Document Solutions for PDF .NET demos.'' Copyright (c) MESCIUS inc. All rights reserved.''Imports GrapeCity.Documents.PdfImports GrapeCity.Documents.Pdf.AcroFormsImports GrapeCity.Documents.Pdf.ActionsImports GrapeCity.Documents.Pdf.AnnotationsImports GrapeCity.Documents.TextImports System.DrawingImports System.IO
Public Class FormSubmitSound Public Function CreatePDF(ByVal stream As Stream) As Integer Dim doc = New GcPdfDocument() Dim page = doc.NewPage()
Dim rc = Util.AddNote( "As in the 'Submit Form' sample, the Submit button's Activate is associated with ActionSubmitForm, " & "and the Reset button's Activate is associated with ActionResetForm. " & vbLf & "In addition to these handlers, in this sample the buttons' MouseDown events are associated with ActionSound, " & "so that the user gets appropriate audible feedback when clicking the button.", page)
Dim g = page.Graphics Dim tf = New TextFormat() With {.Font = StandardFonts.Times, .FontSize = 14} Dim ip = New PointF(72, rc.Bottom + 36) Dim fldOffset As Single = 72 * 2 + 46 Dim fldHeight As Single = tf.FontSize * 1.2F Dim dY As Single = 32
'' Text field: g.DrawString("First name:", tf, ip) Dim fldFirstName = New TextField() With {.Name = "FirstName", .Value = "John"} fldFirstName.Widget.Page = page fldFirstName.Widget.Rect = New RectangleF(ip.X + fldOffset, ip.Y, 72 * 3, fldHeight) fldFirstName.Widget.DefaultAppearance.Font = tf.Font fldFirstName.Widget.DefaultAppearance.FontSize = tf.FontSize doc.AcroForm.Fields.Add(fldFirstName) ip.Y += dY
'' Text field: g.DrawString("Last name:", tf, ip) Dim fldLastName = New TextField() With {.Name = "LastName", .Value = "Smith"} fldLastName.Widget.Page = page fldLastName.Widget.Rect = New RectangleF(ip.X + fldOffset, ip.Y, 72 * 3, fldHeight) fldLastName.Widget.DefaultAppearance.Font = tf.Font fldLastName.Widget.DefaultAppearance.FontSize = tf.FontSize doc.AcroForm.Fields.Add(fldLastName) ip.Y += dY
'' Checkbox: g.DrawString("Subscribe to Mailing List:", tf, ip) Dim fldCheckbox = New CheckBoxField() With {.Name = "Subscribe", .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
'' Multiline TextBox: g.DrawString("Additional information:", tf, ip) Dim fldAdditionalInfo = New TextField() With {.Name = "AdditionalInfo", .Multiline = True} fldAdditionalInfo.Widget.Page = page fldAdditionalInfo.Widget.Rect = New RectangleF(ip.X + fldOffset, ip.Y, 72 * 3, fldHeight * 2) fldAdditionalInfo.Widget.DefaultAppearance.Font = tf.Font fldAdditionalInfo.Widget.DefaultAppearance.FontSize = tf.FontSize doc.AcroForm.Fields.Add(fldAdditionalInfo) ip.Y += dY * 2
'' 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.Page = page '' The URL for the submission: btnSubmit.Widget.Activate = New ActionSubmitForm("/Samples/HandleFormSubmitFields") ' Also, associated the MouseDown event with a confirmation sound: btnSubmit.Widget.Events.MouseDown = New ActionSound(SoundObject.FromFile(Path.Combine("Resources", "Sounds", "form-submitted.wav"))) doc.AcroForm.Fields.Add(btnSubmit)
'' 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.Page = page ' Reset the form on button activation: btnReset.Widget.Activate = New ActionResetForm() ' Also, associated the MouseDown event with a confirmation sound: btnReset.Widget.Events.MouseDown = New ActionSound(SoundObject.FromFile(Path.Combine("Resources", "Sounds", "form-reset.wav"))) doc.AcroForm.Fields.Add(btnReset) ip.Y += dY
'' Done: doc.Save(stream) Return doc.Pages.Count End FunctionEnd Class