Typically, when using PDF export filters and drawing extensions in a Medium trust level environment or Azure web application, ActiveReports does not have access to the System Fonts folder due to security restrictions. Therefore, if your reports use special glyphs or non-ASCII characters that are only found in certain fonts, the PDF output may be incorrect on some machines.
The ActiveReports custom font factory allows you to embed any fonts you need in PDF in the Medium trust environment. To deploy the necessary fonts with your Medium trust solution, you must add the used font files in the specific folder and set up your web.config file.
ActiveReports looks for the custom fonts in the order as follows:
Notice that you need to copy the required font files (.ttc, .ttf) manually into the font folder you are accessing.
For your Azure project, you need to set the properties for all fonts in the project Fonts folder as follows:
XML code. Paste INSIDE the configSections tags of the web.config file. |
Copy Code
|
---|---|
<sectionGroup name="ActiveReports.PdfExport"> <section name="FontFactory" type="GrapeCity.ActiveReports.Web.FontFactorySectionHandler, GrapeCity.ActiveReports.Web, Version=13.0.15823.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" requirePermission="false" /> </sectionGroup> |
Required fonts or the folder containing the required fonts are set in the font factory. Paste code like the following after the configSections tag, but before the appSettings tag.
XML code. Paste between configSections and appSettings tags of the web.config file. |
Copy Code
|
---|---|
<ActiveReports.PdfExport> <FontFactory Mode="File"> <AddFolder VirtualPath="~/Fonts" Recurse="true"/> <Substitute Font="Helv" To="Helvetica"/> <SetFallbackFont Font="Arial"/> <!-- font link nodes --> <AddFontLink Font="Arial" List="SimSun,gulim,PMingLiU"/> <AddFontLink Font="Tahoma" List="MS UI Gothic,SimSun,gulim,PMingLiU"/> <AddFontLink Font="MS UI Gothic" List="SimSun,gulim,PMingLiU,Microsoft Sans Serif" IsDefault="true"/> <!-- EUDC link nodes --> <DefaultEudcFont File="EUDC.tte"/> <AddEudcFont Font="MS UI Gothic" File="myEUDC1.tte"/> <AddEudcFont Font="Meiryo" File="myEUDC2.tte"/> </FontFactory> </ActiveReports.PdfExport> |
As shown in the previous code, you can embed end-user defined characters (EUDCs) in the PDF output by modifying the web.config file settings by deploying an EUDC file (.tte) to any location.
EUDC configuration settings
Element | Description |
---|---|
DefaultEUDCFont | This is the node, like the SystemDefaultEudcFont entry in the registry file, that contains the default EUDC font settings. |
DefaultEUDCFont File | Specifies the file name of the default EUDC file. |
AddEudcFont |
This is the node that associates the EUDC file and the fontname. This node can be added more than once. |
AddEudcFont Font | Specifies the font name. |
AddEudcFont File |
Specifies the file name of the EUDC file to associate the above font. |
FontFactory
Description: This is the main font factory node to which you can add fonts.
Element | Description |
---|---|
Mode |
Setting the Mode attribute to File allows to use a file based factory, or remove the attribute for a Windows GDI factory. |
None.
Element | Description |
---|---|
ActiveReports.PdfExport |
The assembly that contains the PdfExport namespace (PDF export, document options, and security classes). |
<FontFactory Mode="File">
AddFolder
Description: Adds all TrueType fonts (.ttc, .ttf) from the specified folder.
Element | Description |
---|---|
Path |
Specifies the absolute path to the folder. |
VirtualPath | Specifies the relative path to the folder. |
Recurse | When set to True, it can read the subfolder. When set to False, it cannot read the subfolder. |
None.
Element | Description |
---|---|
FontFactory |
This is the main font factory node to which you can add fonts. |
<AddFolder VirtualPath="~/Fonts" Recurse="true"/>
Substitute
Description: Maps an alternate name of fonts to their official names.
Element | Description |
---|---|
Font |
Specifies the abbreviated font name (e.g. "Helv"). |
To | Specifies the official font name (e.g. "Helvetica"). |
None.
Element | Description |
---|---|
FontFactory |
This is the main font factory node to which you can add fonts. |
<Substitute Font="Helv" To="Helvetica"/>
SetFallbackFont (Professional Edition only)
Description: In the Professional Edition, sets the font to use if a) the specified font is not installed, b) the Substitute font is not specified or not installed, or c) the font links are not set or the needed glyphs are not found in the AddFontLink setting.
Element | Description |
---|---|
Font |
Specifies the font name. |
None.
Element | Description |
---|---|
FontFactory |
This is the main font factory node to which you can add fonts. |
<SetFallbackFont Font="Arial"/>
AddFontLink (Professional Edition only)
Description: In the Professional Edition, there is the extra support for CJK glyphs. You can add font links that allow the PdfExport to look up any glyphs missing from the specified font in the list of other fonts to check.
Element | Description | ||
---|---|---|---|
Font |
Specifies the font used in the reports. |
||
List |
Specifies the comma-separated list of fonts to be used in case the glyph is not found.
|
||
IsDefault | When set to True, indicates to use the specified list for any fonts that do not have their own font links. |
None.
Element | Description |
---|---|
FontFactory |
This is the main font factory node to which you can add fonts. |
<AddFontLink Font="Tahoma" List="MS UI Gothic,SimSun,gulim,PMingLiU"/>