Completed
Last Updated: 12 Feb 2025 15:19 by ADMIN
Release 2025.1.205 (2025 Q1)

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.

Completed
Last Updated: 12 Feb 2025 15:19 by ADMIN
Release 2025.1.205 (2025 Q1)
OverflowException (Arithmetic operation resulted in an overflow.) when converting a document to an image. 
Completed
Last Updated: 12 Feb 2025 15:19 by ADMIN
Release 2025.1.205 (2025 Q1)
Signature omitted after exporting PDF to an image.   
In Development
Last Updated: 12 Feb 2025 15:18 by ADMIN
Scheduled for 2025.1.205 (2025 Q1)

This is the code snippet for reproducing the error message: 

        static void Main(string[] args)
        {
            string filePath = "Lorem ipsum dolor sit amet.pdf";
            //load a random document
            PdfFormatProvider provider = new PdfFormatProvider();
            RadFixedDocument originalDocument;
            using (Stream stream = File.OpenRead(filePath))
            {
                originalDocument = provider.Import(stream);
            }
            //draw something on the first page
            FixedContentEditor editor = new FixedContentEditor(originalDocument.Pages[0]);
            editor.GraphicProperties.IsFilled = true;
            editor.GraphicProperties.FillColor = RgbColors.Black;
            Telerik.Documents.Primitives.Rect Rect = new Telerik.Documents.Primitives.Rect(10, 10, 200, 100);
            editor.DrawRectangle(Rect);

            //export the pages as images and build a brand new document from the images
            SkiaImageFormatProvider imageProvider = new SkiaImageFormatProvider();
            imageProvider.ExportSettings.ImageFormat = SkiaImageFormat.Jpeg;
            imageProvider.ExportSettings.ScaleFactor = 0.8;
            imageProvider.ExportSettings.Quality = 80;


            RadFixedDocument doc = new RadFixedDocument();
            foreach (RadFixedPage page in originalDocument.Pages)
            {
                byte[] resultImage = imageProvider.Export(page);
                RadFixedPage pdfpage = doc.Pages.AddPage();
                editor = new FixedContentEditor(pdfpage);
                Stream imageStream = new MemoryStream(resultImage);
                editor.DrawImage(imageStream);
            }

            //export the pdf built from the images
            PdfFormatProvider pdfFormatProvider = new PdfFormatProvider();
            string outputPdf = @"output.pdf";
            File.Delete(outputPdf);
            using (Stream output = File.OpenWrite(outputPdf))
            {
                pdfFormatProvider.Export(doc, output);
            }
            Process.Start(new ProcessStartInfo() { FileName = outputPdf, UseShellExecute = true });
        }

Workaround:

        static void Main(string[] args)
        {
            string filePath = "Lorem ipsum dolor sit amet.pdf";
            //load a random document
            PdfFormatProvider provider = new PdfFormatProvider();
            RadFixedDocument originalDocument;
            using (Stream stream = File.OpenRead(filePath))
            {
                originalDocument = provider.Import(stream);
            }
            //draw something on the first page
            FixedContentEditor editor = new FixedContentEditor(originalDocument.Pages[0]);
            editor.GraphicProperties.IsFilled = true;
            editor.GraphicProperties.FillColor = RgbColors.Black;
            Telerik.Documents.Primitives.Rect Rect = new Telerik.Documents.Primitives.Rect(10, 10, 200, 100);
            editor.DrawRectangle(Rect);

            using (Stream output = File.OpenWrite(filePath))
            {
                provider.Export(originalDocument, output);
            }

            using (Stream stream = File.OpenRead(filePath))
            {
                originalDocument = provider.Import(stream);
            }
            //export the pages as images and build a brand new document from the images
            SkiaImageFormatProvider imageProvider = new SkiaImageFormatProvider();
            imageProvider.ExportSettings.ImageFormat = SkiaImageFormat.Jpeg;
            imageProvider.ExportSettings.ScaleFactor = 0.8;
            imageProvider.ExportSettings.Quality = 80;


            RadFixedDocument doc = new RadFixedDocument();
            foreach (RadFixedPage page in originalDocument.Pages)
            {
                byte[] resultImage = imageProvider.Export(page);
                RadFixedPage pdfpage = doc.Pages.AddPage();
                editor = new FixedContentEditor(pdfpage);
                Stream imageStream = new MemoryStream(resultImage);
                editor.DrawImage(imageStream);
            }

            //export the pdf built from the images
            PdfFormatProvider pdfFormatProvider = new PdfFormatProvider();
            string outputPdf = @"output.pdf";
            File.Delete(outputPdf);
            using (Stream output = File.OpenWrite(outputPdf))
            {
                pdfFormatProvider.Export(doc, output);
            }
            Process.Start(new ProcessStartInfo() { FileName = outputPdf, UseShellExecute = true });
        }

Under Review
Last Updated: 10 Feb 2025 14:43 by ADMIN

As Ghiath reported in the forum thread, I am seeing this same error.

I am using RadFixedDocument and am generating a PdfFormatProvider. As Ghiath mentioned it will work fine (weeks, months) and then it seems the the font file is locked and it cannot export.

System.IO.IOException: I/O error when opening file 'C:\WINDOWS\FONTS\MSYH.TTC'.

System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.IO.IOException: I/O error when opening file 'C:\WINDOWS\FONTS\MSYH.TTC'.
   at MS.Internal.FontCache.FileMapping.OpenFile(String fileName)
   at MS.Internal.FontCache.FontSource.GetUnmanagedStream()
   at System.Windows.Media.GlyphTypeface.ComputeSubset(ICollection`1 glyphs)
   at Telerik.Windows.Documents.Fixed.Model.Fonts.CidType2Font.ComputeSubset(IEnumerable`1 usedCharacters)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.FontStream.CopyPropertiesFromOverride(IPdfExportContext context, FontBase font)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.FontStream.CopyPropertiesFrom(IPdfExportContext context, FontBase font)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.FontDescriptor.CreateFontFile(IPdfExportContext context, FontBase font)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.FontDescriptor.ExportFontFile(IPdfExportContext context, FontBase font)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.FontDescriptor.CopyPropertiesFrom(IPdfExportContext context, FontBase font)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.CidFontObject.CopyPropertiesFromOverride(IPdfExportContext context, FontBase font)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.CidFontObject.CopyPropertiesFrom(IPdfExportContext context, FontBase font)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.Type0FontObject.CopyPropertiesFromOverride(IPdfExportContext context, FontBase font)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Export.PdfExporter.WriteFontsFromContext(PdfWriter writer, IPdfExportContext context)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Export.PdfExporter.Export(IRadFixedDocumentExportContext context, Stream output)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.ExportOverride(RadFixedDocument document, Stream output)
   at Telerik.Windows.Documents.Common.FormatProviders.FormatProviderBase`1.Export(T document, Stream output)
 

It will throw the exception on the line where it is doing the export. The document is typically a multi-page document with images, etc. As I mentioned it might work fine for weeks and then once it fails the only solution is to recycle the web service.

Unplanned
Last Updated: 14 Jan 2025 13:52 by ADMIN
It seems the font that is rendered in Adobe is not the same. The document does not contain the font and Adobe and PdfViewer are fallbacking to different fonts.
Unplanned
Last Updated: 14 Jan 2025 13:48 by ADMIN
Created by: Desislava
Comments: 0
Category: PdfProcessing
Type: Bug Report
0
It seems there is an issue when transforming the position of the original glyph data
Declined
Last Updated: 09 Jan 2025 12:30 by ADMIN
ADMIN
Created by: Tanya
Comments: 6
Category: PdfProcessing
Type: Feature Request
15

RadPdfProcessing currently supports interactive forms whose data is defined directly in the document. Add support for interactive forms based on the Adobe XML Forms Architecture (XFA). The entry is defined inside the interactive forms dictionary and refers to an XML stream containing the information of the form. More information is available on page 722 from Pdf Reference, version 1.7.

Updates:

Unplanned
Last Updated: 08 Jan 2025 11:40 by Ken

Add support for actions with invalid Subtype casing.

Example: The action Subtype being "Javascript" instead of the expected "JavaScript".

Unplanned
Last Updated: 20 Dec 2024 11:06 by ADMIN
Currently, RadFixedDocumentInfo is used only for the export of Author, Title, and Description document metadata properties.
Unplanned
Last Updated: 20 Dec 2024 09:28 by Robot B9
Created by: Robot B9
Comments: 0
Category: PdfProcessing
Type: Feature Request
1

Add support for Arrange Options (level placement):

  • Bring to Front
  • Send to Back
  • Bring Forward
  • Send Backward
In Development
Last Updated: 16 Dec 2024 12:53 by ADMIN
StackOverflowException is thrown when applying filter for SVG.
In Development
Last Updated: 13 Dec 2024 14:33 by ADMIN
When a Form with AlphaConstant and/or StrokeConstant contains a Path, alpha is applied to Form and Path, leading to a wrong transparency.
Duplicated
Last Updated: 06 Dec 2024 16:43 by ADMIN
InvalidCastException: 'Unable to cast object of type 'Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Types.PdfArray' to type 'Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Types.PdfName'.'
when parsing a specific document.
Unplanned
Last Updated: 20 Nov 2024 14:39 by Aleksandr
Allow customers to encrypt their documents using certificates.
Unplanned
Last Updated: 18 Nov 2024 14:40 by Andrew
Created by: Andrew
Comments: 1
Category: PdfProcessing
Type: Feature Request
2

When importing a document with button field with missing type, an error occurs.

51 0 obj
<< /Kids [ 70 0 R 71 0 R 72 0 R 73 0 R 74 0 R 75 0 R 76 0 R 77 0 R 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R 88 0 R 89 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R 95 0 R 96 0 R 97 0 R 98 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 14 0 R ] /T (Button 70) >>
endobj

Workaround: Handle the exception: https://docs.telerik.com/devtools/document-processing/libraries/radpdfprocessing/features/handling-document-exceptions 

Completed
Last Updated: 13 Nov 2024 09:20 by ADMIN
Release 2024.4.1106 (Q4 2024)
Expose a DocumentUnhandledException PdfExportSetting when converting a RadFlowFlow to a RadFixedDocument document.
Completed
Last Updated: 13 Nov 2024 09:19 by ADMIN
Release 2024.4.1106 (Q4 2024)
When writing a RadFixedPage with image content using the PdfPageStreamWriter`s WriteContent method an exception is thrown: NullReferenceException: 'Object reference not set to an instance of an object.'
Completed
Last Updated: 13 Nov 2024 09:15 by ADMIN
Release 2024.4.1106 (Q4 2024)
Usually, the object references are expected to be stored in the following format: "5 0 obj". However, if the format is "0000005 0 obj", the document can't be parsed successfully. As a result the document is not displayed in RadPdfViewer.
Completed
Last Updated: 13 Nov 2024 08:51 by ADMIN
Release 2024.4.1106 (Q4 2024)
Matte color is used for preblending images with some background color, using the SMask. Matte color is specified using the optional 'Matte' entry for the SMask object.

See PDF 1.7 specification, page 554-555:

Matte
array
(Optional; PDF 1.4) An array of component values specifying the matte color with which the image data in the parent image has been preblended. The array consists of nnumbers, where n is the number of components in the color space specified by the ColorSpace entry in the parent image’s image dictionary; the numbers must be valid color components in that color space. If this entry is absent, the image data is not preblended.