Unplanned
Last Updated: 14 Mar 2025 14:48 by Kevin
Created by: Kevin
Comments: 0
Category: Telerik Document Processing
Type: Feature Request
1
Provide API for configuring Freeze Panes.
Unplanned
Last Updated: 12 Mar 2025 08:26 by ADMIN
For instance, we may implement WritePageAsync method in addition to the existing WritePage method. This is a similar scenario as in System.IO.StreamWriter class which has WriteLine and WriteLineAsync methods.
Unplanned
Last Updated: 11 Mar 2025 11:14 by Margret

The PDF/A-1 standard uses the PDF Reference 1.4 and specifies two levels of compliance:

- PDF/A-1b - Its goal is to ensure reliable reproduction of the visual appearance of the document.

- PDF/A-1a - Its objective is to ensure that documents content can be searched and re-purposed. This compliance level has some additional requirements:

  • Document structure must be included.
  • Tagged PDF.
  • Unicode character maps
  • Language specification.

Since the PdfProcessing and its PdfFormatProvider is compliant with the PDF Reference 1.7. , the produced documents are created with this version as well: 




Unplanned
Last Updated: 11 Mar 2025 09:50 by Jeanot
This is the code the for replicating the error: 
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Streaming;
using Telerik.Windows.Documents.Fixed.Model.Editing;
using Telerik.Windows.Documents.Fixed.Model.InteractiveForms;
using Telerik.Windows.Documents.Fixed.Model;
using Telerik.Documents.Primitives;
using System.Diagnostics;
using System.Reflection.Metadata;
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;

namespace _1681158PdfInputFields
{
    internal class Program
    {
        static void Main(string[] args)
        {
           ExportExamplePdfForm();

        }

        public static void ExportExamplePdfForm()
        {
            RadFixedDocument fixedDoc = new RadFixedDocument();
            RadFixedPage fixedPage = fixedDoc.Pages.AddPage();
            FixedContentEditor editor = new FixedContentEditor(fixedPage);
            editor.Position.Translate(100, 100);
           
            
            TextBoxField textBox = new TextBoxField("textBox");
            fixedDoc.AcroForm.FormFields.Add(textBox);
            textBox.Value = "Sample text...";
            Size widgetDimensions = new Size(200, 30); 
            DrawNextWidgetWithDescription(editor, "TextBox", (e) => e.DrawWidget(textBox, widgetDimensions));

            string fileName = "output.pdf";
            File.Delete(fileName);
            // File.WriteAllBytes(fileName, new PdfFormatProvider().Export(fixedDoc, TimeSpan.FromSeconds(15)));


            string ResultFileName = "result.pdf";
            File.Delete(ResultFileName);
            using (PdfStreamWriter writer = new PdfStreamWriter(File.OpenWrite(ResultFileName)))
            {
                foreach (RadFixedPage page in fixedDoc.Pages)
                {
                    writer.WritePage(page);
                }
            }

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

            Console.WriteLine("Document created.");

             
        }

        private static void DrawNextWidgetWithDescription(FixedContentEditor editor, string description, Action<FixedContentEditor> drawWidgetWithEditor)
        {
            double padding = 20;
            drawWidgetWithEditor(editor);

            Size annotationSize = editor.Root.Annotations[editor.Root.Annotations.Count - 1].Rect.Size;
            double x = editor.Position.Matrix.OffsetX;
            double y = editor.Position.Matrix.OffsetY;

            Block block = new Block();
            block.TextProperties.FontSize = 20;
            block.VerticalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.VerticalAlignment.Center;
            block.InsertText(description);
            editor.Position.Translate(x + annotationSize.Width + padding, y);
            editor.DrawBlock(block, new Size(editor.Root.Size.Width, annotationSize.Height));

            editor.Position.Translate(x, y + annotationSize.Height + padding);
        }
    }
}
Unplanned
Last Updated: 10 Mar 2025 09:45 by João
Created by: João
Comments: 0
Category: PdfProcessing
Type: Feature Request
0
Handwritten Signature is a type of biometric signature that relies on capturing unique biometric data from a person's handwritten signature.
Unplanned
Last Updated: 05 Mar 2025 12:03 by Jason
Unplanned
Last Updated: 03 Mar 2025 09:09 by Vijayaprasad
Created by: Vijayaprasad
Comments: 0
Category: WordsProcessing
Type: Feature Request
1
Preserve the comments when exporting the DOCX file to PDF format
Unplanned
Last Updated: 25 Feb 2025 14:53 by David
Chart with missing shape properties (shPr) is corrupted with black background after PDF export.
Unplanned
Last Updated: 21 Feb 2025 10:59 by Gal
Incorrect positioning of Right-to-left (RTL) numbers.
Unplanned
Last Updated: 21 Feb 2025 10:13 by Gal
Mangled Right-To-Left (RTL) content when multiple lines of text are drawn.
Unplanned
Last Updated: 18 Feb 2025 08:22 by Vitalii
Unplanned
Last Updated: 17 Feb 2025 15:34 by Sandy
Unplanned
Last Updated: 14 Feb 2025 13:05 by Sandy

Corrupted document when exporting "Courier New" subset.

Workaround - fully embed the font:

var pdfFormatProvider = new PdfFormatProvider();
pdfFormatProvider.ExportSettings.FontEmbeddingType = FontEmbeddingType.Full;

 

Unplanned
Last Updated: 10 Feb 2025 11:09 by ADMIN

SpreadProcessing has a method,  cellValue.GetValueAsString(format), which allows the user to apply excel format on a value and get the result. While in SpreadStreamProcessing one could get the format and the value, there is no way to get their result and this is very inconvenient when the values in question are dates.

Workaround:

foreach (ICellImporter cell in rowImporter.Cells)
{
    string value = cell.Value;
    var format = cell.Format.NumberFormat;

    var cellValueFormat = new CellValueFormat(format);
   
    ICellValue cellValue;
    CellValueFormat valueFormat;

    CellValueFactory.Create(
        value,
        worksheet,
        new CellIndex(0, 0),
        cellValueFormat,
        out cellValue,
        out valueFormat);

    var formattedValue = cellValue.GetResultValueAsString(cellValueFormat);
}
Unplanned
Last Updated: 06 Feb 2025 12:00 by Sandy
ConditionalFormattingRange' s Formattings collection is not correctly enumerated when there are rules with intermittent ranges.
Unplanned
Last Updated: 05 Feb 2025 12:02 by ADMIN
ADMIN
Created by: Deyan
Comments: 11
Category: SpreadProcessing
Type: Feature Request
75
Add support for creating Tables and applying tables styles (predefined ones or custom).
Unplanned
Last Updated: 29 Jan 2025 14:18 by Lava
Created by: Lava
Comments: 0
Category: SpreadProcessing
Type: Feature Request
1
Introduce import/export of a single sheet.
Unplanned
Last Updated: 27 Jan 2025 15:00 by ADMIN
Created by: Christopher
Comments: 2
Category: SpreadProcessing
Type: Feature Request
2
Unplanned
Last Updated: 24 Jan 2025 08:12 by Christopher

Use the following code to create the document: 

            Workbook workbook = new Workbook();
            Worksheet graphWorksheet = workbook.Worksheets.Add();
            FloatingChartShape chartShape = new FloatingChartShape(graphWorksheet,
                                         new CellIndex(0, 0),
                                         new CellRange(0, 0, 0, 0), ChartType.Column)
            {
                Width = 500,
                Height = 500,
            };

            graphWorksheet.Charts.Add(chartShape);
            DocumentChart chart = new DocumentChart();
            BarSeriesGroup barSeriesGroup = new BarSeriesGroup();
            barSeriesGroup.BarDirection = BarDirection.Column;
            StringChartData barCategoryData = new StringChartData(new List<string>() { "1.1", "1.2", "1.3", "1.4", "2.1", "3.1", "4.1", "4.2", "4.3" });
            IEnumerable<double> percentEvidentList = new List<double>() { Math.Round((double)0.9914 * 100, 4) , Math.Round((double)0.7719 * 100, 4), Math.Round((double)1 * 100, 4)   };
            NumericChartData barValues = new NumericChartData(percentEvidentList);
            BarSeries series = new BarSeries();
            series.Categories = barCategoryData;
            series.Values = barValues;
            ThemableColor themableColor = ThemableColor.FromArgb(255, 125, 0, 125);

            series.Fill = new SolidFill(themableColor);
            series.Title = new TextTitle("FY 20");
            barSeriesGroup.Series.Add(series);
            chart.SeriesGroups.Add(barSeriesGroup);
            ValueAxis valueAxis = new ValueAxis();
            valueAxis.Min = 0;
            valueAxis.Max = 100;
            valueAxis.NumberFormat = "0%";
            CategoryAxis categoryAxis = new CategoryAxis(); 
            chart.PrimaryAxes = new AxisGroup(categoryAxis, valueAxis);

            chart.Legend = new Legend();
            chart.Legend.Position = LegendPosition.Left;

            chartShape.Chart = chart;
            valueAxis.NumberFormat = "0%";
            string outputFilePath = "SampleFile.xlsx";
            File.Delete(outputFilePath);
            IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();

            using (Stream output = new FileStream(outputFilePath, FileMode.Create))
            {
                formatProvider.Export(workbook, output, TimeSpan.FromSeconds(10));
            }
            Process.Start(new ProcessStartInfo() { FileName = outputFilePath, UseShellExecute = true });
Unplanned
Last Updated: 21 Jan 2025 16:20 by ADMIN

Getting an exception message when trying to view a document as a PDF using the PdfFormatProvider which started happening only after upgrading Telerik to the latest version, 7.1.0 in Telerik UI for Blazor.

Exception Message:

width should be greater or equal than 0. (Parameter 'width')

I have copied the stack trace and source of the exception below:

 

Source: Telerik.Documents.Fixed

Stack Trace:    at Telerik.Windows.Documents.Fixed.Model.Editing.Layout.ContentElementLayoutElementBase`1.DrawHighlights(DrawLayoutElementContext context)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Layout.ContentElementLayoutElementBase`1.Draw(DrawLayoutElementContext context)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Block.Draw(IEnumerable`1 lineElements, DrawLayoutElementContext context)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Block.DrawInternal(FixedContentEditor editor, Rect boundingRect)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Block.Telerik.Windows.Documents.Fixed.Model.Editing.Flow.IDrawArrangedElement.DrawArrangedElement(FixedContentEditor editor, Rect boundingRect)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Flow.SectionInfo.DrawArrangedElement(IBlockElement blockElement, Double horizontalOffset, Double verticalOffset)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Utils.SectionInfoExtensions.DrawArrangedElements(SectionInfo section, IList`1 elements)
   at Telerik.Windows.Documents.Fixed.Model.Editing.RadFixedDocumentEditor.Draw()
   at Telerik.Windows.Documents.Fixed.Model.Editing.RadFixedDocumentEditor.StartNewPage(SectionProperties sectionProperties)
   at Telerik.Windows.Documents.Fixed.Model.Editing.RadFixedDocumentEditor.StartNewPage()
   at Telerik.Windows.Documents.Fixed.Model.Editing.RadFixedDocumentEditor.AddBlock(IBlockElement blockElement, CancellationToken cancellationToken)
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.Export.PdfExporter.ExportSection(Section section, RadFixedDocumentEditor editor)
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.Export.PdfExporter.ExportDocument(RadFlowDocument document, RadFixedDocumentEditor editor)
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.Export.PdfExporter.ExportInternal()
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.Export.PdfExporter.Export()
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider.ExportToFixedDocument(RadFlowDocument document, CancellationToken cancellationToken)
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider.ExportOverride(RadFlowDocument document, Stream output, CancellationToken cancellationToken)
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider.ExportOverride(RadFlowDocument document, Stream output)
   at Telerik.Windows.Documents.Common.FormatProviders.FormatProviderBase`1.Export(T document, Stream output)
   at Telerik.Windows.Documents.Common.FormatProviders.BinaryFormatProviderBase`1.Export(T document)