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 180
 cor4:app:objects:cooxmlprinter [Cor4 WIki]

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

  • 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

BackgroundImage

bool backgroundimage(CImage im, int left, int top, int width, int height)

A megadott 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 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 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 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 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 ini fájlban.

SetPaperSize

void setpapersize(int papersize_const)

A metódus a megadott 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…:)

cor4/app/objects/cooxmlprinter.txt · Last modified: 2021/01/05 11:39 (external edit)