Some documents loaded through WordsProcessing and then exported to a RadFixedDocument by utilizing the ExportToFixedDocument() method, fails on export through ImageFormatProvider with System.AggregateException.
As a workaround, you can export the RadFixedDocument to a PDF and then import it again before exporting it to an image.
var pdfFixedProvider = new Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider();
bytes = pdfFixedProvider.Export(fixedDocument);
fixedDocument = pdfFixedProvider.Import(bytes);
An ArgumentNullException is thrown when importing a document with a missing required MediaBox operator in the Page object ("ArgumentNullException: 'Value cannot be null.")
For example, when some PDF file has uncompressed contents we may import it and apply better compression to the stream objects. Ensure that all the content inside the document is compressed.
Currently, we have the following options for PDF export optimizations:
pdfFormatProvider.ExportSettings.ImageQuality = ImageQuality.Low;
pdfFormatProvider.ExportSettings.ImageCompression = new ImageFilterTypes[] { ImageFilterTypes.FlateDecode };pdfFormatProvider.ExportSettings.StreamCompression = new StreamFilterTypes[] { StreamFilterTypes.FlateDecode };pdfFormatProvider.ExportSettings.FontEmbeddingType = FontEmbeddingType.Subset;
When a PDF document is being imported, some of the characters may experience unexpected results while reading the font.
NOTE: the document is displayed in the MAUI/WPF/WinForms PdfViewer controls with missing parts of the text.
When loading some PDF documents with German culture, part of the text got missing.
Workaround: set English culture before loading the document
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
This exception was originally thrown at this call stack:
System.ThrowHelper.ThrowKeyNotFoundException()
System.Collections.Generic.Dictionary<TKey, TValue>.this[TKey].get(TKey)
Telerik.Windows.Documents.Core.PostScript.Data.PostScriptDictionary.GetElementAs<T>(string) in PostScriptDictionary.cs
Telerik.Windows.Documents.Core.Fonts.Type1.Type1Format.Dictionaries.Type1Font.ReadGlyphData(string) in Type1Font.cs
Telerik.Windows.Documents.Core.Fonts.Type1.Type1Format.Dictionaries.Type1Font.GetGlyphDataInternal(string) in Type1Font.csThis exception was originally thrown at this call stack:
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.PageTreeNode.EnumeratePages(Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.Parser.PostScriptReader, Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.IPdfImportContext) in PageTreeNode.cs
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.PageTreeNode.EnumeratePages(Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.Parser.PostScriptReader, Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.IPdfImportContext) in PageTreeNode.cs
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyPagePropertiesTo(Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.Parser.PostScriptReader, Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.IRadFixedDocumentImportContext) in DocumentCatalog.cs
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyPropertiesTo(Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.Parser.PostScriptReader, Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.IRadFixedDocumentImportContext) in DocumentCatalog.cs
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.RadFixedDocumentImportContext.BeginImportOverride() in RadFixedDocumentImportContext.cs
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.BaseImportContext.BeginImport(System.IO.Stream) in BaseImportContext.cs
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.PdfImporter.Import(System.IO.Stream, Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.IPdfImportContext) in PdfImporter.cs
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.ImportOverride.AnonymousMethod__0() in PdfFormatProvider.cs
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution<E>(System.Action) in ExecutionHandler.cs
When importing a document with a missing state separator (e.g. linefeed) in the object stream (ObjStm) an exception is thrown: System.InvalidCastException: 'Unable to cast object of type 'Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Types.PdfDictionary' to type 'Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Types.PdfInt'.'
А possible workaround could be handling the exceptions: Handling Exceptions.
When exporting the pdf pages as images with the Skia engine, some parts of the document got missing.
Note: In the previous Version 2024.3.806 these parts appeared.