FPDF - 7. leckét, hozzátéve, az új betűtípusok, és támogatja a különböző kódolások

Ma befejezem a szabad fordításban a tanulságot a hivatalos oldalon FPDF könyvtárban. Előző én fordítások:

Ebben a leckében megnézzük, hogyan kell használni a Type1 vagy TrueType, hogy mi jönne nem csak szabványos betűtípusok. Másik jellemzője, hogy meg lehet választani a kódolását, amely lehetővé teszi, hogy ne csak a nyugati, hanem más nyelvek (szabványos betűk túl kevés a rendelkezésre álló karakterek).

Kétféle módon lehet használni egy új betűtípus: beágyazott betűtípusok PDF vagy a dugót. Ha megadott betűtípus nincs beágyazva, akkor keresett a rendszerben. Az előnye, hogy plug-betűtípusok, hogy a PDF-fájl sokkal könnyebb súlya, másrészt, ha ez nem áll rendelkezésre, akkor a normál betűtípus cserélni. Ezért kívánatos, hogy a betűtípus telepítve van a kliens rendszerek. Ha a fájl kell tekinteni nemcsak a helyi számítógépen, feltétlenül helyezze be PDF.

Ha új betűtípus TrueTypes kell tenniük három lépésből áll:

  • Létrehoz mutatókat fájlt (.afm)
  • Létrehoz egy font fájl (.php)
  • Állapítsa meg a betűtípust a script

Generációs metrikus fájl

Vegyük például a betűtípus Comic Sans MS Regular:
ttf2pt1 -a c: \ windows \ fonts \ comic.ttf képregény

Ezzel az eszközzel hoz létre két fájlt amelyek közül az egyik egy kiterjesztésű fájl .afm ténylegesen szüksége van ránk.

Fájlgenerálási meghatározására font

A második lépés, hogy hozzon létre egy PHP fájlt, amely tartalmazza az összes szükséges információt az FPDF. Annak érdekében, hogy ezt, a könyvtár font / makefont találhat további script a fale makefont.php. amely az alábbi funkciókat tartalmazza:
MakeFont (string fontfile, karakterlánc afmfile [, string ENC [, array tapasz [, string típusú]]])

Értékek amely elfogadja a módszer, mint paraméterek:

  • fontfile - Az útvonal a kiterjesztésű fájl .ttf vagy .pfb.
  • afmfile - Az útvonal a fájl kiterjesztését .afm.
  • ENC - A név a használt kódolás. Alapértelmezett cp1252.
  • tapasz - További kapcsolódó változtatásokat kódolást. Az alapértelmezett üres.
  • típusú - írja a betűtípus (TrueType vagy Type1). Alapértelmezett TrueType.

Az első paraméter nevének kell lennie, és utat a font. Extension kell .ttf vagy .pfb. Ha van egy Type1 font ASCII formátumban kiterjesztésű .pfa, akkor konvertálni a bináris formátumban t1utils segédprogramot.

AFM korábban generált fájl

Kódolás meghatározza a kapcsolat egy kódot (0-tól 255) és a karakter. Az első 128 rögzítettek, és megfelelnek az ASCII, míg a következő változó. Encodings tárolják .map fájlokat. Kódolások a következők:

  • CP1250 (Közép-Európa)
  • cp1251 (cirill)
  • cp1252 (Nyugat-Európa)
  • cp1253 (görög)
  • cp1254 (török)
  • cp1255 (Hebrew)
  • cp1257 (Baltic)
  • cp1258 (vietnámi)
  • cp874 (thai)
  • ISO-8859-1 (Nyugat-Európa)
  • ISO-8859-2 (Közép-Európa)
  • ISO-8859-4 (Baltic)
  • ISO-8859-5 (Cirill)
  • ISO-8859-7 (görög)
  • ISO-8859-9 (török)
  • ISO-8859-11 (thai)
  • ISO-8859-15 (Nyugat-Európa)
  • ISO-8859-16 (Közép-Európa)
  • KOI8-R (orosz)
  • KOI8-U (ukrán)

A font választhat tartalmaznia kell a megfelelő karaktereket a kiválasztott kódolásban.
Különleges esetekben, amikor a betűtípus karakterek nem betűket, mint például a Symbol vagy ZapfDingbats, meg kell, hogy adja át egy üres karakterlánc.
Kódolások kezdődnek, CP használják a Windows. Linux rendszerek általában az ISO.
Megjegyzés. szabvány fontoké cp1252 kódolást.

A negyedik paraméter megadja a lehetőséget, hogy változtassa meg a kódolást. Néha akkor is hozzá néhány karaktert. Például ISO-8859-1 nem tartalmazza az euró szimbóluma. Hozzáadásához azt egy olyan helyzetbe 164, pass - array (164 => 'Euro').

Az utolsó paraméter továbbítására használjuk a betűtípust, ha az nincs beépítve (azaz, ha az első paraméter üres).

Miután kitöltötte az összes paramétert a funkció, akkor hozzon létre egy új fájlt csatlakoztatja a makefont.php, vagy egyszerűen csak hozzá függvényhívás közvetlenül a fő fájl. Miután a függvény végrehajtása több fájlt hoz létre: .php és .afm. Akkor nevezd át a fájlt, ha akarja. Ezen túlmenően, a script létrehoz egy fájlt a .Z, amely egy sűrített (kivéve azokat az eseteket, amikor a tömörítés funkció nem elérhető, ehhez Zlib). Akkor nevezd is, de ebben az esetben meg kell változtatni a változó $ fájlt a .php fájlt egy megfelelő nevet.

A fenti példa létrehoz két fájlt: comic.php és comic.z.

Amikor megkapja ezeket a fájlokat, akkor le kell másolni a könyvtár betűtípusokat. Ha a betűtípus fájl nem fogást majd másolja a kiterjesztésű fájlok .ttf vagy .pfb. ahelyett, hogy a .z.

Az utolsó lépés a legegyszerűbb. Csak azt kell hívni AddFont () metódust. Például:

Kódolás ISO-8859-1 elterjedt, de nem tartalmazza az euró jele. Ha szükség van rá, a legegyszerűbb dolog, amit tehetünk, használat cp1252 vagy ISO-8859-15 helyett kódolás, mert szinte azonos, de tartalmazzák az értékes jelképe.
Ahelyett, hogy az ISO-8859-2, akkor az ISO-8859-16, de ez a kódolás tartalmaz sok különbség. Így könnyebb ide, hogy a karakterkódolást a fent leírtak szerint. Ugyanez igaz más kódolásokat.

Csatlakozás a Windows betűtípusok

Ha a betűtípus kiválasztott nem áll rendelkezésre egy adott stílus, a Windows képes csatlakoztatni a rendszeres változata. Például, van Comic Sans MS dőlt, de építhető Comic Sans MS Regular. Ez a funkció használható a PDF-fájlban, de sajnos megköveteli, hogy a rendszeres font van jelen a rendszerben. Itt van, hogyan kell csinálni:

  • Hozzon létre egy fájlt, hogy meghatározza a normál betűtípus mellékletek nélkül (is nevezhetjük, hogy tükrözze a kívánt stílus)
  • Nyisd ki, és adjunk a változó $ name után vesszőt a kívánt stílust (dőlt, félkövér vagy Bold)

Például comici.php ez a fájl így fog kinézni:

Akkor tudod használni, mint egy normál font:

Méretének csökkentése TrueType betűtípusok

A betűtípus fájlok gyakran igen terjedelmes méretű (több mint 100, és még 200 KB), annak a ténynek köszönhető, hogy a bennük található szimbólumok, amelyek megfelelnek a sok kódolást. Zlib tömörítés csökkenti őket, de továbbra is meglehetősen nagy. Mégis van egy technika, amely segít tovább csökkentik. A technika lényege, hogy a Type1 font átalakítás segítségével ttf2pt1 kell adni a kódolást, hogy szükség van, és az összes megfelelő karaktereket más kódolásokat figyelmen kívül hagyja.
Például a betűtípus arial.ttf szállított Windows 98 súlya 267KB (ez tartalmazza 1296 karakter). Miután tömörítés 147. Nézzük átalakítani, hogy Type1, miközben csak a szükséges karakter kódoláshoz CP1250:
ttf2pt1 -b -L cp1250.map c: \ windows \ fonts \ arial.ttf Arial

.map fájlok találhatók a betűtípus / makefont / könyvtárban. Ha a parancs létrehoz néhány fájlt, beleértve: arial.pfb és arial.afm. Fájl Súly arial.pfb tömörítés előtt volt 35KB, 30KB és után.

Akkor még tovább mennek. Ha érdekel csak bizonyos jelképek összesen 217 karakter, akkor nyissa meg a fájlt a kiterjesztés .map, és távolítsa el a nem kívánt sorokat, illetve, hogy csökkenteni fogja a fájlt súlyát.

Jó szerencse, hogy használja!

Kedves Michael! Köszönöm szépen. Azt kell, hogy létrehoz egy fájlt a dokumentumot. amelyet megküld a jelentés az intézet, és ezzel egyidejűleg be az adatbázisba, az összes adatot a jelentés egy konferencián munkatársaink.
Beletelt pdflib - minden világos, de mi a helyzet az orosz nyelvet.
Miután talált egyértelmű választ.
Most próbálom eredményeként jönnek St. Petersburg, amit megtehetsz otthon.
Veronica Nikolaevna - vezető oldalon és adatbázis Fizikai-Műszaki Intézet RAS.

Guman Veronica. mindig szívesen segít. Ha én Szentpéterváron megpróbálom hozzád.

Guman Veronica. ahogy amit leírt a cikkben FPDF - Könyvtár a PDF-fájlokat a PHP nem egy probléma. Be kell használni egy módosított Furse FPDF - tFPDF. Megtalálható a hivatalos oldalon FPDF, a Scripts részben.