Declined
Last Updated: 19 Jun 2024 07:57 by ADMIN
Created by: Arquimedes
Comments: 5
Category: PdfProcessing
Type: Bug Report
0

When an import of the attached PDF file is executed, the result is a file with vertically rotated images, as well as enlarged and distorted. This is part of the code executed in the final application. Do you have any idea why this is happening? Is there any suggested solution?

As a result of the imported file, other processes are executed, such as creating bookmarks and page numbering, but the result is incorrect when presenting the rotated images.

Please find attached a code snippet and the input and generated output file.

Thank you.

 

        private static void TestPDF()
        {
            RadFixedDocument document;
            Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider providerPdf = new();


            using (Stream stream = System.IO.File.OpenRead("C:\\TMP\\Ejemplo1-Input.pdf"))
            {
                document = providerPdf.Import(stream);
                byte[] output = providerPdf.Export(document);

                System.IO.File.WriteAllBytes("C:\\TMP\\Ejemplo1-Output.pdf", output);
            }
        }
Unplanned
Last Updated: 13 Jun 2024 08:22 by Viral

In a WPF project targeting .NET 6, the following code snippet results in an error:

        public MainWindow()
        {
            InitializeComponent();

            Telerik.Windows.Documents.Flow.FormatProviders.Html.HtmlFormatProvider provider = new Telerik.Windows.Documents.Flow.FormatProviders.Html.HtmlFormatProvider();
            RadFlowDocument document = provider.Import("<html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>");
        }
System.IO.FileNotFoundException: 'Could not load file or assembly 'System.Text.Encoding.CodePages, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.'

Workaround: edit the .csproj file and include the required package reference:

	<ItemGroup>
		<PackageReference Include="Telerik.Windows.Documents.Flow" Version="2024.2.426" />
		<PackageReference Include="System.Text.Encoding.CodePages" Version="7.0.0" />
	</ItemGroup>
	<ItemGroup>
		<FunctionsPreservedDependencies Include="System.Text.Encoding.CodePages.dll" />
	</ItemGroup>

 

 
Unplanned
Last Updated: 06 Jun 2024 12:52 by Development

Currently, these are the supported image formats:

If we try to import an Excel document containing an image with another format, the following error occurs:

System.Collections.Generic.KeyNotFoundException: 'The given key was not present in the dictionary.'

In Development
Last Updated: 06 Jun 2024 12:33 by ADMIN
DocFormatProvider: EndOfStreamException when importing document with specific image.
Declined
Last Updated: 05 Jun 2024 15:15 by ADMIN

SkiaImageFormatProvider: Rectangle behind text overlaps the text of previous line.

RESOLVED: The issue is dismissed. The actual reason for the results is missing FontsProvider implementation. In order for accurate calculations and measurements the fonts used in the document need to be resolved correctly.

Unplanned
Last Updated: 05 Jun 2024 15:01 by Thomas
When the document contains a big image that almost doesn't fit on the page and it is followed by an empty paragraph to generate a blank page with the footer in the DOCX file leads to losing the empty page in the exported PDF.
In Development
Last Updated: 05 Jun 2024 09:59 by ADMIN
WIth specific documents, the text is exported with the wrong position when exporting document pages to images using the SkiaImageFormatProvider.
In Development
Last Updated: 04 Jun 2024 12:05 by ADMIN
When importing a xlsm document, an error occurs: "The axes are incorrectly paired." 
            string fileName = "file.xlsm"; 
            Telerik.Windows.Documents.Spreadsheet.Model.Workbook workbook;
            IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsm.XlsmFormatProvider();

            using (Stream input = new FileStream(fileName, FileMode.Open))
            {
                workbook = formatProvider.Import(input);
            }
Declined
Last Updated: 04 Jun 2024 09:37 by ADMIN

I am using .net 7. I originally hit it with Telerik.UI.for.Wpf.70.Xaml.2023.3.1114. I updated to Telerik.UI.for.Wpf.70.Xaml.2024.1.423 to see if it was fixed but it still appears to happen.

I have attached a sample program which shows the behavior. Original.xlsm was created in Excel and has an image embedded in cell A1. Call ImportWorkbook with the path to the original file. Then export that workbook (unchanged) to the destination file.

Workbook workbook = ImportWorkbook( originalFileName );
ExportWorkbook( workbook, destinationFileName );
        private Workbook ImportWorkbook( string  fileName )
        {
            Telerik.Windows.Documents.Spreadsheet.Model.Workbook workbook;
            IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsm.XlsmFormatProvider();

            using( Stream input = new FileStream( fileName, FileMode.Open ) )
            {
                workbook = formatProvider.Import( input );
            }
            
            return workbook;
        }

        private void ExportWorkbook( Workbook workbook, string fileName )
        {
            Telerik.Windows.Documents.Spreadsheet.FormatProviders.IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsm.XlsmFormatProvider();

            using( Stream output = new FileStream( fileName, FileMode.Create ) )
            {
                formatProvider.Export( workbook, output );
            }
        }
The exported file is missing the image.
In Development
Last Updated: 28 May 2024 12:23 by ADMIN

Error message:

System.InvalidCastException: 'Unable to cast object of type 'Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Types.PdfHexString' to type 'Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Types.PdfLiteralString'.'
Unplanned
Last Updated: 28 May 2024 10:20 by Anu

The generated document looks OK before printing:

However, hitting the print preview button in MS Words leads to missing text in the fields:

In Development
Last Updated: 28 May 2024 09:57 by ADMIN
Broken page content when exporting a document and inversing a non-invertible concat matrix.
Completed
Last Updated: 23 May 2024 06:34 by ADMIN
Release 2024.2.426 (2024 Q2)
In scenarios with negative font and/or negative horizontal scaling the text is not rendered correctly.
Unplanned
Last Updated: 21 May 2024 08:26 by ADMIN
AngleSharp.Dom.DomException when importing a file with CSS style that starts with ".\!".
Unplanned
Last Updated: 20 May 2024 07:23 by ADMIN
Embedding a TrueType font collection using the FontsRepository.RegisterFont method leads to glyphs with empty outlines collection. The missing outlines are caused due to an empty glyf and loca tables of the TrueType font file.
Completed
Last Updated: 17 May 2024 14:37 by ADMIN
Release 2024.2.426 (2024 Q2)

This is the code used for merging:

        private  void MergeDifferentDocumentsPagesWithFixed()
        {
            string[] documentsToMerge =
            {
                "14301-STOCK_Proforma.pdf",
                "14302-STOCK_Proforma.pdf",
                "14303-STOCK_Proforma.pdf",
                "14304-STOCK_Proforma.pdf",
                "14305-STOCK_Proforma.pdf",
                "14330-STOCK_Proforma.pdf"
            };
            RadFixedDocument doc = new RadFixedDocument();
            PdfFormatProvider provider = new PdfFormatProvider();
            foreach (string current_item in documentsToMerge)
            {
                string path = @"..\..\Samples\" + current_item;
                RadFixedDocument docToMerge;
                if (!File.Exists(path))
                {
                    continue;
                }
                using (Stream stream = File.OpenRead(path))
                {
                    docToMerge = provider.Import(stream);
                }
                doc.Merge(docToMerge);
            }


            string outputFilePath = @"..\..\mergedFixed.pdf";
            File.Delete(outputFilePath);

            using (Stream output = File.OpenWrite(outputFilePath))
            {
                provider.Export(doc, output);
            }
            Process.Start(new ProcessStartInfo() { FileName = outputFilePath, UseShellExecute = true });


        }

Workaround:  

   private void MergeDifferentDocumentsPages(string resultFileName)
   {
       string[] documentsToMerge =
       {
           "14301-STOCK_Proforma.pdf",
           "14302-STOCK_Proforma.pdf",
           "14303-STOCK_Proforma.pdf",
           "14304-STOCK_Proforma.pdf",
           "14305-STOCK_Proforma.pdf",
           "14330-STOCK_Proforma.pdf"
       };

       File.Delete(resultFileName);
       using (PdfStreamWriter fileWriter = new PdfStreamWriter(File.OpenWrite(resultFileName)))
       {
           foreach (string documentName in documentsToMerge)
           {
               string path = @"..\..\Samples\" + documentName;
               using (PdfFileSource fileToMerge = new PdfFileSource(File.OpenRead(path)))
               {
                   foreach (PdfPageSource pageToMerge in fileToMerge.Pages)
                   {
                       fileWriter.WritePage(pageToMerge);
                   }
               }
           }
       }


      
       Process.Start(new ProcessStartInfo() { FileName = resultFileName, UseShellExecute = true });
   }

Unplanned
Last Updated: 17 May 2024 13:59 by Axel
Example: 
16 0 obj
<</AP<</N<</Off null/On 188 0 R>>/D<</Off 189 0 R/On 190 0 R>>>>/AS/Off/F 4/FT/Btn/H/T/P 19 0 R/Rect[ 40.3 690.45 56.15 706.7999]/Subtype/Widget/T(Einraeumung:Grabnutzungsrechts)/Type/Annot>>
endobj

 
Unplanned
Last Updated: 17 May 2024 08:29 by Vyacheslav
Unplanned
Last Updated: 17 May 2024 07:49 by Vyacheslav
In Development
Last Updated: 16 May 2024 15:55 by ADMIN

The hanging indent of the paragraph affects the rendering of content with tabs. However, the indent is not respected while generating the PDF, leading to disordered content.

Workaround: Insert a tab stop with the position set to the value for hanging indent:

foreach (var paragraph in this.flowDocument.EnumerateChildrenOfType<Paragraph>())
{
    if (paragraph.Properties.HangingIndent.HasLocalValue)
    {
        Run run = paragraph.EnumerateChildrenOfType<Run>().Where(r => r.Text == "\t").FirstOrDefault();

        if (run != null)
        {
            paragraph.TabStops = paragraph.TabStops.Insert(new Telerik.Windows.Documents.Flow.Model.Styles.TabStop(paragraph.Properties.HangingIndent.LocalValue.Value));
        }

    }
}

1 2 3 4 5 6