Strict Standards: Declaration of action_plugin_importoldindex::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/importoldindex/action.php on line 8
Strict Standards: Declaration of action_plugin_popularity::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/popularity/action.php on line 57
Strict Standards: Declaration of action_plugin_safefnrecode::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/safefnrecode/action.php on line 66
Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/importoldchangelog/action.php on line 182
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/lib/plugins/importoldindex/action.php:8) in /var/www/html/inc/actions.php on line 607
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/lib/plugins/importoldindex/action.php:8) in /var/www/html/inc/actions.php on line 607
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/lib/plugins/importoldindex/action.php:8) in /var/www/html/inc/actions.php on line 607
====== 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 [[http://www.openoffice.org|OpenOffice]] által használt (zip) fájlból a ''content.xml'' és ''styles.xml'' fájlokat használja fel a megjelenítéshez.
===== TODO =====
* 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 [[cor4:app:cor4app.ini|ini]] fájlban definiált nyomtatók közül [[cor4:app:printer_select|választhatunk]].
===== Metódusok =====
==== BackgroundImage ====
''bool backgroundimage(CImage im, int left, int top, int width, int height)''
A megadott [[cor4:app:objects:cimage|képet]] a ''left'', ''top'' bal felső sarokkal és ''width'', ''height'' szélességgel illetve magassággal a nyomtatás hátterébe rakja. A méreteket század milliméterben kell megadni.
==== LinkImage ====
''bool linkimage(string name, CImage im, int width, int height)''
A ''name'' paraméterben megadott szöveget lecserélni az ''im'' paraméterben definiált [[cor4:app:objects:cimage|képre]]. A kép szélességét és magasságát a ''width'' és a ''height'' paraméterekben adhatjuk meg század milliméterben (tehát az 1000-es érték jelenti az 1cm-t)
A csere csak abban az esetben történik meg, ha a szöveg önmagában áll, azaz abban a sorban az az egyetlen megjelenítendő dolog. A paragrafus rendezése hat a kép rendezésére is.
==== Print ====
''int 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.
A visszatérési érték a létrehozott nyomtatási nézet ''printid'' értéke (amit a [[#PrintTo]] metódusban használhatunk fel) illetve **NULL**, ha az [[cor4:app:cor4app.ini|ini fájlban]] nincs engedélyezve a nyomtatási nézet.
==== PrintModal ====
''int printmodal(array vars [,array3d tables = null [, boolean landscape = false]])''
Csak annyiban tér el a ''print'' metódustól, hogy megvárja míg a nyomtatási nézet ablakod bezárják (ha az [[cor4:app:cor4app.ini|ini-ben]] nem tiltottuk le). A visszatérési érték a kinyomtatott példányszám.
==== PrintTo ====
''void printto(int printid, array vars [,array3d tables = null [, boolean landscape = false]])''
A megadott ''printid''-jű nyomtatási nézethez hozzáadja az itt megadott nyomtatást. A további paraméterek teljesen megegyeznek a [[#Print]] metódusnál leírtakkal.
Ha a megadott ''printid''-vel nem létezik nyomtatási nézet, akkor létrehoz egyet (ennek nem kapjuk vissza az azonosítóját, ezért nem tudunk rá további lapokat nyomtatni). Ennek mellékhatása, hogy ha a ''printid'' olyan értéket tartalmaz, ami soha nem létezhet (pl: **-1**), akkor mindig új nyomtatási nézet jön létre, függetlenül attól, hogy milyen beállítás van az [[cor4:app:cor4app.ini#display1|ini fájlban]].
==== PrintToPage ====
''void printto(int printid, array vars [,array3d tables = null [, boolean landscape = false]])''
A megadott ''printid''-jű nyomtatási nézet utolsó lapja után fűzi az itt megadott nyomtatást. A további paraméterek teljesen megegyeznek a [[#Print]] metódusnál leírtakkal.
Ha a megadott ''printid''-vel nem létezik nyomtatási nézet, akkor létrehoz egyet (ennek nem kapjuk vissza az azonosítóját, ezért nem tudunk rá további lapokat nyomtatni). Ennek mellékhatása, hogy ha a ''printid'' olyan értéket tartalmaz, ami soha nem létezhet (pl: **-1**), akkor mindig új nyomtatási nézet jön létre, függetlenül attól, hogy milyen beállítás van az [[cor4:app:cor4app.ini#display1|ini fájlban]].
==== SetPaperSize ====
''void setpapersize(int papersize_const)''
A metódus a megadott [[cor4:app:consts|konstansnak]] megfelelően beállítja a nyomtató lapméretét. Amennyiben a megadott méretű lapot a nyomtató nem képes kezelni, akkor a nyomtató default lapméretét alkalmazza.
==== 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...:)