This is an old revision of the document!
COOXMLPrinter
Ez az osztály is a nyomtatást teszi lehetővé a CPDFExporter osztályhoz hasonlóan. A működése az említetthez hasonló azzal a különbséggel, hogy az OpenOffice által használt (zip) fájlból a content.xml és styles.xml fájlokat használja fel a megjelenítéshez.
TODO
- példányszám a nyomtatásra
- paragrafuson belüli stílus-váltások kezelése
- fejléc ismétlése, ha a táblázat átlóg a következő oldalra
konstruktor
COOXMLPrinter(string xmlfile [, string stylefile=”” [, string printer=“print1”]])
A megadott xmlfile-t veszi alapul a nyomtatáskor, mint content.xml sablont. Amennyiben a stylefile paraméter nem üres sztring, akkor azt a fájlt is felolvassa, mint styles.xml fájlt. A printer paraméterrel az ini fájlban definiált nyomtatók közül választhatunk.
Metódusok
void print(array vars [,array3d tables = null [, boolean landscape = false]])
A nyomtató metódus.
A vars tömbnek kulcs-érték párokat kell tartalmaznia, ahol a kulcs és az érték is szöveges és eredményeképpen a dokumentumban előforduló összes kulcs-ot érték-re cseréli (a csere kisbetű/nagybetű érzékeny). Érdemes valamilyen módon ezeket a kulcs-okat kiemelni a dokumentumból (pl: %%%kulcs, __kulcs__, stb.), de erre nincs megkötés.
A tables tömb tartalmazza a dinamikus tömbökhöz szükséges adatokat. Az első kulcs tartalmazza a táblázat nevét, majd ez alatt egy két dimenziós tömbben az adatokat.
A landscape paraméter true értéke esetén a kinyomtatott oldal fekvő lesz, ellenkező esetben álló (ez az alapérték is). Ha csak a landscape paramétert szeretnénk megadni és nincs szükségünk a tables paraméterre, akkor a tables paraméternek adjunk null értéket.
SetTable
void settable(string tablename, array2d values)
A metódus táblázat sokszorosítására használható.
Az első paraméter (tablename) a sokszorositandó táblázat neve. A második paraméter (values) egy 2D-s tömb, az első kulcs a táblázatot azonosítja, a második kulcs pedig a táblázatban kicserélendő szöveget, és ezen kulcs alatt szerepel az a string amire cserélni kell a második kulcsot.
Ime egy egyszerű példa:
$pr->SetTable('table', array( array('#name#' => 'Géza', '#identity#' => 'Fiú'), array('#name#' => 'Sára', '#identity#' => 'Lány') ) );
A table nevű táblázatból két példányt készít, majd az első táblázatban a #name# szöveget “Géza”-ra, az #identity# szöveget “Fiú”-ra, a másodikban a #name# szöveget “Sára”-ra, az #identity# szöveget “Lány”-ra cseréli.
Jótanácsok
- A mértékegységet célszerű átállítani “cm”-re, mert egyenlőre csak ezt a mértékegységet kezeli (Tools/Options…/Text Document/General/Settings/Measurement unit)
- A behelyettesítendő szövegeket érdemes valamilyen ritkán használt, speciális jelek közé tenni, (pl.:
###text###vagy@@@text@@@), azért hogy véletlenül se helyettesítsünk a dokumentumban olyan részeket, amiket nem volt szándékunkban…:)