Completed
Last Updated: 31 Mar 2023 06:49 by ADMIN
Release R2 2023
When the image within a document is compressed with FlateDecode and there is no specific ImageFilterTypes set the image data is exported with FlateDecode compression but a wrong DCTDecode filter name is set which leads to a broken PDF file.

Workaround: Set explicitly the the ImageCompression filter:
PdfFormatProvider provider = new PdfFormatProvider();
provider.ExportSettings.ImageCompression = new ImageFilterTypes[] { ImageFilterTypes.FlateDecode };
Unplanned
Last Updated: 19 Apr 2023 11:04 by Martin
With the current implementation, the documents containing Standard Fonts are not PDF/A compliant (check How to Comply with PDF/A Standard).
Unplanned
Last Updated: 16 Aug 2023 08:17 by Nitya
Created by: Nitya
Comments: 0
Category: PdfProcessing
Type: Feature Request
2
When importing and merging documents the fonts are extracted directly from the files and can duplicate if the files contain the same fonts.
Completed
Last Updated: 27 Sep 2023 08:28 by ADMIN
Release R3 2023

InvalidCastException caused by colorspace defined as nested indirect objects.

Unable to cast object of type 'Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Types.IndirectReference' to type 'Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Types.PdfName'.

Unplanned
Last Updated: 08 Apr 2024 12:03 by ADMIN

NumberedHierarchical list type has inconsistent indentation after bullets.

Completed
Last Updated: 13 Nov 2024 08:50 by ADMIN
Release 2024.4.1106 (Q4 2024)
Export to image is blocked when Export method is used instead of ExportAsync.
In Development
Last Updated: 29 Mar 2024 10:37 by ADMIN
SearchResult's GetWordBoundingRect returns the Rect of only the first word of the whole match.
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 });
        }

Completed
Last Updated: 02 Aug 2024 11:09 by ADMIN
Release 2024.3.802 (2024 Q3)
Add support for Dotted, Dashed, and DashSmallGap borders.
Unplanned
Last Updated: 25 Mar 2025 19:16 by Heiko
In version 1 there are three profiles that have different levels of detail in their structure: Basic (B), Comfort (C) and Extended (X): https://mind-forms.de/e-rechnung/welches-zugferd-profil-kann-ich-verwenden/ 
Completed
Last Updated: 13 Nov 2024 08:50 by ADMIN
Release 2024.4.1106 (Q4 2024)
Completed
Last Updated: 13 Nov 2024 08:50 by ADMIN
Release 2024.4.1106 (Q4 2024)

SkiaImageFormatProvider: Add support for Text, TextMarkup, Line, and Stamp annotations.

Currently, these annotations are omitted on image export.

Completed
Last Updated: 12 Feb 2025 15:20 by ADMIN
Release 2025.1.205 (2025 Q1)
When cloning or merging a document containing a Link with Actions collection an exception is thrown: NullReferenceException: 'Object reference not set to an instance of an object.'
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: 12 Feb 2025 15:21 by ADMIN
Release 2025.1.205 (2025 Q1)
Created by: Rob
Comments: 2
Category: PdfProcessing
Type: Feature Request
2
Add support for Named Actions.
Completed
Last Updated: 14 Aug 2017 10:53 by ADMIN
When trying to create documents simultaneously from different threads (in concurrent scenario), different exceptions are thrown: 

- NullReferenceException in Telerik.Windows.Documents.Core.Fonts.OpenType.OpenTypeFontSource.ReadTableData[T](UInt32 tag, ReadTableFormatDelegate`1 readTableDelegate) method, 

- OverflowException in Telerik.Windows.Documents.Core.Fonts.OpenType.Tables.CMapFormat4Table.Read(OpenTypeFontReader reader) method.


Available in LIB version: 2017.2.814
Declined
Last Updated: 07 Nov 2017 11:50 by ADMIN
This would allow to disallow some rows from splitting.
Completed
Last Updated: 11 May 2018 13:35 by ADMIN
ADMIN
Created by: Deyan
Comments: 8
Category: PdfProcessing
Type: Feature Request
1
 This is content stream operator used for setting color in Device, CIE-based or Indexed color space.

Available in R2 2018 Official Release version.
Unplanned
Last Updated: 13 Jan 2017 14:43 by ADMIN
Currently every text fragment is exported by specifying all its properties. When there are many fragments one after another we may skip specifying the properties for every single fragment. This will improve both memory and time consumption performance.
Unplanned
Last Updated: 13 Jan 2017 14:44 by ADMIN
ADMIN
Created by: Deyan
Comments: 0
Category: PdfProcessing
Type: Bug Report
1
Measuring big paragraphs is time consuming and may be optimized.