Trying to clone the Signature of a SignatureField leads to InvalidOperationException as the FieldName of the cloned signature is already set.
When a TrueType font is defined, the mapping of character codes to glyph indices depends on the built-in cmap table mappings defined in the font and the Encoding property defined in the PDF dictionary.
However, the current implementation maps all characters with cmap tables for Microsoft Symbolic and Macintosh Roman, which causes incorrect mapping results, e.g. space characters are mapped to an Ê glyph.
The issue is also described in the following public item: TryGetCharCode for OpenTypeFont uses wrong cmap and returns wrong charcode.
Workaround: Change the font of the TextBoxField's widget appearance:
foreach (var widget in field.Widgets)
widget.TextProperties.Font = FontsRepository.Helvetica;
Provide a way to change the Name of a FormField from the RadDocument.AcroForm.FormFields collection. As a workaround, you could create a new instance of a FormField with the desired name, add the new field in the document and remove the old one. You can use the following approach: 1) Create a new instance of FormField (with the desired name, passed in the constructor), which will play the role of a copy of a specific FormField 2) Copy all properties from the original field (they all vary, depending on the concrete type of the FormField, for example CheckBoxField, etc.) 3) Create a new widget for the new field, and copy all properties from the original field's widget into the new one. 4) Remove the original field from the RadDocument.AcroForm.FormFields collection and add the new field. 5) Remove the original widget from the corresponding page's annotation and add the new one. Attached is a project demonstrating this approach for a CheckBoxField.
This API should provide a method for removing all fields and widgets in the document and draw the default widget appearance in place of the removed widgets. WORKAROUND: Sample implementation for flattening form fields may be seen in the FlattenFormFields method from the attached demo project.