| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 20192 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.service.livedocx">
- <title>Zend_Service_LiveDocx</title>
- <sect2 id="zend.service.livedocx.introduction">
- <title>Einführung in LiveDocx</title>
- <para>
- LiveDocx ist ein <acronym>SOAP</acronym> Service der es Entwicklern erlaubt Word
- Dokumente zu erstellen indem strukturierte Daten von PHP mit einem Template kombiniert
- werden, die in einer Word Bearbeitung erstellt wurden. Das resultierende Dokument kann
- als <acronym>PDF</acronym>, <acronym>DOCX</acronym>, <acronym>DOC</acronym>,
- <acronym>HTML</acronym> oder <acronym>RTF</acronym> Datei gespeichert werden. LiveDocx
- implementiert <ulink url="http://en.wikipedia.org/wiki/Mail_merge">mail-merge</ulink>
- in PHP.
- </para>
- <para>
- Die Familie der <classname>Zend_Service_LiveDocx</classname> Komponenten bietet ein
- klares und einfaches Interface zur <ulink url="http://www.livedocx.com">LiveDocx
- API</ulink> und bietet zusätzlich Funktionalitäten um die Geschwindigkeit im
- Netzwerk zu erhöhen.
- </para>
- <para>
- Wenn man, zusätzlich zu diesem Kapitel des Handbuchs, daran interessiert ist mehr
- über <classname>Zend_Service_LiveDocx</classname> und das dahinterliegende
- <acronym>SOAP</acronym> Service LiveDocx zu lernen, kann man bei den folgenden
- Ressourcen nachsehen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Mitgelieferte Beispielanwendungen</emphasis>. Es gibt eine große
- Anzahl an Beispielanwendungen im Verzeichnis
- <emphasis>/demos/Zend/Service/LiveDocx</emphasis> der Zend Framework
- Distributiondatei, oder der Trunk Version die vom standardmäßigen SVN
- repository ausgecheckt werden kann. Diese sind dazu gedacht schnell, in nur
- ein paar Minuten, mit <classname>Zend_Service_LiveDocx</classname> zurecht zu
- kommen.
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://www.phplivedocx.org/">
- <classname>Zend_Service_LiveDocx</classname> Blog und Webseite</ulink>.
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://www.livedocx.com/pub/documentation/api.aspx">
- LiveDocx SOAP API Dokumentation</ulink>.
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="https://api.livedocx.com/1.2/mailmerge.asmx?wsdl">
- LiveDocx WSDL</ulink>.
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="https://www.livedocx.com/">LiveDocx Blog und Webseite</ulink>.
- </para>
- </listitem>
- </itemizedlist>
- <sect3 id="zend.service.livedocx.account">
- <title>Für einen Account anmelden</title>
- <para>
- Bevor man damit beginnt LiveDocx zu verwenden muss man sich zuerst für einen Account
- <ulink
- url="https://www.livedocx.com/user/account_registration.aspx">anmelden</ulink>.
- Der Account ist komplett kostenlos, und mann muss nur einen
- <emphasis>Benutzernamen</emphasis>, ein <emphasis>Passwort</emphasis> und eine
- <emphasis>E-Mail Adresse</emphasis> spezifizieren. Die Anmeldedaten werden mit der
- Email Adresse verknüpft, welche man angibt, deshalb sollte man vorsichtig tippen.
- </para>
- </sect3>
- <sect3 id="zend.service.livedocx.templates-documents">
- <title>Templates und Dokumente</title>
- <para>
- LiveDocx unterscheidet zwischen den folgenden Ausdrücken: 1)
- <emphasis>Template</emphasis> und 2) <emphasis>Dokument</emphasis>. Um die
- Dokumentation und auch die aktuelle API vollständig zu verstehen, ist es wichtig
- das jeder Programmierer der LiveDocx ausliefert, den Unterschied versteht.
- </para>
- <para>
- Der Ausdruck <emphasis>Template</emphasis> wird verwendet um auf eine Eingabedatei
- zu verweisen, die in einem Word Prozessor erstellt wurde, und Formatierungen sowie
- Textfelder enthält. Man kann ein <ulink
- url="http://www.phplivedocx.org/wp-content/uploads/2009/01/license-agreement-template.docx">Beispieltemplate</ulink>
- downloaden, welches als <acronym>DOCX</acronym> Datei gespeichert ist. Der Ausdruck
- <emphasis>Dokument</emphasis> wird verwendet um auf eine Ausgabedatei zu verweisen
- welche die Templatedatei enthält, zusammen mit Daten - z.B. das fertiggestellte
- Dokument. Man kann ein <ulink
- url="http://www.phplivedocx.org/wp-content/uploads/2009/01/license-agreement-document.pdf">Beispieldokument</ulink>
- downloaden, welches als <acronym>PDF</acronym> Datei gespeichert ist.
- </para>
- </sect3>
- <sect3 id="zend.service.livedocx.formats">
- <title>Unterstützte Dateiformate</title>
- <para>
- LiveDocx unterstützt die folgenden Dateiformate:
- </para>
- <sect4 id="zend.service.livedocx.formats.template">
- <title>Template Dateiformate (Eingabe)</title>
- <para>
- Templates können in jedem der folgenden Dateiformate gespeichert werden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/Office_Open_XML">DOCX</ulink> -
- Office Open <acronym>XML</acronym> Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/DOC_(computing)">DOC</ulink> -
- Microsoft Word <acronym>DOC</acronym> Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/Rich_Text_Format">RTF</ulink> -
- Rich Text Dateiformat
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://www.textcontrol.com/">TXD</ulink> - TX Text Control
- Format
- </para>
- </listitem>
- </itemizedlist>
- </sect4>
- <sect4 id="zend.service.livedocx.formats.document">
- <title>Dokument Dateiformate (Ausgabe):</title>
- <para>
- Das resultierende Dokument kann in jedem der folgenden Dateiformate gespeichert
- werden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/Office_Open_XML">DOCX</ulink> -
- Office Open <acronym>XML</acronym> Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/DOC_(computing)">DOC</ulink> -
- Microsoft Word <acronym>DOC</acronym> Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/Xhtml">HTML</ulink> -
- <acronym>XHTML</acronym> 1.0 Transitional Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/Rich_Text_Format">RTF</ulink> -
- Rich Text File Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink
- url="http://en.wikipedia.org/wiki/Portable_Document_Format">PDF</ulink>
- - Acrobat Portable Document Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://www.textcontrol.com/">TXD</ulink> - TX Text Control
- Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/Text_file">TXT</ulink> -
- <acronym>ANSI</acronym> reiner Text
- </para>
- </listitem>
- </itemizedlist>
- </sect4>
- <sect4 id="zend.service.livedocx.formats.image">
- <title>Bild Dateiformate (Ausgabe):</title>
- <para>
- Das resultierende Dokument kann in jedem der folgenden grafischen Dateiformate
- gespeichert werden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/BMP_file_format">BMP</ulink> -
- Bitmap Image Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/GIF">GIF</ulink> - Graphics
- Interchange Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/Jpg">JPG</ulink> - Joint
- Photographic Experts Group Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink
- url="http://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG</ulink>
- - Portable Network Graphics Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink
- url="http://en.wikipedia.org/wiki/Tagged_Image_File_Format">TIFF</ulink>
- - Tagged Image File Format
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://en.wikipedia.org/wiki/Windows_Metafile">WMF</ulink> -
- Windows Meta File Format
- </para>
- </listitem>
- </itemizedlist>
- </sect4>
- </sect3>
- </sect2>
- <sect2 id="zend.service.livedocx.mailmerge">
- <title>Zend_Service_LiveDocx_MailMerge</title>
- <para>
- <classname>Zend_Service_LiveDocx_MailMerge</classname> ist das mail-merge Objekt in der
- <classname>Zend_Service_LiveDocx</classname> Familie.
- </para>
- <sect3 id="zend.service.livedocx.mailmerge.generation">
- <title>Prozess der Dokumentenerstellung</title>
- <para>
- Der Prozess der Erstellung des Dokuments kann mit der folgenden Gleichung
- vereinfacht dargestellt werden:
- </para>
- <para>
- <emphasis>Template + Daten = Dokument</emphasis>
- </para>
- <para>
- Oder durch das folgende Diagramm ausgedrückt werden:
- </para>
- <para>
- <inlinegraphic
- fileref="figures/zend.service.livedocx.mailmerge.generation-diabasic.png"
- format="PNG" />
- </para>
- <para>
- Daten werden in ein Template eingefügt um ein Dokument zu erstellen (<ulink
- url="figures/zend.service.livedocx.mailmerge.generation-diabasic_zoom.png">größer
- darstellen</ulink>).
- </para>
- <para>
- Ein Template das in einer Word Bearbeitungsanwendung, wie Microsoft Word, erstellt
- wird, wurd in LiveDocx geladen. Daten werden kann in das Template eingesetzt, und
- das resultierende Dokument wird in jedes der unterstützten Formate gespeichert.
- </para>
- </sect3>
- <sect3 id="zend.service.livedocx.mailmerge.templates">
- <title>Erstellen von Templates in Microsoft Word 2007</title>
- <para>
- Man muss damit beginnen Microsoft Word zu starten und ein neues Dokument zu
- erstellen. Als nächstes, wird der Dialog <emphasis>Felder</emphasis> geöffnet.
- Er sieht wie folgt aus:
- </para>
- <para>
- <inlinegraphic
- fileref="figures/zend.service.livedocx.mailmerge.templates-msworddialog.png"
- format="PNG" />
- </para>
- <para>
- Dialogbox Felder in Microsoft Word 2007 (<ulink
- url="figures/zend.service.livedocx.mailmerge.templates-msworddialog_zoom.png">größer
- darstellen</ulink>).
- </para>
- <para>
- Durch Verwendung dieses Dialogs kann man die benötigten Merge-Felder in das eigene
- Dokument einfügen. Anbei ist ein Screenshot der Lizenz Vereinbarung in Microsoft
- Word 2007. Die Merge Felder sind als <code>{ MERGEFIELD FieldName }</code> markiert:
- </para>
- <para>
- <inlinegraphic
- fileref="figures/zend.service.livedocx.mailmerge.templates-mswordtemplatefull.png"
- format="PNG" />
- </para>
- <para>
- Das Template in Microsoft Word 2007 (<ulink
- url="figures/zend.service.livedocx.mailmerge.templates-mswordtemplatefull_zoom.png">größer
- darstellen</ulink>).
- </para>
- <para>
- Jetzt muss das Template als <emphasis>template.docx</emphasis> gespeichert werden.
- </para>
- <para>
- Im nächsten Schritt veröffentlichen wir die Merge-Felder mit textuellen Daten von
- PHP.
- </para>
- <para>
- <inlinegraphic
- fileref="figures/zend.service.livedocx.mailmerge.templates-mswordtemplatecropped.png"
- format="PNG" />
- </para>
- <para>
- Unterteiltes Template in Microsoft Word 2007 (<ulink
- url="figures/zend.service.livedocx.mailmerge.templates-mswordtemplatecropped_zoom.png">größer
- darstellen</ulink>).
- </para>
- <para>
- Um die Merge Felder, im vorher unterteilten Screenshot des <ulink
- url="http://www.phplivedocx.org/wp-content/uploads/2009/01/license-agreement-template.docx">Templates</ulink>,
- in Microsoft Word auszufüllen, muss das folgende geschrieben werden:
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- $phpLiveDocx->setLocalTemplate('template.docx');
- $phpLiveDocx->assign('software', 'Magic Graphical Compression Suite v1.9')
- ->assign('licensee', 'Henry Döner-Meyer')
- ->assign('company', 'Co-Operation');
- $phpLiveDocx->createDocument();
- $document = $phpLiveDocx->retrieveDocument('pdf');
- file_put_contents('document.pdf', $document);
- ]]></programlisting>
- <para>
- Das resultierende Dokument wird auf die Festplatte in die Datei
- <emphasis>document.pdf</emphasis> geschrieben. Diese Datei kann nun weiter
- bearbeitet, per Email versendet oder einfach angezeigt werden, wie anbei im
- <emphasis>Document Viewer 2.26.1</emphasis> auf <emphasis>Ubuntu 9.04</emphasis>
- gezeigt:
- </para>
- <para>
- <inlinegraphic
- fileref="figures/zend.service.livedocx.mailmerge.templates-msworddocument.png"
- format="PNG" />
- </para>
- <para>
- Resultierendes Dokument als <acronym>PDF</acronym> im Document Viewer 2.26.1
- (<ulink
- url="figures/zend.service.livedocx.mailmerge.templates-msworddocument_zoom.png">größer
- darstellen</ulink>).
- </para>
- </sect3>
- <sect3 id="zend.service.livedocx.mailmerge.advanced">
- <title>Gehobeneres Mail-Merge</title>
- <para>
- <classname>Zend_Service_LiveDocx_MailMerge</classname> erlaubt es Entwicklern eine
- beliebige Anzahl an Text Feldern in ein Template einzufügen. Diese textfelder werden
- mit Daten gefüllt wenn <emphasis>createDocument()</emphasis> aufgerufen wird.
- </para>
- <para>
- Zusätzlich zu Textfeldern ist es auch mäglich spezielle Regionen eines Dokuments
- zu spezifizieren, welche wiederholt werden sollen.
- </para>
- <para>
- In einer Telefonrechnung ist es z.b. notwendig eine Liste aller Verbindungen,
- inklusive der Zielnummern, der Dauer und den Kosten jedes Anrufs auszudrucken.
- Diese Funktion der wiederholten Zeile kann mit sogenannten Blöcken erzielt werden.
- </para>
- <para>
- <emphasis>Blöcke</emphasis> sind einfach Regionen eines Dokuments, welche wiederholt
- werden wenn <methodname>createDocument()</methodname> aufgerufen wird. In einem
- Block kann eine beliebige Anzahl an <emphasis>Block Feldern</emphasis> spezifiziert
- werden.
- </para>
- <para>
- Blöcke bestehen aus zwei zusammenhängenden Dokument-Zielen mit einem eindeutigen
- Namen. Der folgende Screenshot zeigt diese Ziele und deren Namen in Rot:
- </para>
- <para>
- <inlinegraphic
- fileref="figures/zend.service.livedocx.mailmerge.advanced-mergefieldblockformat.png"
- format="PNG" />
- </para>
- <para>
- (<ulink
- url="figures/zend.service.livedocx.mailmerge.advanced-mergefieldblockformat_zoom.png">größer
- darstellen</ulink>).
- </para>
- <para>
- Das Format eines Blocks ist wie folgt:
- </para>
- <programlisting language="text"><![CDATA[
- blockStart_ + unique name
- blockEnd_ + unique name
- ]]></programlisting>
- <para>Zum Beispiel:</para>
- <programlisting language="text"><![CDATA[
- blockStart_block1
- blockEnd_block1
- ]]></programlisting>
- <para>
- Der Inhalt eines Blocks wird wiederholt, bis alle zugeordneten Daten in Blockfeldern
- des Templates eingefügt wurden. Die Daten der Blockfelder werden in PHP als
- mehrfach-assoziatives Array spezifiziert.
- </para>
- <para>
- Der folgende Screenshot eines Templates in Microsoft Word 2007 zeigt wie Blockfelder
- verwendet werden:
- </para>
- <para>
- <inlinegraphic
- fileref="figures/zend.service.livedocx.mailmerge.advanced-mswordblockstemplate.png"
- format="PNG" />
- </para>
- <para>
- Template, welches Blöcke in Microsoft Word 2007 zeigt (<ulink
- url="figures/zend.service.livedocx.mailmerge.advanced-mswordblockstemplate_zoom.png">größer
- darstellen</ulink>).
- </para>
- <para>
- Der folgende Code füllt das obige Template mit Daten.
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- $phpLiveDocx->setLocalTemplate('template.doc');
- $billConnections = array(
- array(
- 'connection_number' => '+49 421 335 912',
- 'connection_duration' => '00:00:07',
- 'fee' => '€ 0.03',
- ),
- array(
- 'connection_number' => '+49 421 335 913',
- 'connection_duration' => '00:00:07',
- 'fee' => '€ 0.03',
- ),
- array(
- 'connection_number' => '+49 421 335 914',
- 'connection_duration' => '00:00:07',
- 'fee' => '€ 0.03',
- ),
- array(
- 'connection_number' => '+49 421 335 916',
- 'connection_duration' => '00:00:07',
- 'fee' => '€ 0.03',
- ),
- );
- $phpLiveDocx->assign('connection', $billConnections);
- // ... andere Daten hier anhängen ...
- $phpLiveDocx->createDocument();
- $document = $phpLiveDocx->retrieveDocument('pdf');
- file_put_contents('document.pdf', $document);
- ]]></programlisting>
- <para>
- Die Daten, welche im Array <varname>$billConnections</varname> spezifiziert sind,
- werden im Template im Block 'connection' wiederholt. Die Schlüssel des Arrays
- (<varname>connection_number</varname>, <varname>connection_duration</varname> und
- <varname>fee</varname>) sind die Namen der Blockfelder - deren Daten werden bei
- jeder Iteration in einer Zeile eingefügt.
- </para>
- <para>
- Das resultierende Dokument wird auf die Festplatte in die Datei
- <emphasis>document.pdf</emphasis> geschrieben. Diese Datei kann anschließend
- nachbearbietet, per Email gesendet, oder einfach dargestellt werden, wie anbei im
- <emphasis>Document Viewer 2.26.1</emphasis> unter <emphasis>Ubuntu 9.04</emphasis>
- gezeigt:
- </para>
- <para>
- <inlinegraphic
- fileref="figures/zend.service.livedocx.mailmerge.advanced-mswordblocksdocument.png"
- format="PNG" />
- </para>
- <para>
- Das resultierende Dokument als <acronym>PDF</acronym> im Document Viewer
- 2.26.1 (<ulink
- url="figures/zend.service.livedocx.mailmerge.advanced-mswordblocksdocument_zoom.png">größer
- darstellen</ulink>).
- </para>
- <para>
- Man kann die <acronym>DOC</acronym> <ulink
- url="http://www.phplivedocx.org/wp-content/uploads/2009/01/telephone-bill-template.doc">Template
- Datei</ulink> und das resultierende <ulink
- url="http://www.phplivedocx.org/wp-content/uploads/2009/01/telephone-bill-document.pdf">PDF
- Dokument</ulink> hier herunterladen.
- </para>
- <para>
- <emphasis>BEACHTE:</emphasis> Blöcke können nicht verschachtelt werden.
- </para>
- </sect3>
- <sect3 id="zend.service.livedocx.mailmerge.bitmaps">
- <title>Erstellen von Bitmap Bildern</title>
- <para>
- Zusätzlich zu den Dateiformaten für Dokumente erlaubt es
- <classname>Zend_Service_LiveDocx_MailMerge</classname> auch Dokumente als eine
- Anzahl von Bildern zu speichern (<acronym>BMP</acronym>,
- <acronym>GIF</acronym>, <acronym>JPG</acronym>, <acronym>PNG</acronym> und
- <acronym>TIFF</acronym>). Jede Seite des Dokuments wird als eine Datei gespeichert.
- </para>
- <para>
- Das folgende Beispiel zeigt die Verwendung von <methodname>getBitmaps($fromPage,
- $toPage, $zoomFactor, $format)</methodname> und
- <methodname>getAllBitmaps($zoomFactor, $format)</methodname>.
- </para>
- <para>
- <varname>$fromPage</varname> ist die untere Grenze der Seitenzahl des Bereichs an
- Seiten die als Bild zurückgegeben werden soll, und <varname>$toPage</varname> ist
- die obere Grenze der Seitenzahlen. <varname>$zoomFactor</varname> ist die Größe
- der Bilder, als Prozentwert, relativ zur originalen Seitengröße. Der Bereich dieses
- Parameters ist von 10 bis 400. <varname>$format</varname> ist das Format des
- Bildes welches von dieser Methode zurückgegeben wird. Die unterstützten Formate
- erhält man, wenn man <methodname>getImageFormats()</methodname> aufruft.
- </para>
- <programlisting language="php"><![CDATA[
- $date = new Zend_Date();
- $date->setLocale('en_US');
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- $phpLiveDocx->setLocalTemplate('template.docx');
- $phpLiveDocx->assign('software', 'Magic Graphical Compression Suite v1.9')
- ->assign('licensee', 'Daï Lemaitre')
- ->assign('company', 'Megasoft Co-operation')
- ->assign('date', $date->get(Zend_Date::DATE_LONG))
- ->assign('time', $date->get(Zend_Date::TIME_LONG))
- ->assign('city', 'Lyon')
- ->assign('country', 'France');
- $phpLiveDocx->createDocument();
- // Alle Bitmaps holen
- // (zoomFactor, format)
- $bitmaps = $phpLiveDocx->getAllBitmaps(100, 'png');
- // Nur Bitmaps im spezifizierten Bereich erhalten
- // (fromPage, toPage, zoomFactor, format)
- // $bitmaps = $phpLiveDocx->getBitmaps(2, 2, 100, 'png');
- foreach ($bitmaps as $pageNumber => $bitmapData) {
- $filename = sprintf('documentPage%d.png', $pageNumber);
- file_put_contents($filename, $bitmapData);
- }
- ]]></programlisting>
- <para>
- Das produziert zwei Bilder (<filename>documentPage1.png</filename> und
- <filename>documentPage2.png</filename>) und schreibt diese auf der Festplatte
- in das gleiche Verzeichnis wie die ausführbare PHP Datei.
- </para>
- <para>
- <inlinegraphic
- fileref="figures/zend.service.livedocx.mailmerge.bitmaps-documentpage1.png"
- format="PNG" />
- </para>
- <para>
- documentPage1.png (<ulink
- url="figures/zend.service.livedocx.mailmerge.bitmaps-documentpage1_zoom.png">größer
- darstellen</ulink>).
- </para>
- <para>
- <inlinegraphic
- fileref="figures/zend.service.livedocx.mailmerge.bitmaps-documentpage2.png"
- format="PNG" />
- </para>
- <para>
- documentPage2.png (<ulink
- url="figures/zend.service.livedocx.mailmerge.bitmaps-documentpage2_zoom.png">größer
- darstellen</ulink>).
- </para>
- </sect3>
- <sect3 id="zend.service.livedocx.mailmerge.templates-types">
- <title>Lokale vs. Remote Templates</title>
- <para>
- Templates können <emphasis>lokal</emphasis>, auf der Client Maschine, gespeichert
- werden, oder <emphasis>remote</emphasis> auf dem Server. Jede Variante hat Vorteile
- und Nachteile.
- </para>
- <para>
- Im Falle das ein Templage lokal gespeichert ist, muss es bei jeder Anfrage vom
- Client auf den Server transferiert werden. Wenn sich der Inhalt vom Templates
- selten ändert, ist dieser Weg sehr ineffizient. Ähnlich auch, wenn das Template eine
- Größe von mehreren Megabyte hat, kann es eine beträchtliche Zeit dauern es auf den
- Server zu transferieren. Lokale Templates sind in Situationen sinnvoll in denen der
- Inhalt des Templates konstant geändert wird.
- </para>
- <para>
- Der folgende Code zeigt wie man ein lokales Template verwendet.
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- $phpLiveDocx->setLocalTemplate('./template.docx');
- // Daten hinzufügen und das Dokument erstellen
- ]]></programlisting>
- <para>
- Im Fall das ein Template remote gespeichert ist, wird es nur einmal auf den Server
- geladen und anschließend bei allen nachfolgenden Anfragen darauf referenziert.
- Natürlich ist das viel schneller als ein lokales Template zu verwenden, da das
- Template nicht bei jeder Anfrage übertragen werden muss. Für Anwendungen bei denen
- die Geschwindigkeit kritisch ist, wird es Empfohlen die Remote Template Methode zu
- verwenden.
- </para>
- <para>
- Der folgende Code zeigt wie ein Template auf den Server übertragen wird:
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- $phpLiveDocx->uploadTemplate('template.docx');
- ]]></programlisting>
- <para>
- Der folgende Code zeigt wie auf das remote gespeicherte Template bei allen
- weiteren Anfragen referenziert wird:
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- $phpLiveDocx->setRemoteTemplate('template.docx');
- // assign data and create document
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.service.livedocx.mailmerge.information">
- <title>Informationen erhalten</title>
- <para>
- <classname>Zend_Service_LiveDocx_MailMerge</classname> bietet eine Anzahl an
- Methoden um Informationen über Feldnamen, vorhandene Schriftarten und unterstützte
- Formate zu erhalten.
- </para>
- <example id="zend.service.livedocx.mailmerge.information.getfieldname">
- <title>Ein Array an Feldnamen vom Template erhalten</title>
- <para>
- Der folgende Code retourniert und zeigt ein Array aller Feldnamen im
- spezifizierten Template an. Diese Funktionalität ist nützlich, wenn man eine
- Anwendung erstellt, in welcher der End-Benutzer das Template aktualisieren kann.
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- $templateName = 'template-1-text-field.docx';
- $phpLiveDocx->setLocalTemplate($templateName);
- $fieldNames = $phpLiveDocx->getFieldNames();
- foreach ($fieldNames as $fieldName) {
- printf('- %s%s', $fieldName, PHP_EOL);
- }
- ]]></programlisting>
- </example>
- <example id="zend.service.livedocx.mailmerge.information.getblockfieldname">
- <title>Ein Array an Block Feldnamen vom Template erhalten</title>
- <para>
- Der folgende Code retourniert und zeigt ein Array aller Block Feldnamen im
- spezifizierten Template an. Diese Funktionalität ist nützlich, wenn man eine
- Anwendung erstellt, in welcher der End-Benutzer das Template aktualisieren kann.
- Bevor solche Templates veröffentlicht werden können, ist es notwendig die Namen
- der enthaltenen Blockfelder herauszufinden.
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- $templateName = 'template-block-fields.doc';
- $phpLiveDocx->setLocalTemplate($templateName);
- $blockNames = $phpLiveDocx->getBlockNames();
- foreach ($blockNames as $blockName) {
- $blockFieldNames = $phpLiveDocx->getBlockFieldNames($blockName);
- foreach ($blockFieldNames as $blockFieldName) {
- printf('- %s::%s%s', $blockName, $blockFieldName, PHP_EOL);
- }
- }
- ]]></programlisting>
- </example>
- <example id="zend.service.livedocx.mailmerge.information.getfontnames">
- <title>
- Ein Array von Schriftarten erhalten welche auf dem Server installiert sind
- </title>
- <para>
- Der folgende Code retourniert und zeigt ein Array aller auf dem Server
- installierten Schriftarten an. Diese Methode kann verwendet werden um eine Liste
- von Schriftarten anzuzeigen welche in einem Template verwendet werden können.
- Das ist nützlich um den Endbenutzer über die auf dem Server installierten
- Schriften zu informieren, da nur diese Schriftarten in einem Template verwendet
- werden können. Im Falle das ein Template Schriften enthänt, welche auf dem
- Server nicht enthalten sind, wird eine andere Schriftart verwendet. Dies kann
- zu unerwünschten Ergebnissen führen.
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- Zend_Debug::dump($phpLiveDocx->getFontNames());
- ]]></programlisting>
- <para>
- <emphasis>BEACHTE:</emphasis> Da sich der Rückgabewert diese Methode sehr
- selten ändert, ist es sehr empfehlenswert einen Cache zu verwenden, wie z.B.
- <classname>Zend_Cache</classname> - das macht die Anwendung sichtbar schneller.
- </para>
- </example>
- <example id="zend.service.livedocx.mailmerge.information.gettemplateformats">
- <title>Ein Array an unterstützten Dateiformaten für Templates erhalten</title>
- <para>
- Der folgende Code retourniert und zeigt ein Array aller unterstützten
- Dateiformate für Templates. Diese Methode ist partiell nützlich im Fall das
- eine Kombinationsbox angezeigt werden soll, welche es dem Endbenutzer erlaubt
- das Eingabeformat für den Erstellungsprozess des Dokuments auszuwählen.
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge()
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- Zend_Debug::dump($phpLiveDocx->getTemplateFormats());
- ]]></programlisting>
- <para>
- <emphasis>BEACHTE:</emphasis> Da sich der Rückgabewert diese Methode sehr
- selten ändert, ist es sehr empfehlenswert einen Cache zu verwenden, wie z.B.
- <classname>Zend_Cache</classname> - das macht die Anwendung sichtbar schneller.
- </para>
- </example>
- <example id="zend.service.livedocx.mailmerge.information.getdocumentformats">
- <title>Ein Array an unterstützten Dateiformaten für Dokumente erhalten</title>
- <para>
- Der folgende Code retourniert und zeigt ein Array aller unterstützten
- Dateiformate für Dokumente. Diese Methode ist partiell nützlich im Fall das
- eine Kombinationsliste angezeigt werden soll, welche es dem Endbenutzer erlaubt
- das Ausgabeformat für den Erstellungsprozess des Dokuments auszuwählen.
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- Zend_Debug::dump($phpLiveDocx->getDocumentFormats());
- ]]></programlisting>
- </example>
- <example id="zend.service.livedocx.mailmerge.information.getimageformats">
- <title>Ein Array an unterstützten Dateiformaten für Bilder erhalten</title>
- <para>
- Der folgende Code retourniert und zeigt ein Array aller unterstützten
- Dateiformate für Bilder. Diese Methode ist partiell nützlich im Fall das
- eine Kombinationsliste angezeigt werden soll, welche es dem Endbenutzer erlaubt
- das Ausgabeformat für den Erstellungsprozess des Dokuments auszuwählen.
- </para>
- <programlisting language="php"><![CDATA[
- $phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
- $phpLiveDocx->setUsername('myUsername')
- ->setPassword('myPassword');
- Zend_Debug::dump($phpLiveDocx->getImageFormats());
- ]]></programlisting>
- <para>
- <emphasis>BEACHTE:</emphasis> Da sich der Rückgabewert diese Methode sehr
- selten ändert, ist es sehr empfehlenswert einen Cache zu verwenden, wie z.B.
- <classname>Zend_Cache</classname> - das macht die Anwendung sichtbar schneller.
- </para>
- </example>
- </sect3>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 tw=100 et:
- -->
|