Start a conversation

Non-Latin Characters (Greek, Cyrillic, etc.) Not Rendering in CLM Generated Documents

Symptom

When generating PDF documents from CloudSense CLM (Contract Lifecycle Management), non-Latin characters (e.g., Greek, Cyrillic, Arabic) appear as blank/missing in the output document. The text is stored correctly in the clause definitions but is dropped during PDF rendering.

The issue may affect only certain fonts -- for example, text in Arial renders correctly while text in Verdana appears blank.

Cause

Salesforce's Visualforce PDF renderer has limited font support for non-Latin character sets. When a clause definition contains inline styling with a font that does not have coverage for the required character glyphs (e.g., Verdana does not reliably embed Greek glyphs), the renderer drops those characters from the output.

The text is stored correctly as Unicode in the database -- the issue is exclusively in the PDF rendering step.

Resolution

Step 1: Identify the affected font

Compare the rendering of the same text using different fonts in the clause definition. If one font renders correctly (e.g., Arial) while another does not (e.g., Verdana), the issue is font-specific glyph coverage.

Step 2: Force a Unicode-capable font in the VF template

In the Visualforce page used for document generation, add a CSS override after all other includes to force a font with full Unicode support:

<style>
  /* Force Unicode-capable font for PDF output */
  body, body * {
    font-family: "Arial Unicode MS", Arial, sans-serif !important;
  }
</style>

The !important is required to override inline style="font-family: Verdana" that may come from clause rich text content.

Step 3: (Best practice) Embed a Unicode TTF font

For the most reliable long-term solution, embed a Unicode-capable TTF font (e.g., Noto Sans) as a Salesforce Static Resource and reference it via @font-face in the PDF template:

<style>
  @font-face {
    font-family: 'NotoSans';
    src: url('{!URLFOR($Resource.NotoSans)}') format('truetype');
  }
  body, body * {
    font-family: 'NotoSans', Arial, sans-serif !important;
  }
</style>

This avoids dependency on fonts available on the Salesforce renderer and ensures consistent output across all languages.

Additional Notes

  • This is a Salesforce PDF renderer limitation, not a CloudSense package issue
  • Arial has broad Unicode coverage and is generally safe for European character sets
  • For full CJK (Chinese/Japanese/Korean) support, Noto Sans CJK or similar comprehensive fonts are recommended
  • The font override must be placed after all other CSS includes in the VF template to take precedence
Choose files or drag and drop files
Was this article helpful?
Yes
No
  1. Priyanka Bhotika

  2. Posted

Comments