Portál AbcLinuxu, 12. května 2025 05:38

Dotaz: Apache FOP + fonty Type 1 + čeština

6.9.2007 12:42 Radek Miček | skóre: 23 | blog: radekm_blog
Apache FOP + fonty Type 1 + čeština
Přečteno: 1711×
Odpovědět | Admin
Dobrý den, používám Apache FOP 0.94 ke generování PDF z XML-FO souborů. Ve svém PDF bych chtěl použít fonty Type1, konkrétně fonty URW Nimbus. Pomocí aplikace PFMReader (ta je součástí FOPu) generuji z PFM souborů XML soubory s metrikami písma.

Nicméně PFMReader vždy a u každého fontu rozpozná kódování WinAnsi a XML soubor s metrikou obsahuje toto špatné kódování, navíc metrika pro některé diakritické znaky chybí nebo je špatná - v tom smyslu, že když v PDF dokumentu je diakritický znak, tak se někdy stane, že přes něj je napsán další znak, jakoby se kurzor vůbec neposunul a napsal znaky na místě.

To, že soubor s písmem obsahuje i diakritické znaky mám ověřeno v programu Font Viewer pro KDE - diakritické znaky se v něm normálně zobrazují.

Následujícím příkazem generuji XML metriku fontu:
java -cp
build/fop.jar:lib/avalon-framework-4.2.0.jar:
lib/commons-logging-1.0.4.jar:lib/commons-io-1.3.1.jar
org.apache.fop.fonts.apps.PFMReader soubor.pfm soubor.xml 
Nevíte někdo náhodou, jak z PFM souboru vygenerovat správnou XML metriku, tj. takovou aby obsahovala všechny diakritické znaky a FOP s ní uměl pracovat?

Případně by mi pomohlo mít fonty URW Nimbus ve formátu TTF - nevíte někdo o nějakém balíčku, který by byl zdarma a obsahoval URW Nimbus v TTF?

Možná by také pomohlo vyměnit FOP za XEP nebo nějaký jiný XML-FO procesor, máte někdo zkušenost s programem XEP? Já XEP jen krátce zkoušel - v nějaké verzi volně ke stažení a on na každou stránku dolů přidával své logo, a to bohužel docela velké, jedná se o nekomerční použití.

Předem děkuji za vaše odpovědi, Radek
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.9.2007 14:35 ivan | skóre: 17 | blog: ivan
Rozbalit Rozbalit vše Re: Apache FOP + fonty Type 1 + čeština
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pamatuju si ze jsem kdysi pouzival komercni verzi XEPu. A cestina v tom fungovala treba se standartnima TTF fontama z windows.

Jo jeste neco. V normalnim PDF(bez kerningu) vlastne ani nemusis resit metriky znaku, pokud pises jen na jednu radku. Kdyz do streamu zapises "a b c", tak budou v PDFku tyhle znaky napsany za sebou a "kurzor" se vzdy posune o sirku pismena plus mezera mezi pismeny. To znamena, ze metriky fontu nemusis resit. Tohle resi az ten kdo to PDF zobrazuje - acroread/xpdf. Teprve pokud tvuj sazeci program podporuje kerning, tak se pridava mezi dve pismena prikaz (myslim ze je to "M"), ktery upravuje adjusment.

Vetsina fontu pro linux je dost tragicka. Driv nez zacnes obvinovat FOP, vyzkousej to same s nejakym fontem pro windows.
6.9.2007 14:52 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Apache FOP + fonty Type 1 + čeština
Se standardníma TTF fontama češtinu zvládne i FOP, ale u FOPu se ke každému fontu musí vygenerovat metrika, buď z TTF souboru nebo u Type1 fontů z PFM souboru.
6.9.2007 15:04 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Apache FOP + fonty Type 1 + čeština
Odpovědět | | Sbalit | Link | Blokovat | Admin
Už jsem to vyřešil, použil jsem Personal verzi XEPu, ta umí češtinu i u fontů Type1, nicméně mi vadí to logo, které tam XEP vkládá, ale co se dá dělat.

Kdyby někdo chtěl využít Type1 fonty u XEPu, přikládám zde patřičnou část konfiguračního souboru, která obsahuje právě nastavení fontů
<font-family name="Courier">
        <font embed="true"><font-data afm="gsfonts/n022003l.afm" pfb="gsfonts/n022003l.pfb" /></font>
        <font weight="bold" embed="true"><font-data afm="gsfonts/n022004l.afm" pfb="gsfonts/n022004l.pfb" /></font>
        <font style="oblique" embed="true"><font-data afm="gsfonts/n022023l.afm" pfb="gsfonts/n022023l.pfb" /></font>
        <font weight="bold" style="oblique" embed="true"><font-data afm="gsfonts/n022024l.afm" pfb="gsfonts/n022024l.pfb" /></font>
</font-family>

<font-family name="Helvetica">
        <font embed="true"><font-data afm="gsfonts/n019003l.afm" pfb="gsfonts/n019003l.pfb" /></font>
        <font weight="bold" embed="true"><font-data afm="gsfonts/n019004l.afm" pfb="gsfonts/n019004l.pfb" /></font>
        <font style="oblique" embed="true"><font-data afm="gsfonts/n019023l.afm" pfb="gsfonts/n019023l.pfb" /></font>
        <font weight="bold" style="oblique" embed="true"><font-data afm="gsfonts/n019024l.afm" pfb="gsfonts/n019024l.pfb" /></font>
</font-family>

<font-family name="Times" ligatures="fi fl">
        <font embed="true"><font-data afm="gsfonts/n021003l.afm" pfb="gsfonts/n021003l.pfb" /></font>
        <font weight="bold" embed="true"><font-data afm="gsfonts/n021004l.afm" pfb="gsfonts/n021004l.pfb" /></font>
        <font style="italic" embed="true"><font-data afm="gsfonts/n021023l.afm" pfb="gsfonts/n021023l.pfb" /></font>
        <font weight="bold" style="italic" embed="true"><font-data afm="gsfonts/n021024l.afm" pfb="gsfonts/n021024l.pfb" /></font>
</font-family>
Nastavení zahrnuje Type1 fonty URW Nimbus, které jsou ve většině distribucí sočástí balíku gsfonts, soubory fontů jsem nakopíroval do složky XEP/fonts/gsfonts, kde složka XEP/fonts je standardní složka XEPu pro fonty
6.9.2007 15:46 ivan | skóre: 17 | blog: ivan
Rozbalit Rozbalit vše Re: Apache FOP + fonty Type 1 + čeština
Jo jeste neco. Ona existuje i sudentska verze XEPu. Takze jestli to nepotrebujes pro komerni vyuziti ... a pokud studujes a podari se ti sehnat nejakej papir s razitkem tak ho muzes odfaxovat a muzes dostat vlastni licenci na XEP. Presny podminky uz si nepamatuju je to dost davno co jsem ten SW kupoval.
6.9.2007 15:53 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Apache FOP + fonty Type 1 + čeština
Ne, pro komercni vyuziti to nepotrebuji a studuji. Budu se o to jeste zajimat. Dekuji za odpovedi
6.9.2007 16:01 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Apache FOP + fonty Type 1 + čeština
Časem možná vyzkouším ještě PassiveTeX.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.