Why is my text corrupted when exporting a report as PDF?

Corrupted text when exporting a Crystal Report as PDF with the Calibri font

First, we should start with a quick primer on how Fonts are used in Crystal Reports.  A wide variety of fonts are supported by Crystal Reports such as Arial, Times New Roman, and many more.  In fact, Crystal Reports should support any True Type or Open Type font that is installed on the machine generating the report.  Therefore, any fonts used in reports must be installed on every workstation computer that is going to produce the report.

The default Acctivate reports are built using the Arial font.  Arial is a very common True Type font that is delivered with Microsoft Windows.  Therefore, you don't need to worry about installing any fonts for our standard reports  Acctivate also includes a series of barcode fonts from ID Automation.  This includes the Universal Barcode Font Advantage package (e.g., Code 128 fonts) and the UPC/EAN Font Package (e.g., UPC-A or GTIN).  These fonts are distributed with a royalty-free license and are packaged in the Acctivate installer.

Other fonts may be used in Acctivate reports such as Calibri, a Microsoft Clear Type font.  However, there is a known problem that may appear when exporting a Crystal Report with Calibri as a PDF.  Some lowercase "t" characters are replaced with "ti", also "f" characters may be appear as "fi".  Here's an example of a Sales Quote created in Acctivate at Alterity with Calibri.  We really liked the Calibri font after using it in Microsoft Word and wanted to find a fix for this problem.

 

 

We determined that the problem was related to newer versions of the Microsoft Uniscribe component (USP10.dll).  There are two ways to workaround this problem:

A) Avoid using Calibri fonts in Crystal Reports.  You might try a more common True Type font, such as Arial.  Again, be sure that font is installed on every Acctivate workstation.

or

B) Downgrade Crystal Reports to use a legacy Microsoft Uniscribe component (USP10.dll).  Here's the procedure that we've used at Alterity with good results.

  1. Close Acctivate on the workstation
  2. Locate the Crystal Reports Binary (Bin) folder on each workstation
    • Acctivate 10.3+ is \Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86
    • Older versions are located at \Program Files (x86)\Business Objects\Common\3.5\bin\
  3. Find an older version of USP10.dll in the System32 folder on another computer running an older versions of Windows or contact our support team for help.
  4. Right-click on the legacy USP10.dll you located, click Properties then look at the Details tab for the File version.  You're looking for a File version beginning with 1.42.  For example, we've also had good success with version 1.422.3790.1830 from an older server running Windows Server 2003 SP1.
  5. Copy the legacy USP10.dll into the Crystal Reports folder you located in step 2 above
  6. Re-open Acctivate on the workstation
  7. Preview the report and try to export as PDF again.
  8. Verify that all t's and f's are correct now (as shown below)
  9. Repeat the above procedure for each workstation

As always, please let our support team know if you have questions or concerns working with Crystal Reports.  Unfortunately, this problem has been documented as a known issue with Crystal Reports and the Calibri font.  You can refer to this thread on the Crystal Reports Community Network for more information.

Unfortunately, the USP10.dll is not a file that Alterity can distribute to end users.  However, Alterity employees can grab an internal copy for their use in the at \\Server\Products\Crystal Reports\usp10.dll