SetFieldFormat.vb
C# VB
'''' This code is part of Document Solutions for PDF .NET demos.'' Copyright (c) MESCIUS inc. All rights reserved.''Imports SystemImports System.IOImports System.DrawingImports GrapeCity.Documents.PdfImports GrapeCity.Documents.Pdf.AcroForms
Public Class SetFieldFormat Public Function CreatePDF(ByVal stream As Stream) As Integer Dim doc = New GcPdfDocument() Dim p = doc.NewPage() Dim g = p.Graphics
g.DrawString("SetPercentFormat", StandardFonts.Helvetica, 14, Color.Black, New PointF(10, 10)) AddPercentFormat(p, New RectangleF(10, 40, 60, 20), 0.2F, 2, TextField.NumberSeparatorStyle.Comma) AddPercentFormat(p, New RectangleF(80, 40, 60, 20), 1, 0, TextField.NumberSeparatorStyle.CommaDot) AddPercentFormat(p, New RectangleF(150, 40, 60, 20), -0.1F, 3, TextField.NumberSeparatorStyle.DotComma) AddPercentFormat(p, New RectangleF(220, 40, 60, 20), 2.0F, 2, TextField.NumberSeparatorStyle.Dot) AddPercentFormat(p, New RectangleF(290, 40, 60, 20), 0.5F, 2, TextField.NumberSeparatorStyle.ApostropheDot)
g.DrawString("SetNumberFormat", StandardFonts.Helvetica, 14, Color.Black, New PointF(10, 70)) AddNumberFormat(p, New RectangleF(10, 100, 60, 20), 12345.67F, 2, TextField.NumberSeparatorStyle.Comma, TextField.NumberNegativeStyle.None, Nothing, TextField.CurrencySymbolStyle.BeforeWithSpace) AddNumberFormat(p, New RectangleF(80, 100, 60, 20), -12.7F, 0, TextField.NumberSeparatorStyle.CommaDot, TextField.NumberNegativeStyle.UseRedText, "R", TextField.CurrencySymbolStyle.BeforeWithSpace) AddNumberFormat(p, New RectangleF(150, 100, 60, 20), 0.123F, 3, TextField.NumberSeparatorStyle.DotComma, TextField.NumberNegativeStyle.ShowParentheses, ChrW(&H20AC), TextField.CurrencySymbolStyle.AfterWithSpace) AddNumberFormat(p, New RectangleF(220, 100, 60, 20), 12345, 2, TextField.NumberSeparatorStyle.Dot, TextField.NumberNegativeStyle.ShowParentheses, "TL", TextField.CurrencySymbolStyle.AfterNoSpace) AddNumberFormat(p, New RectangleF(290, 100, 60, 20), -5674.344F, 2, TextField.NumberSeparatorStyle.ApostropheDot, TextField.NumberNegativeStyle.ShowParentheses Or TextField.NumberNegativeStyle.UseRedText, "TL", TextField.CurrencySymbolStyle.AfterWithSpace)
g.DrawString("SetDateFormat", StandardFonts.Helvetica, 14, Color.Black, New PointF(10, 130)) AddDateFormat(p, New RectangleF(10, 160, 60, 20), Util.TimeNow(), "dd-mm-yyyy") AddDateFormat(p, New RectangleF(80, 160, 60, 20), Util.TimeNow(), "d-m-yy") AddDateFormat(p, New RectangleF(150, 160, 60, 20), Util.TimeNow(), "yyyy/mmmm/dd")
g.DrawString("SetTimeFormat", StandardFonts.Helvetica, 14, Color.Black, New PointF(10, 200)) Dim dt = New DateTime(2000, 1, 1, 1, 2, 3) AddTimeFormat(p, New RectangleF(10, 230, 60, 20), dt, "HH:MM") AddTimeFormat(p, New RectangleF(80, 230, 60, 20), dt, "h:MM tt") AddTimeFormat(p, New RectangleF(150, 230, 60, 20), dt, "HH:MM:ss")
g.DrawString("Special Format", StandardFonts.Helvetica, 14, Color.Black, New PointF(10, 270)) AddSpecialFormat(p, New RectangleF(10, 300, 60, 20), "35004", TextField.SpecialFormat.ZipCode) AddSpecialFormat(p, New RectangleF(80, 300, 60, 20), "84606-6580", TextField.SpecialFormat.ZipCode4) AddSpecialFormat(p, New RectangleF(150, 300, 60, 20), "(123) 456-7890", TextField.SpecialFormat.Phone) AddSpecialFormat(p, New RectangleF(220, 300, 60, 20), "123-45-6789", TextField.SpecialFormat.SSN)
'' Done: doc.Save(stream) Return doc.Pages.Count End Function
Private Shared Function AddPercentFormat(p As Page, rect As RectangleF, v As Single, decimalPlaces As Integer, separatorStyle As TextField.NumberSeparatorStyle) As TextField Dim result = New TextField() p.Doc.AcroForm.Fields.Add(result)
result.Widget.Page = p result.Widget.Rect = rect result.Widget.Border.Width = 1 result.SetPercentValue(v, decimalPlaces, separatorStyle) Return result End Function
Private Shared Function AddNumberFormat(p As Page, rect As RectangleF, v As Single, decimalPlaces As Integer, separatorStyle As TextField.NumberSeparatorStyle, negativeStyle As TextField.NumberNegativeStyle, currencySymbol As String, currencySymbolStyle As TextField.CurrencySymbolStyle) As TextField Dim result = New TextField() p.Doc.AcroForm.Fields.Add(result)
result.Widget.Page = p result.Widget.Rect = rect result.Widget.Border.Width = 1 result.Widget.Justification = VariableTextJustification.RightJustified result.SetNumberValue(v, decimalPlaces, separatorStyle, negativeStyle, currencySymbol, currencySymbolStyle) Return result End Function
Private Shared Function AddDateFormat(p As Page, rect As RectangleF, v As DateTime, format As String) As TextField Dim result = New TextField() p.Doc.AcroForm.Fields.Add(result)
result.Widget.Page = p result.Widget.Rect = rect result.Widget.Border.Width = 1 result.SetDateValue(v, format) Return result End Function
Private Shared Function AddTimeFormat(p As Page, rect As RectangleF, v As DateTime, format As String) As TextField Dim result = New TextField() p.Doc.AcroForm.Fields.Add(result)
result.Widget.Page = p result.Widget.Rect = rect result.Widget.Border.Width = 1 result.SetTimeValue(v, format) Return result End Function
Private Shared Function AddSpecialFormat(p As Page, rect As RectangleF, v As String, format As TextField.SpecialFormat) As TextField Dim result = New TextField() p.Doc.AcroForm.Fields.Add(result)
result.Widget.Page = p result.Widget.Rect = rect result.Widget.Border.Width = 1 result.SetSpecialFormatValue(v, format) Return result End FunctionEnd Class