Home
Analytics
BIRT PDF Render Issue
sr894
<p>Hi ,</p><p> </p><p>I am trying to genarate PDF report , Localy(Windows) its working fine but when we deplyoed in unix box .sometimes it is faling .I tried all best practice to resolve this but not able to find any concrete solution.</p><p> </p><p>Expert please help me in this regard.</p><p> </p><p> </p><p>Please find the logs:</p><p> </p><p>[20.09.13 07:28:42:264 CEST] 00000043 FontConfigRea I load font config in wsjar:file:/opt/WAS80/profiles/AppServer01/installedApps/WASTEST_80_Intranet/UId01.ear/lib/org.eclipse.birt.runtime-3.7.2.v20120214-1408.jar!/fontsConfig.xml cost 20ms
[20.09.13 07:28:42:266 CEST] 00000043 FontConfigRea I register fonts in /usr/share/fonts/zh_CN/TrueType cost:0ms
[20.09.13 07:28:42:267 CEST] 00000043 FontConfigRea I register fonts in C:/windows/fonts cost:0ms
[20.09.13 07:28:42:267 CEST] 00000043 FontConfigRea I register fonts in /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType cost:0ms
[20.09.13 07:28:42:268 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/iso_8859_5/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:269 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/zh_CN.GB18030/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:269 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/ar/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:270 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/zh.GBK/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:270 CEST] 00000043 FontConfigRea I register fonts in /usr/X11R6/lib/X11/fonts/tt cost:0ms
[20.09.13 07:28:42:271 CEST] 00000043 FontConfigRea I register fonts in /usr/share/fonts/ko/TrueType cost:0ms
[20.09.13 07:28:42:271 CEST] 00000043 FontConfigRea I register fonts in /usr/X11R6/lib/X11/fonts/truetype cost:0ms
[20.09.13 07:28:42:272 CEST] 00000043 FontConfigRea I register fonts in /usr/X11R6/lib/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:272 CEST] 00000043 FontConfigRea I register fonts in /usr/X/lib/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:273 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/hi_IN.UTF-8/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:275 CEST] 00000043 FontConfigRea I register fonts in /usr/X11R6/lib/X11/fonts/OTF cost:0ms
[20.09.13 07:28:42:275 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/iso_8859_15/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:276 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/iso_8859_13/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:276 CEST] 00000043 FontConfigRea I register fonts in /usr/share/fonts/ja/TrueType cost:0ms
[20.09.13 07:28:42:277 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:277 CEST] 00000043 FontConfigRea I register fonts in g:/WINNT/fonts cost:0ms
[20.09.13 07:28:42:278 CEST] 00000043 FontConfigRea I register fonts in g:/windows/fonts cost:0ms
[20.09.13 07:28:42:278 CEST] 00000043 FontConfigRea I register fonts in /usr/X11R6/lib/X11/fonts/TTF cost:0ms
[20.09.13 07:28:42:279 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/KOI8-R/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:279 CEST] 00000043 FontConfigRea I register fonts in e:/WINNT/fonts cost:0ms
[20.09.13 07:28:42:280 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/zh_TW.BIG5/X11/fonts/TT cost:0ms
[20.09.13 07:28:42:280 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/th_TH/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:281 CEST] 00000043 FontConfigRea I register fonts in e:/windows/fonts cost:0ms
[20.09.13 07:28:42:282 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/iso_8859_8/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:282 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/euro_fonts/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:283 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/iso_8859_2/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:284 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/zh/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:285 CEST] 00000043 FontConfigRea I register fonts in /usr/share/fonts/zh_TW/TrueType cost:0ms
[20.09.13 07:28:42:285 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/zh_TW/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:286 CEST] 00000043 FontConfigRea I register fonts in /usr/share/fonts/truetype cost:0ms
[20.09.13 07:28:42:286 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/ko.UTF-8/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:287 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/ko/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:287 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/ja/X11/fonts/TT cost:0ms
[20.09.13 07:28:42:288 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/ru.ansi-1251/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:288 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/zh_HK.BIG5HK/X11/fonts/TT cost:0ms
[20.09.13 07:28:42:289 CEST] 00000043 FontConfigRea I register fonts in /usr/share/fonts/default/TrueType cost:0ms
[20.09.13 07:28:42:289 CEST] 00000043 FontConfigRea I register fonts in f:/WINNT/fonts cost:0ms
[20.09.13 07:28:42:290 CEST] 00000043 FontConfigRea I register fonts in f:/windows/fonts cost:0ms
[20.09.13 07:28:42:291 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/iso_8859_9/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:291 CEST] 00000043 FontConfigRea I register fonts in d:/WINNT/fonts cost:0ms
[20.09.13 07:28:42:292 CEST] 00000043 FontConfigRea I register fonts in C:/WINNT/fonts cost:0ms
[20.09.13 07:28:42:293 CEST] 00000043 FontConfigRea I register fonts in d:/windows/fonts cost:0ms
[20.09.13 07:28:42:294 CEST] 00000043 FontConfigRea I register fonts in /usr/openwin/lib/locale/iso_8859_7/X11/fonts/TrueType cost:0ms
[20.09.13 07:28:42:315 CEST] 00000043 FontConfigRea I load font config in wsjar:file:/opt/WAS80/profiles/AppServer01/installedApps/WASTEST_80_Intranet/UId01.ear/lib/org.eclipse.birt.runtime-3.7.2.v20120214-1408.jar!/fontsConfig_linux.xml cost 3ms
[20.09.13 07:28:42:462 CEST] 00000043 FontConfigRea I load font config in wsjar:file:/opt/WAS80/profiles/AppServer01/installedApps/WASTEST_80_Intranet/UId01.ear/lib/org.eclipse.birt.runtime-3.7.2.v20120214-1408.jar!/fontsConfig_pdf.xml cost 1ms
[20.09.13 07:28:42:974 CEST] 00000043 FontConfigRea I load font config in file:/tmp/ccbFontsConfig6576130783562034818.xml cost 3ms
[20.09.13 07:28:42:979 CEST] 00000043 FontConfigRea I register fonts in /tmp/ccbFonts8708219692617004771 cost:4ms
[20.09.13 07:28:55:879 CEST] 00000043 PageDeviceRen W <Null Message>
java.lang.NullPointerException
at com.lowagie.text.pdf.CFFFontSubset.BuildSubrUsed(Unknown Source)
at com.lowagie.text.pdf.CFFFontSubset.BuildNewLGSubrs(Unknown Source)
at com.lowagie.text.pdf.CFFFontSubset.Process(Unknown Source)
at com.lowagie.text.pdf.TrueTypeFontUnicode.writeFont(Unknown Source)
at com.lowagie.text.pdf.FontDetails.writeFont(Unknown Source)
at com.lowagie.text.pdf.PdfWriter.addSharedObjectsToBody(Unknown Source)
at com.lowagie.text.pdf.PdfWriter.close(Unknown Source)
at com.lowagie.text.pdf.PdfDocument.close(Unknown Source)
at com.lowagie.text.Document.close(Unknown Source)
at org.eclipse.birt.report.engine.emitter.pdf.PDFPageDevice.close(PDFPageDevice.java:175)
at org.eclipse.birt.report.engine.layout.emitter.PageDeviceRender.end(PageDeviceRender.java:142)
at org.eclipse.birt.report.engine.emitter.pdf.PDFRender.end(PDFRender.java:143)
at org.eclipse.birt.report.engine.layout.emitter.PageEmitter.end(PageEmitter.java:63)
at org.eclipse.birt.report.engine.nLayout.LayoutEngine.end(LayoutEngine.java:345)
at org.eclipse.birt.report.engine.emitter.CompositeContentEmitter.end(CompositeContentEmitter.java:65)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:182)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)</p>
Find more posts tagged with
Comments
mwilliams
<p>It's only failing sometimes? This is all you see in the logs? Is there any difference in the fonts when it fails, like internationalization or something?</p>
sr894
<blockquote class="ipsBlockquote" data-author="mwilliams" data-cid="120629" data-time="1380031479"><div><p>It's only failing sometimes? This is all you see in the logs? Is there any difference in the fonts when it fails, like internationalization or something?</p></div></blockquote><p> </p><p>Hi Micheal,</p><p> </p><p>Thanks for reply.Yes it is faling sometimes.Yes we have used some custom fonts and using it in our PDF.</p>
sr894
<blockquote class="ipsBlockquote" data-author="sr894" data-cid="120750" data-time="1380283005"><div><p>Hi Micheal,</p><p> </p><p>Thanks for reply.Yes it is faling sometimes.Yes we have used some custom fonts and using it in our PDF.</p></div></blockquote><p>do you want me to post the code where we are using custom fonts? actully we are dynacaly loading that fonts in temp folder and when we close the pdf we are deleting that font from tmp folder.</p>
mwilliams
<p>Sure. The custom fonts work locally, but not when deployed? Where are you putting the code for the fonts when you deploy the report?</p>
sr894
<p>Customs fonts works localy and also works in when we deply in Unix box.Only sometimes it falis , we are not able to reproduce the bug in local (windows)only in deployment envrionment(Unix) it fails randomly and when we restart the server it works again.</p><p> </p><p>we have created our own custom fontConfig.xml and passed the custom fons path on the same.and at run time in engine config we are setting passing our font config like below code.</p><p> </p><p><strong>engineConfig.setFontConfig(createUrlFor(fontConfigFile));</strong></p><p> </p><p>we have written a logic so that it first create custom fontConfig.xml in temp folder of OS and loads all the fonts that is also in temp folder.And when we close the pdf, it deletes fonts and custom fontConfig.xml from temp folder from OS.</p><p> </p><p>ConfigurationFactory class:</p><p> </p><p> </p><p>import java.io.BufferedReader;<br />
import java.io.File;<br />
import java.io.FileNotFoundException;<br />
import java.io.FileOutputStream;<br />
import java.io.FileWriter;<br />
import java.io.IOException;<br />
import java.io.InputStream;<br />
import java.io.InputStreamReader;<br />
import java.io.OutputStream;<br />
import java.io.Writer;<br />
import java.net.MalformedURLException;<br />
import java.net.URL;<br />
import java.util.List;</p><p>import org.eclipse.birt.report.engine.api.EngineConfig;</p><p> </p><p>/**<br />
* This class is responsible to create BirtConfigurationFactory object for ABC<br />
* It also loads the custom fontsConfig resource that finally loads the customs<br />
* fonts needed for abc application.<br />
*<br />
*<br />
*/<br />
public class BirtEngineFactory {<br />
<br />
/**<br />
* An instance to log info message of this class<br />
*/<br />
<br />
private static final ABCLogger LOG = ABCLogger<br />
.getLogger(BirtEngineFactory.class);<br />
<br />
public BirtConfigurationFactory innerFactory;</p><p> public BirtConfigurationFactory getInnerFactory() {<br />
return innerFactory;<br />
}</p><p> public void setInnerFactory(BirtConfigurationFactory innerFactory) {<br />
this.innerFactory = innerFactory;<br />
}</p><p> public List<String> getFontFileLocations() {<br />
return fontFileLocations;<br />
}</p><p> public void setFontFileLocations(List<String> fontFileLocations) {<br />
this.fontFileLocations = fontFileLocations;<br />
}</p><p> public List<String> fontFileLocations;</p><p> /**<br />
* This method responsible to create engine config object for ABC<br />
* application<br />
*<br />
*
@param<
;br />
*/<br />
public EngineConfig createEngineConfig() throws IOException {<br />
EngineConfig config = innerFactory.createEngineConfig();<br />
addABCFontsToEngineConfig(config);<br />
return config;<br />
}</p><p> /**<br />
* This method responsible to add custom fonts to engine config Object<br />
*<br />
*
@param
engineConfig<br />
* This engine config object contains custom fontConfig resource<br />
* location and will load the fonts from that at runtime and make<br />
* available for PDF to render.<br />
*/<br />
void addABCFontsToEngineConfig(EngineConfig engineConfig)<br />
throws IOException {<br />
try {<br />
doAddABCFontsToEngineConfig(engineConfig);<br />
} catch (FileNotFoundException e) {<br />
Assertion.neverHappens(Assertion.INVARIANT,<br />
"Temporary files are where created.");<br />
} catch (MalformedURLException e) {<br />
Assertion.neverHappens(Assertion.INVARIANT,<br />
"File URLs based on actual files are well-formed.");<br />
}<br />
}</p><p> /**<br />
*<br />
*<br />
* This has been done to make available fontCofig file for engineConfig<br />
* Example : engineConfig.setFontConfig(Url url)<br />
*<br />
*
@param
engineConfig<br />
*/<br />
private void doAddABCFontsToEngineConfig(EngineConfig engineConfig)<br />
throws IOException, FileNotFoundException, MalformedURLException {</p><p> File fontConfigDir = copyFontsToTemporaryDirectory();</p><p> File fontConfigFile = createTemporaryFontsConfig(fontConfigDir);</p><p> fontConfigDir.deleteOnExit();</p><p> engineConfig.setFontConfig(createUrlFor(fontConfigFile));<br />
}</p><p> /**<br />
* Create the URL object for absolute path of fontConfigFile<br />
*<br />
*
@param
file<br />
*
@return<
;br />
*
@throws
MalformedURLException<br />
*/<br />
private URL createUrlFor(File file) throws MalformedURLException {<br />
return new URL("file", "", file.getAbsolutePath());<br />
}</p><p> /**<br />
* Create a temporary fontsConfig file named ABCFontsConfig.xml based on<br />
* existing one in resource folder(/fontConfig/fontsConfig.xml). Put in the<br />
* path to the temporary fonts directory into this file.<br />
*<br />
*
@param
fontConfigDir<br />
* the temporary fonts directory<br />
*
@return
the temporary fontsConfig file<br />
*
@throws
IOException<br />
*/<br />
private File createTemporaryFontsConfig(File fontConfigDir)<br />
throws IOException {<br />
InputStreamReader inputStreamReader = null;<br />
BufferedReader fontConfigTemplate = null;<br />
Writer fontConfig = null;<br />
File fontConfigFile = null;<br />
try{<br />
inputStreamReader = new InputStreamReader(getClass().getResourceAsStream("/fontConfig/fontsConfig.xml"));<br />
<br />
fontConfigTemplate = new BufferedReader(inputStreamReader);<br />
fontConfigFile = File.createTempFile("ABCFontsConfig", ".xml");<br />
fontConfigFile.deleteOnExit();<br />
fontConfig = new FileWriter(fontConfigFile);<br />
String line = null;<br />
while ((line = fontConfigTemplate.readLine()) != null) {<br />
line = line.replace("/resources/fonts/",fontConfigDir.getAbsolutePath());<br />
fontConfig.write(line);<br />
fontConfig.write("n");<br />
}<br />
}catch(IOException ie){<br />
LOG.error(FwMessages.FW00026E, ie.getMessage());<br />
} finally {<br />
try {<br />
if (inputStreamReader != null) {<br />
inputStreamReader.close();<br />
}<br />
} catch (IOException e) {<br />
LOG.error(FwMessages.FW00025E, e.getMessage());<br />
}<br />
try {<br />
if (fontConfigTemplate != null) {<br />
fontConfigTemplate.close();<br />
}<br />
} catch (IOException e) {<br />
LOG.error(FwMessages.FW00025E, e.getMessage());<br />
}<br />
try {<br />
if (fontConfig != null) {<br />
fontConfig.close();<br />
}<br />
} catch (IOException e) {<br />
LOG.error(FwMessages.FW00025E, e.getMessage());<br />
}<br />
LOG.debug("Cleaning the resource in createTemporaryFontsConfig() :: ABCBirtEngineFactory");<br />
<br />
}<br />
return fontConfigFile;<br />
}</p><p> /**<br />
* Create local temporary folder, read the fonts from project resource and<br />
* copy it to this temporary folder.<br />
*<br />
*
@return
the temporary directory the fonts are in<br />
*
@throws
IOException<br />
*
@throws
FileNotFoundException<br />
*/<br />
private File copyFontsToTemporaryDirectory() throws IOException,<br />
FileNotFoundException {<br />
LOG.debug("inside copyFontsToTemporaryDirectory() :: ABCBirtEngineFactory");<br />
File fontConfigDir = File.createTempFile("ABCFonts", "");<br />
fontConfigDir.delete();<br />
fontConfigDir.mkdir();<br />
for (String fontFile : fontFileLocations) {<br />
InputStream fontReader = getClass().getResourceAsStream(fontFile);<br />
File outputFile = new File(fontConfigDir.getAbsolutePath()<br />
+ fontFile.substring(fontFile.lastIndexOf("/")));<br />
OutputStream fontWriter = new FileOutputStream(outputFile);<br />
copyStream(fontReader, fontWriter);<br />
outputFile.deleteOnExit();<br />
}<br />
return fontConfigDir;<br />
}</p><p> /**<br />
* Copy fonts to temporary folder created for further use<br />
*<br />
*
@throws
IOException<br />
*/<br />
void copyStream(InputStream input, OutputStream output) throws IOException {<br />
byte[] buffer = new byte[4096];<br />
int bytesRead = 0;<br />
try{<br />
while ((bytesRead = input.read(buffer)) > 0) {<br />
output.write(buffer, 0, bytesRead);<br />
}<br />
}catch(IOException ie){<br />
LOG.error(FwMessages.FW00027E, ie.getMessage());<br />
ie.printStackTrace();<br />
}finally{<br />
try {<br />
if (input != null) {</p><p> input.close();<br />
}<br />
} catch (IOException e) {<br />
LOG.error(FwMessages.FW00028E, e.getMessage());<br />
}<br />
try {<br />
if (output != null) {<br />
output.flush();<br />
output.close();<br />
}<br />
} catch (IOException e) {<br />
LOG.error(FwMessages.FW00028E, e.getMessage());<br />
}<br />
LOG.debug("Cleaning the resource in copyStream() :: ABCBirtEngineFactory");<br />
<br />
}<br />
<br />
}<br />
}</p><p> </p><p> </p><p> </p><p>Font Config:</p><p> </p><p> </p><p> </p><p><?xml version=<em class='bbc'>"1.0"</em> encoding=<em class='bbc'>"UTF-8"</em>?></p><p> </p><p> </p><p><!--</p><p>The priority of fonts configuration file is as following:</p><p>Two major levels of configuration files:</p><p>1. Configuration files without format in name are divided into three sub-levels:</p><p>a. default configuration file: fontsConfig.xml</p><p>b. configuration files specified for special platform: fontsConfig_Windows_XP.xml or fontsConfig_win32.<span class='bbc_underline'>xml</span>.</p><p>c. configuration files specified for special platform and special locale: fontsConfig_win32_zh.xml/fontsConfig_win32_zh_CN.xml</p><p>2. Configuration files with format in name are also divided into 3 sub-levels:</p><p>d. default configuration files for a format: fontsConfig_pdf.xml</p><p>e. configuration files for a format under special platform: fontsConfig_pdf_win32.<span class='bbc_underline'>xml</span></p><p>f. configuration files for a format under special platform: fontsConfig_pdf_win32_zh.xml</p><p>From level a to level f, the priority of configuration files increase.</p><p> </p><p>The logic how a single configuration is loaded and used is described below:</p><p>1. PDF layout engine loads the font files from the fonts folder of the plug-in </p><p>"org.eclipse.birt.report.engine.fonts". and then the system defined font</p><p>folder. If the section <font-paths> is set in fontsConfig.xml, the system </p><p>defined font folder will be ignored, and the font files specified in section </p><p><font-paths> will be loaded instead.</p><p> </p><p>2. PDF layout engine tries to use the font specified in design-time to render the <span class='bbc_underline'>pdf</span>/postscript/<span class='bbc_underline'>ppt</span>. </p><p>If the font is a generic family, it will be mapped to a PDF embedded type1 font. </p><p>"<span class='bbc_underline'>serif</span>" to "Times-Roman" </p><p>"fantasy" to "Times-Roman" </p><p>"<span class='bbc_underline'>sans</span>-<span class='bbc_underline'>serif</span>" to "<span class='bbc_underline'>Helvetica</span>"</p><p>"<span class='bbc_underline'>monospace</span>" to "Courier"</p><p>"cursive" to "Times-Roman"</p><p>If the font can not be built, it will go to the UNICODE block of that character,</p><p>and try the font defined in that block.</p><p>If this also fails, the character will be replaced with '?' using the default font, </p><p>currently "Times-Roman", to denote a place of missing character. </p><p>--></p><p><font></p><p><!--</p><p>In <font-aliases> section, you can:</p><p>a. Define a mapping from a generic family to a font family.</p><p>for example: the following defines a mapping from generic family "<span class='bbc_underline'>serif</span>" to a Type1 font</p><p>family "Times-Roman".</p><p><mapping name="<span class='bbc_underline'>serif</span>" font-family="Times-Roman"/></p><p> </p><p>b. Define a mapping from a font family to another font family.</p><p>This is useful if you want to use a font for PDF rendering which differs from the font used</p><p>in design-time. </p><p>for example: the following defines to replace "<span class='bbc_underline'>simsun</span>" with "<span class='bbc_underline'>Arial</span> <span class='bbc_underline'>Unicode</span> MS".</p><p><mapping name="<span class='bbc_underline'>simsun</span>" font-family="<span class='bbc_underline'>Arial</span> <span class='bbc_underline'>Unicode</span> MS"/></p><p> </p><p>In previous version, name "font-mapping" is used for "font-aliases". Currently, "font-mapping" entry</p><p>also works in the same way as "font-aliases" entry does. When "font-mapping" and "font-aliases" are</p><p>both available, the different mappings are merged, for the same entries in the both, those in</p><p>"font-aliases" will override those in "font-mapping".</p><p>--></p><p><font-aliases></p><p><mapping name=<em class='bbc'>"serif"</em> font-family=<em class='bbc'>"customFont1</em> /></p><p><mapping name=<em class='bbc'>"sans-serif"</em> font-family=<em class='bbc'>"<em>customFont2</em>"</em> /></p><p><mapping name=<em class='bbc'>"cursive"</em> font-family=<em class='bbc'>"<em>customFont3</em>"</em> /></p><p></font-aliases></p><p> </p><p><composite-font name=<em class='bbc'>"all-fonts"</em> font-family=<em class='bbc'>"<em>Times-Roman</em>"</em>></p><p></composite-font></p><p> </p><p> </p><p><!--</p><p>In this section, you can set the font path you want PDF layout engine to read, ranging from one font</p><p>file to a whole font folder.</p><p>for example: </p><p>add a font folder</p><p><path path="c:/windows/fonts"/></p><p>add a font file</p><p><path path="/<span class='bbc_underline'>usr</span>/X11R6/<span class='bbc_underline'>lib</span>/X11/fonts/TTF/arial.ttf"/></p><p> </p><p>But please NOTE:</p><p>If this section is set, PDF layout engine will ONLY load the font files in these paths and ignore</p><p>the system defined font folder. If you want to use the system font folder as well, please include</p><p>it in this section. </p><p> </p><p>On some systems, BIRT PDF layout engine may not <span class='bbc_underline'>recognize</span> the system defined font folder. If you encounter</p><p>this issue, please add the font path to this section.</p><p>--></p><p><font-paths></p><p><path path=<em class='bbc'>"/resources/fonts/"</em> /></p><p></font-paths></p><p><!--</p><p>For <font-encodings> section,</p><p>In most cases, you need not use this section, unless you are trying to use a non true-type font for</p><p>PDF rendering.</p><p>--></p><p> </p><p><font-encodings></p><p><encoding font-family=<em class='bbc'>"Times-Roman"</em> encoding=<em class='bbc'>"Cp1252"</em> /></p><p><encoding font-family=<em class='bbc'>"Helvetica"</em> encoding=<em class='bbc'>"Cp1252"</em> /></p><p><encoding font-family=<em class='bbc'>"Courier"</em> encoding=<em class='bbc'>"Cp1252"</em> /></p><p><encoding font-family=<em class='bbc'>"Zapfdingbats"</em> encoding=<em class='bbc'>"Cp1252"</em> /></p><p><encoding font-family=<em class='bbc'>"Symbol"</em> encoding=<em class='bbc'>"Cp1252"</em> /></p><p><encoding font-family=<em class='bbc'>"STSong-Light"</em> encoding=<em class='bbc'>"UniGB-UCS2-H"</em> /></p><p><encoding font-family=<em class='bbc'>"STSongStd-Light"</em> encoding=<em class='bbc'>"UniGB-UCS2-H"</em> /></p><p><encoding font-family=<em class='bbc'>"MHei-Medium"</em> encoding=<em class='bbc'>"UniCNS-UCS2-H"</em> /></p><p><encoding font-family=<em class='bbc'>"MSung-Light"</em> encoding=<em class='bbc'>"UniCNS-UCS2-H"</em> /></p><p><encoding font-family=<em class='bbc'>"MSungStd-Light"</em> encoding=<em class='bbc'>"UniCNS-UCS2-H"</em> /></p><p><encoding font-family=<em class='bbc'>"HeiseiMin-W3"</em> encoding=<em class='bbc'>"UniJIS-UCS2-H"</em> /></p><p><encoding font-family=<em class='bbc'>"HeiseiKakuGo-W5"</em> encoding=<em class='bbc'>"UniJIS-UCS2-H"</em> /></p><p><encoding font-family=<em class='bbc'>"KozMinPro-Regular"</em> encoding=<em class='bbc'>"UniJIS-UCS2-H"</em> /></p><p><encoding font-family=<em class='bbc'>"HYGoThic-Medium"</em> encoding=<em class='bbc'>"UniKS-UCS2-H"</em> /></p><p><encoding font-family=<em class='bbc'>"HYSMyeongJo-Medium"</em> encoding=<em class='bbc'>"UniKS-UCS2-H"</em> /></p><p><encoding font-family=<em class='bbc'>"HYSMyeongJoStd"</em> encoding=<em class='bbc'>"UniKS-UCS2-H"</em> /> </p><p></font-encodings></p><p> </p><p></font></p>
sr894
<p>[font="Arial, 'sans-serif';color:#222222;font-size:10.5pt;"]Hi Micheal,[/font]</p><p></p><p>[font="Arial, 'sans-serif';color:#222222;font-size:10.5pt;"] [/font]</p><p></p><p>[font="Arial, 'sans-serif';color:#222222;font-size:10.5pt;"]Request you to help on the same. Or any Birt Guru your help will be appreciated.[/font]</p><p></p>