diff options
Diffstat (limited to 'examples/fo/advanced/cid-fonts.fo')
-rw-r--r-- | examples/fo/advanced/cid-fonts.fo | 450 |
1 files changed, 450 insertions, 0 deletions
diff --git a/examples/fo/advanced/cid-fonts.fo b/examples/fo/advanced/cid-fonts.fo new file mode 100644 index 000000000..90ce3c952 --- /dev/null +++ b/examples/fo/advanced/cid-fonts.fo @@ -0,0 +1,450 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE fo:root [ +<!ENTITY nbsp " "> +]> +<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" + xmlns:fox="http://xml.apache.org/fop/extensions"> + <fo:layout-master-set> + <fo:simple-page-master page-width="21cm" page-height="29.7cm" master-name="A4"> + <fo:region-body margin-bottom="1.5cm" margin-right="2cm" margin-left="2cm" margin-top="1.5cm"/> + </fo:simple-page-master> + </fo:layout-master-set> + + + <fox:outline internal-destination="sec0"> + <fox:label>Adding Fonts to FOP</fox:label> + </fox:outline> + + <fox:outline internal-destination="sec1"> + <fox:label>Adding additional Type 1 fonts</fox:label> + + <fox:outline internal-destination="sec1-1"> + <fox:label>Generating a font metrics file</fox:label> + </fox:outline> + <fox:outline internal-destination="sec1-2"> + <fox:label>Register the fonts within FOP</fox:label> + </fox:outline> + </fox:outline> + + <fox:outline internal-destination="sec2"> + <fox:label>Adding additional TrueType fonts</fox:label> + + <fox:outline internal-destination="sec2-1"> + <fox:label>Generating a font metrics file</fox:label> + </fox:outline> + <fox:outline internal-destination="sec2-2"> + <fox:label>TrueType collections</fox:label> + </fox:outline> + <fox:outline internal-destination="sec2-3"> + <fox:label>Register the fonts within FOP</fox:label> + </fox:outline> + + </fox:outline> + + <fox:outline internal-destination="sec3"> + <fox:label>Embedding fonts in the PDF</fox:label> + </fox:outline> + + <fox:outline internal-destination="sec4"> + <fox:label>Example embedding MSGothic</fox:label> + + <fox:outline internal-destination="sec4-1"> + <fox:label>Setup CLASSPATH</fox:label> + </fox:outline> + + <fox:outline internal-destination="sec4-2"> + <fox:label>Create the metrics file</fox:label> + </fox:outline> + + <fox:outline internal-destination="sec4-3"> + <fox:label>Edit msgothic.xml</fox:label> + </fox:outline> + + <fox:outline internal-destination="sec4-4"> + <fox:label>Register the font with FOP</fox:label> + </fox:outline> + </fox:outline> + + <fox:outline internal-destination="sec5"> + <fox:label>Japanese Examples</fox:label> + </fox:outline> + + + <fo:page-sequence master-reference="A4"> + + <fo:flow flow-name="xsl-region-body"> + <fo:wrapper font-family="Times" font-size="12pt" text-align="justify"> + <fo:block id="sec0" + text-align="center" + font-family="Helvetica" + font-weight="bold" + font-size="18pt" + color="#0050B2" space-after.optimum="6pt"> + Adding Fonts to FOP + </fo:block> + + <fo:block space-after.optimum="6pt"> + When building PDF files, FOP normally supports only the base 14 font + package defined in the Adobe PDF specification. That includes the + following fonts: Helvetica, Times, Courier, Symbol and ZapfDingbats. + </fo:block> + + <fo:block space-after.optimum="6pt"> + Font support in FOP can be extended by the addition of font metric + files (written in XML) created from Adobe Type 1 fonts and Truetype + fonts. No other font types (Type 3, etc.) are supported at this time. + </fo:block> + + <fo:block id="sec1" + font-family="Helvetica" + font-weight="bold" + font-size="14pt" + color="#0050B2" + space-after.optimum="6pt" + space-before.optimum="12pt"> + Adding additional Type 1 fonts + </fo:block> + + <fo:block space-after.optimum="6pt" > + As mentioned above you need an XML file containing font metrics to + be able to use an additional font. FOP contains a tool that can generate + such a font metrics file from a PFM file, which normally comes with the + font file. + </fo:block> + + <fo:block id="sec1-1" + font-family="Helvetica" + font-weight="bold" + space-after.optimum="6pt" + space-before.optimum="12pt" > + Generating a font metrics file + </fo:block> + + <fo:block space-after.optimum="6pt" > + Run the class <fo:inline font-family="Courier">org.apache.fop.fonts.apps.PFMReader</fo:inline> + to generate the XML file. + <fo:block font-family="Courier" font-size="10pt" + space-before.optimum="6pt" space-after.optimum="6pt" margin-left="6pt" text-align="start"> + java org.apache.fop.fonts.apps.PFMReader pfm-file xml-file + </fo:block> + </fo:block> + + <fo:block space-after.optimum="6pt" margin-left="6pt"> + Note: The tool will construct some values (FontBBox, StemV and ItalicAngle) based + on assumptions and calculations which are only an approximation to the real values. + FontBBox and Italic Angle can be found in the human-readable part of the PFB file. + The PFMReader tool does not yet interpret PFB files, so if you want to be correct, + you may have to adjust the values in the XML file manually. The constructed values + however appear to have no visible influence. + </fo:block> + + + <fo:block id="sec1-2" + font-family="Helvetica" + font-weight="bold" + space-after.optimum="6pt" + space-before.optimum="12pt" > + Register the fonts within FOP + </fo:block> + + <fo:block space-after.optimum="6pt"> + Edit conf/userconfig.xml and add entries for the font if the fonts section, ie: + <fo:block font-family="Courier" font-size="10pt" + space-before.optimum="6pt" + white-space-collapse="false" margin-left="6pt" text-align="start"> +<![CDATA[ +<font metrics-file="cyberbit.xml" kerning="yes" embed-file="C:\WINNT\Fonts\Cyberbit.ttf"> + <font-triplet name="Cyberbit" style="normal" weight="normal"> +</font>]]></fo:block> + </fo:block> + + + <fo:block id="sec2" + font-family="Helvetica" + font-weight="bold" + font-size="14pt" + color="#0050B2" + space-after.optimum="6pt" + space-before.optimum="12pt"> + Adding additional TrueType fonts + </fo:block> + + <fo:block space-after.optimum="6pt"> + Adding Truetype fonts is almost identical to the process of adding type 1 fonts. + The main difference is in the first step. + </fo:block> + + <fo:block id="sec2-1" + font-family="Helvetica" + font-weight="bold" + space-after.optimum="6pt" + space-before.optimum="12pt" > + Generating a font metrics file + </fo:block> + + <fo:block space-after.optimum="6pt"> + As mentioned above you need an XML file containing font metrics to be able to use + an additional font. FOP contains a tool that can generate such a font metrics file + from your truetype font file. + </fo:block> + + <fo:block space-after.optimum="6pt"> + Create metrics for the fontfile. We'll use MS Gothic as an example: + + <fo:block font-family="Courier" font-size="10pt" + space-before.optimum="6pt" space-after.optimum="6pt" margin-left="6pt" text-align="start"> + java org.apache.fop.fonts.apps.TTFReader C:\WINNT\Fonts\msgothic.ttf msgothic.xml + </fo:block> + </fo:block> + + <fo:block id="sec2-2" + font-family="Helvetica" + font-weight="bold" + space-after.optimum="6pt" + space-before.optimum="12pt" > + TrueType collections + </fo:block> + + <fo:block space-after.optimum="6pt"> + TrueType collections (.ttc files) contains more than one font. To create metrics + for a ttc file you must specify the font in the collection with the -ttcname + option to TTFReader. + </fo:block> + + <fo:block space-after.optimum="6pt"> + To get a list of the fonts in a collection, just start the TTFReader as if it + were a normal truetype file (without the -ttcname option). It will then display + all the font names and exit with an Exception. + </fo:block> + + <fo:block space-after.optimum="6pt"> + Example on generating metrics for a .ttc file: + <fo:block font-family="Courier" font-size="10pt" + space-before.optimum="6pt" space-after.optimum="6pt" margin-left="6pt" text-align="start"> + java org.apache.fop.fonts.apps.TTFReader -ttcname "MS Mincho" msmincho.ttc msminch.xml + </fo:block> + </fo:block> + + <fo:block id="sec2-3" + font-family="Helvetica" + font-weight="bold" + space-after.optimum="6pt" + space-before.optimum="12pt" > + Register the fonts within FOP + </fo:block> + + <fo:block space-after.optimum="6pt"> + Same as for <fo:basic-link internal-destination="sec1-2" color="blue"> + <fo:inline text-decoration="underline">Type 1 fonts</fo:inline></fo:basic-link>. + </fo:block> + + + <fo:block id="sec3" + font-family="Helvetica" + font-weight="bold" + font-size="14pt" + color="#0050B2" + space-after.optimum="6pt" + space-before.optimum="12pt"> + Embedding fonts + </fo:block> + + <fo:block space-after.optimum="6pt"> + Font embedding is enabled in the userconfig.xml file. Start Fop with -c userconfig.xml + </fo:block> + + + <fo:block id="sec4" + font-family="Helvetica" + font-weight="bold" + font-size="14pt" + color="#0050B2" + space-after.optimum="6pt" + space-before.optimum="12pt"> + Example embedding MSGothic + </fo:block> + + <fo:block space-after.optimum="6pt"> + This example will use the Microsoft Gothic TrueType font. This is the font used to render this examples + given in the last section of this file. If you don't have it installed, + you can download an installer at <fo:basic-link color="blue" + external-destination="ftp://ftp.cc.monash.edu.au/pub/nihongo/ie3lpkja.exe"> + <fo:inline text-decoration="underline">ftp://ftp.cc.monash.edu.au/pub/nihongo/ie3lpkja.exe</fo:inline> + </fo:basic-link>. + </fo:block> + + <fo:block id="sec4-1" + font-family="Helvetica" + font-weight="bold" + space-after.optimum="6pt" + space-before.optimum="12pt"> + Setup your classpath to run FOP: + </fo:block> + <fo:block font-family="Courier" font-size="10pt" + space-before.optimum="6pt" + white-space-collapse="false" margin-left="6pt" text-align="start"> +C:\Fop-0.18.1> set CLASSPATH=fop.jar;lib\xerces-1.2.3.jar;lib\xalan-2.0.0.jar;lib\batik.jar + </fo:block> + + + <fo:block id="sec4-2" + font-family="Helvetica" + font-weight="bold" + space-after.optimum="6pt" + space-before.optimum="12pt"> + Create the metrics file: +</fo:block> + + <fo:block font-family="Courier" font-size="10pt" + space-before.optimum="6pt" + white-space-collapse="false" margin-left="6pt" text-align="start"> +C:\Fop-0.18.1> java org.apache.fop.fonts.apps.TTFReader c:\WINNT\Fonts\msgothic.ttf msgothic.xml +TTF Reader v1.1.1 + +Reading /home/camk/cjkv/msgothic.ttf... + +Number of glyphs in font: 13104 +Postscript format 3 +Creating xml font file... + +Creating CID encoded metrics +Writing xml font file msgothic.xml... + +This font contains no embedding license restrictions + + </fo:block> + + + <fo:block id="sec4-3" + font-family="Helvetica" + font-weight="bold" + space-after.optimum="6pt" + space-before.optimum="12pt"> + Edit the msgothic.xml file and set the <fo:inline font-family="Courier">font-name</fo:inline> + to "MSGothic". + </fo:block> + + <fo:block id="sec4-4" + font-family="Helvetica" + font-weight="bold" + space-after.optimum="6pt" + space-before.optimum="12pt"> + Edit conf/userconfig.xml and add the following to the <fonts> section: + </fo:block> + + <fo:block font-family="Courier" font-size="10pt" + space-before.optimum="6pt" + white-space-collapse="false" margin-left="6pt" text-align="start"> +<![CDATA[ +<font metrics-file="msgothic.xml" kerning="yes" + embed-file="C:\WINNT\Fonts\msgothic.ttf"> + <font-triplet name="MSGothic" style="normal" weight="normal"/> +</font> +]]> + </fo:block> + + <fo:block space-after.optimum="6pt"> + Now you can use MSGothic in your .fo files by setting font-family="MSGothic". You'll need to + start FOP specifying the config file as in this example: + <fo:block font-family="Courier" font-size="10pt" + space-before.optimum="6pt" + white-space-collapse="false" margin-left="6pt" text-align="start" +>java -jar fop.jar -c conf/userconfig.xml -fo myfo.fo -pdf mypdf.pdf</fo:block> + </fo:block> + + <fo:block id="sec5" + font-family="Helvetica" + font-weight="bold" + font-size="14pt" + color="#0050B2" + space-after.optimum="6pt" + space-before.optimum="12pt"> + Examples from <fo:basic-link color="blue" external-destination="http://www.csse.monash.edu.au/~jwb/j_jmdict.html"> + <fo:inline text-decoration="underline">JMDict</fo:inline></fo:basic-link> Japanese glossary: + </fo:block> + +</fo:wrapper> + <fo:table> + <fo:table-column column-width="50mm"/> + <fo:table-column column-width="50mm"/> + <fo:table-column column-width="50mm"/> + <fo:table-header> + <fo:table-row> + <fo:table-cell ><fo:block font-weight="bold" font-family="Helvetica">Japanese (kanji or kanadzukai)</fo:block></fo:table-cell> + <fo:table-cell ><fo:block font-weight="bold" font-family="Helvetica">English</fo:block></fo:table-cell> + <fo:table-cell ><fo:block font-weight="bold" font-family="Helvetica">German</fo:block></fo:table-cell> + </fo:table-row> + </fo:table-header> + <fo:table-body> + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">うん</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>"yeah" or "uh huh"</fo:block></fo:table-cell> + <fo:table-cell ><fo:block></fo:block></fo:table-cell> + </fo:table-row> + + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">アウタースペース</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>outer space</fo:block></fo:table-cell> + <fo:table-cell ><fo:block></fo:block></fo:table-cell> + </fo:table-row> + + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">スペースクラフト</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>spacecraft</fo:block></fo:table-cell> + <fo:table-cell ><fo:block></fo:block></fo:table-cell> + </fo:table-row> + + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">スペースシャトル</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>space shuttle</fo:block></fo:table-cell> + <fo:table-cell ><fo:block></fo:block></fo:table-cell> + </fo:table-row> + + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">著わす</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>"to write", "to publish"</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>veröffentlichen</fo:block></fo:table-cell> + </fo:table-row> + + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">電子出版</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>electronic publishing</fo:block></fo:table-cell> + <fo:table-cell ><fo:block></fo:block></fo:table-cell> + </fo:table-row> + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">五輪</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>the Olympics</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>Olympische Spiele</fo:block></fo:table-cell> + </fo:table-row> + + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">空港</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>airport</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>Flughafen</fo:block></fo:table-cell> + </fo:table-row> + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">チューリッヒ</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>Zurich</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>Zürich</fo:block></fo:table-cell> + </fo:table-row> + + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">コロラド</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>Colorado</fo:block></fo:table-cell> + <fo:table-cell ><fo:block></fo:block></fo:table-cell> + </fo:table-row> + + <fo:table-row> + <fo:table-cell ><fo:block font-family="MSGothic">コロラドスプリングス</fo:block></fo:table-cell> + <fo:table-cell ><fo:block>Colorado Springs</fo:block></fo:table-cell> + <fo:table-cell ><fo:block></fo:block></fo:table-cell> + </fo:table-row> + + + </fo:table-body> + </fo:table> + +</fo:flow> + +</fo:page-sequence> +</fo:root> |