Adding a table with the same code leads to different results
When adding 10 identical tables onе or more have missing rows at the bottom. The seems to be caused by the text measurement.
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;
}
Currently, this missing functionality may be workaround by either drawing the headers and footers with FixedContentEditor or by using RadWordsProcessing PDF export.
When exporting a document referencing PdfProcessing`s .NET Standard assemblies with PdfComplianceLevel set an exception is thrown.
The common annotation properties are described in table "Entries common to all annotation dictionaries" of the Pdf specification.
Declined: Handling a partial annotation import-export could lead to exporting invalid PDF documents.
When merging or splitting files that contain the "159 '\u009f'" char, ArgumentException("The encoding is not supported.") is thrown.
This issue can also result in ArgumentException in client applications with the message: currentIndirectObject should be null.
Workaround:
Use PdfFormatProvider or reflection to register the char (check the comments).
A Link annotation must have an associated action, destination, or named destination specifying what should happen when the annotation is activated. When merging documents with invalid Link annotations, an ArgumentException is thrown with the message 'Value cannot be null. Parameter name: namedDestination'
Workaround: Remove the invalid annotations:
foreach (var annotation in document.Annotations.ToList())
{
var link = annotation as Link;
if (link != null && link.Action == null && link.Destination == null && link.NamedDestination == null)
{
(annotation.Parent as RadFixedPage).Annotations.Remove(annotation);
}
}