Completed
Last Updated: 12 Feb 2025 15:20 by ADMIN
Release 2025.1.205 (2025 Q1)
NullReferenceException is thrown when importing a file with explicitly set UserInterfaceName annotation property to null.
Completed
Last Updated: 12 Feb 2025 15:20 by ADMIN
Release 2025.1.205 (2025 Q1)
After merging documents with PdfStreamWriter the JavaScript actions are broken and not working.
Completed
Last Updated: 12 Feb 2025 15:20 by ADMIN
Release 2025.1.205 (2025 Q1)

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.

Completed
Last Updated: 12 Feb 2025 15:19 by ADMIN
Release 2025.1.205 (2025 Q1)
Exporting a PDF documents with 2 pages (that are big images) is slow as hell & consuming way too much memory. (for a 2MiB file, over 2GiB!!!)
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 });
        }

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

ArgumentNullException is thrown when importing a document containing a rule with no set format.

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

If I simply import the xls file with the XlsFormatProvider that RadSpreadProcessing offers and then export it either to xls or xlsx format, the following message pops up when opening the document in MS Excel:

The exported XLS or XLSX file with RadSpreadProcessing contains an additional <definedName>: 

<?xml version="1.0" encoding="utf-8"?>
<workbook xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
	<sheets>
		<sheet sheetId="1" name="Sheet1" state="visible" r:id="rId1" />
	</sheets>
	<definedNames>
		<definedName name="Print_Titles" localSheetId="0" hidden="false">Sheet1!$A$1:$IV$3</definedName>
		<definedName name="_xlnm.Print_Area" localSheetId="0" hidden="false">Sheet1!$A:$G</definedName>
		<definedName name="_xlnm.Print_Titles" localSheetId="0" hidden="false">Sheet1!$1:$3</definedName>
	</definedNames>
</workbook>

 

Completed
Last Updated: 12 Feb 2025 15:18 by ADMIN
Release 2025.1.205 (2025 Q1)
The export method of the WorkbookFormatProviderBase does not use its timeout parameter.
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: 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).
Duplicated
Last Updated: 30 Jan 2025 13:31 by ADMIN
Created by: Philip
Comments: 1
Category: SpreadProcessing
Type: Bug Report
0

trying to open the attached workbook with this code:

Telerik.Windows.Documents.Spreadsheet.Model.Workbook workbook;
using (Stream input = File.OpenRead("sample.xlsx"))
{
  var provider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();
  // The import method enables you to also pass a byte[] with the XLSX document data
  workbook = provider.Import(input, TimeSpan.FromSeconds(30));
}

I get an unhandled exception:

An unhandled exception of type 'System.ArgumentNullException' occurred in Telerik.Documents.Spreadsheet.dll
Value cannot be null.

Any idea what's going on?

Thank you for your time,

 

Phil

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 });
Declined
Last Updated: 22 Jan 2025 11:20 by ADMIN

The value of the TextBoxField is not visible until the field is clicked.

Workaround: Force content update:

foreach (var widget in textBoxField.Widgets)
{
    widget.RecalculateContent();
}

If the update still doesn't fix the issue, change the font prior to setting the value of the field:

foreach (var widget in textBoxField.Widgets)
{
    widget.TextProperties.Font = FontsRepository.Helvetica;
}
Another option could be to set the ViewersShouldRecalculateWidgetAppearances to true in order to force the viewers to update the appearance of the widgets.

RESOLVED: The issue is dismissed. The actual reason for the results is that FontsProvider implementation is missing. For accurately displaying the text the fonts used in the document need to be resolved correctly.