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:
StringFormatFlagsLineLimit
StringFormatFlagsNoClip
StringFormatFlagsNoFitBlackBox
Actual StringFormat flags after Spire.Office usage:
StringFormatFlagsLineLimit
StringFormatFlagsNoClip
StringFormatFlagsNoFitBlackBox
-
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+.