When the Font`s Widths array contains entries defined as Indirect references an exception is thrown: System.ArgumentException: 'The IndirectReference type cannot be converted to a real numeric value.'
According to the Pdf Specification: The glyph widths are measured in units in which 1000 units corresponds to 1 unit in text space.
When importing a document containing text fragment with a wrong Type3 font set the glyph cannot be obtained from the font and an exception is thrown: System.InvalidOperationException: 'Cannot create glyph with charcode: <<>>'
URI Action with invalid mailto URL scheme - mailto:***@***.**(E-mail) can be imported but trying to merge or clone the document throws UriFormatException: 'Invalid URI: The hostname could not be parsed.'
Workaround: Remove the annotations that contain invalid Uri:
PdfFormatProvider provider = new PdfFormatProvider();
this.pdfDocument = provider.Import(memory);
foreach (var page in this.pdfDocument.Pages.ToList())
{
List<Link> links = page.Annotations.Where(a => a.Type == AnnotationType.Link).Select(a => a as Link).ToList();
foreach (var link in links)
{
Uri uri;
UriAction uriAction = link.Action as UriAction;
try
{
uri = uriAction.Uri;
}
catch (UriFormatException)
{
page.Annotations.Remove(link);
}
}
}
When a document containing a SignatureField is exported with the IsEncrypted property set to true, a not set UserPassword is required to open it, which makes it impossible to be opened.
Workaround: Exporting with AES256 encryption does not have this problem:
provider.ExportSettings = new PdfExportSettings
{
IsEncrypted = true,
EncryptionType = EncryptionType.AES256
};
PdfFormatProvider: When Arial Narrow Bold fond is set in the document the font-weight is lost when converting to PDF.
Workaround:
var fontData = File.ReadAllBytes(@"C:\Downloads\arial-narrow\arialnb.ttf");
FontsRepository.RegisterFont(new System.Windows.Media.FontFamily("Arial Narrow"), FontStyles.Normal, FontWeights.Bold, fontData);
.../AP<</N<</Off null/Yes 439 0 R>>...
When a Table consisting of one TableRow that contains a TableCell with a Rowspan > 1 set, additional lines are added to the table.
Table table = new Table();
TableRow row = table.Rows.AddTableRow();
row.Cells.AddTableCell();
TableCell secondCell = row.Cells.AddTableCell();
secondCell.RowSpan = 2;
table.Measure();
table.Rows.AddTableRow();
When a row has two cells and the content of the first one is large, the width of the second cell results in too small value while measuring and its content remains invisible.
Workaround: Set PreferredWidth to the second cell.
Splitting a row leads to copying all rows below it. During that operation, the information for the row height is lost, when the previous row has a cell spanning on the split one, leading to a missing row in the exported document.
The issue is a regression introduced in R1 2021.
With the current implementation when exporting a Stitching function all the containing functions are exported as Sampled functions even if they originally have been imported as Exponential interpolation functions, which leads to an increase in the size of the document.
More information can be found in the PDF Specification.
Images could have orientation set in their metadata:
Workaround: Rotate the image before inserting it into the RadFixedPage (check the attached project).