Text Truncation in Rendered Reports When Using Spire.Office with Telerik Reporting
Environment
| Product | Progress® Telerik® Reporting | Spire.Office |
| Version | 19.2.25.1001 | 8.12.2 or earlier |
Description
When using the Telerik Reporting in the same application that processes MS Office documents and PDF files with Spire.Office libraries, the text in the rendered reports gets truncated unexpectedly.
This issue occurs even when the Spire.Office operations are performed on completely unrelated documents before rendering the Telerik report.
Cause
The issue is caused by Spire.Office modifying the global state of System.Drawing.StringFormat.GenericTypographic. After Spire.Office processes documents, the GenericTypographic method no longer returns a StringFormat object with the expected format flags.
Expected StringFormat flags:
StringFormatFlagsLineLimitStringFormatFlagsNoClipStringFormatFlagsNoFitBlackBox
Actual StringFormat flags after Spire.Office usage:
StringFormatFlagsLineLimitStringFormatFlagsNoClipStringFormatFlagsNoFitBlackBox-
MeasureTrailingSpaces(additional flag)
The extra MeasureTrailingSpaces flag causes incorrect text measurement in Telerik Reporting's GDI wrapper, leading to text truncation in some scenarios.
Solution
To resolve this issue, manually remove the MeasureTrailingSpaces flag from the GenericTypographic StringFormat after using Spire.Office operations and before rendering Telerik reports:
using Telerik.Reporting;
using Telerik.Reporting.Processing;
// Spire.Office operations
Spire.Doc.Document document = new Spire.Doc.Document();
var wordDocPath = "./wordtest.docx";
var pdfFilePath = System.IO.Path.Combine("../../../", "wordtest.pdf");
document.LoadFromFile(wordDocPath);
Spire.Doc.ToPdfParameterList toPdf = new Spire.Doc.ToPdfParameterList();
document.SaveToFile(pdfFilePath, toPdf);
document.Close();
// Fix the StringFormat issue caused by Spire.Office
System.Drawing.StringFormat.GenericTypographic.FormatFlags &= ~System.Drawing.StringFormatFlags.MeasureTrailingSpaces;
// Telerik Reporting operations
// ...
Additional Information
This issue affects only older versions of Spire.Office that use the GDI+ engine for text rendering. Starting from version 9.2.0, it does not rely on GDI+.