SetFieldFormat.cs
 // // This code is part of Document Solutions for PDF demos. // Copyright (c) MESCIUS inc. All rights reserved. // using System; using System.IO; using System.Drawing; using GrapeCity.Documents.Pdf; using GrapeCity.Documents.Text; using GrapeCity.Documents.Pdf.AcroForms; using GrapeCity.Documents.Pdf.Annotations; using GrapeCity.Documents.Pdf.Actions; namespace DsPdfWeb.Demos { // This example shows how to use the helper methods SetPercentValue, SetNumberValue, // SetDateValue, SetTimeValue, SetSpecialFormatValue on TextField, CombTextField and ComboBoxField // to set the fields' format/formatted values. // Note that setting any property affecting the appearance of a field causes any formatting // set using these methods to be lost, so these methods should be called after any adjustments // to the field's appearance are done. public class SetFieldFormat { public int CreatePDF(Stream stream) { var doc = new GcPdfDocument(); var p = doc.NewPage(); var 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), 2f, 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, null, 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, "\u20ac", 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 | 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), Common.Util.TimeNow(), "dd-mm-yyyy"); AddDateFormat(p, new RectangleF(80, 160, 60, 20), Common.Util.TimeNow(), "d-m-yy"); AddDateFormat(p, new RectangleF(150, 160, 60, 20), Common.Util.TimeNow(), "yyyy/mmmm/dd"); g.DrawString("SetTimeFormat", StandardFonts.Helvetica, 14, Color.Black, new PointF(10, 200)); var 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; } private static TextField AddPercentFormat(Page p, RectangleF rect, float v, int decimalPlaces, TextField.NumberSeparatorStyle separatorStyle) { var 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; } private static TextField AddNumberFormat(Page p, RectangleF rect, float v, int decimalPlaces, TextField.NumberSeparatorStyle separatorStyle, TextField.NumberNegativeStyle negativeStyle, string currencySymbol, TextField.CurrencySymbolStyle currencySymbolStyle) { var 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; } private static TextField AddDateFormat(Page p, RectangleF rect, DateTime v, string format) { var 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; } private static TextField AddTimeFormat(Page p, RectangleF rect, DateTime v, string format) { var 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; } private static TextField AddSpecialFormat(Page p, RectangleF rect, string v, TextField.SpecialFormat format) { var 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; } } }