| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 20115 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.pdf.interactive-features">
- <title>Interaktive Features</title>
- <sect2 id="zend.pdf.pages.interactive-features.destinations">
- <title>Ziele</title>
- <para>
- Ein Ziel definiert eine spezielle Sicht eines Dokuments, bestehend aus den folgenden
- Elementen:
- </para>
- <itemizedlist>
- <listitem>
- <para>Die Seite des Dokuments das angezeigt werden soll.</para>
- </listitem>
- <listitem>
- <para>Der Ort des Dokumenten Fensters auf dieser Seite.</para>
- </listitem>
- <listitem>
- <para>
- Der Zoom Faktor der verwendet werden soll wenn die Seite angezeigt wird.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Ziele können mit Outline Elementen ((<link
- linkend="zend.pdf.pages.interactive-features.outlines">Document Outline
- (bookmarks)</link>), Hinweisen (<link
- linkend="zend.pdf.pages.interactive-features.annotations">Annotations</link>), oder
- Aktionen (<link linkend="zend.pdf.pages.interactive-features.actions">Actions</link>)
- verknüpft werden. In jedem Fall spezifiziert das Ziel die Sicht des Dokuments welche
- dargestellt werden soll wenn das Outline Element oder der Hinweis geöffnet, oder die
- Aktion durchgeführt werden soll. Zusätzlich kann eine optionale Dokument Öffnungs-Aktion
- spezifiziert werden.
- </para>
- <sect3 id="zend.pdf.pages.interactive-features.destinations.types">
- <title>Unterstützte Zieltypen</title>
- <para>
- Die folgenden Typen werden von der <classname>Zend_Pdf</classname> Komponente
- unterstützt.
- </para>
- <sect4 id="zend.pdf.pages.interactive-features.destinations.types.zoom">
- <title>Zend_Pdf_Destination_Zoom</title>
- <para>
- Zeigt die spezifizierte Seite, mit den Koordinaten (Links, Oben) positioniert
- an der oberen-linken Ecke des Fensters und dem Inhalt der Seite vergrößert
- auf den Zoom Faktor.
- </para>
- <para>
- Zielobjekte können durch Verwendung der
- <methodname>Zend_Pdf_Destination_Zoom::create($page, $left = null, $top = null,
- $zoom = null)</methodname> Methode erstellt werden.
- </para>
- <para>
- Wobei:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$page</varname> eine Zielseite ist (ein
- <classname>Zend_Pdf_Page</classname> Objekt oder eine Seitennummer).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$left</varname> ist die linke Ecke der angezeigten Seite
- (float).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$top</varname> ist eine obere Ecke der angezeigten Seite
- (float).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$zoom</varname> ist ein Zoom Faktor (float).
- </para>
- </listitem>
- </itemizedlist>
- <para>
- <constant>NULL</constant>, wenn es für die <varname>$left</varname>,
- <varname>$top</varname> or <varname>$zoom</varname> Parameter spezifiziert wird,
- heißt "aktueller Wert der Viewer Anwendung".
- </para>
- <para>
- Die <classname>Zend_Pdf_Destination_Zoom</classname> Klasse bietet die folgenden
- Methoden an:
- </para>
- <itemizedlist>
- <listitem>
- <para><type>Float</type><methodname>getLeftEdge()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setLeftEdge(float $left)</methodname>;</para>
- </listitem>
- <listitem>
- <para><type>Float</type><methodname>getTopEdge()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setTopEdge(float $top)</methodname>;</para>
- </listitem>
- <listitem>
- <para><type>Float</type><methodname>getZoomFactor()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setZoomFactor(float $zoom)</methodname>;</para>
- </listitem>
- </itemizedlist>
- </sect4>
- <sect4 id="zend.pdf.pages.interactive-features.destinations.types.fit">
- <title>Zend_Pdf_Destination_Fit</title>
- <para>
- Zeigt die spezifizierte Seite an, wobei der Inhalt soweit vergrössert wird,
- dass er auf die komplette Seite passt sowohl Horizontal als auch Vertikal im
- Fenster. Wenn die benötigten horizontalen und vertikalen Vergrösserungsfaktoren
- unterschiedlich sind, wird der kleinere der zwei verwendet, und die Seite im
- Fenster mit der anderen Dimension zentriert.
- </para>
- <para>
- Das Zielobjekt kann erstellt werden indem die
- <methodname>Zend_Pdf_Destination_Fit::create($page)</methodname> Methode
- verwendet wird.
- </para>
- <para>
- Wobei <varname>$page</varname> eine Zielseite ist (ein
- <classname>Zend_Pdf_Page</classname> Objekt oder eine Seitennummer).
- </para>
- </sect4>
- <sect4 id="zend.pdf.pages.interactive-features.destinations.types.fit-horizontally">
- <title>Zend_Pdf_Destination_FitHorizontally</title>
- <para>
- Zeigt die spezifizierte Seite, mit den vertikalen Koordinaten an der oberen Ecke
- des Fensters positioniert, an und den Inhalt der Seite gerade genug vergrössert
- damit die komplette Breite der Seite in das Fenster passt.
- </para>
- <para>
- Das Zielobjekt kann erstellt werden indem die
- <methodname>Zend_Pdf_Destination_FitHorizontally::create($page,
- $top)</methodname> Methode verwendet wird.
- </para>
- <para>
- Wobei:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$page</varname> ist eine Zielseite
- (ein <classname>Zend_Pdf_Page</classname> Objekt oder eine Seitenzahl).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$top</varname> ist die obere Ecke der angezeigten Seite
- (float).
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Die Klasse <classname>Zend_Pdf_Destination_FitHorizontally</classname> bietet
- auch die folgenden Methoden:
- </para>
- <itemizedlist>
- <listitem>
- <para><type>Float</type><methodname>getTopEdge()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setTopEdge(float $top)</methodname>;</para>
- </listitem>
- </itemizedlist>
- </sect4>
- <sect4 id="zend.pdf.pages.interactive-features.destinations.types.fit-vertically">
- <title>Zend_Pdf_Destination_FitVertically</title>
- <para>
- Zeigt die spezifizierte Seite, mit den horizontalen Koordinaten an der oberen
- Ecke des Fensters positioniert, an und den Inhalt der Seite gerade genug
- vergrössert damit die komplette Höhe der Seite in das Fenster passt.
- </para>
- <para>
- Das Zielobjekt kann erstellt werden indem die
- <methodname>Zend_Pdf_Destination_FitVertically::create($page,
- $left)</methodname> Methode verwendet wird.
- </para>
- <para>
- Wobei:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$page</varname> ist eine Zielseite
- (ein <classname>Zend_Pdf_Page</classname> Objekt oder eine Seitenzahl).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$left</varname> die linke Ecke der angezeigten Seite ist.
- (float).
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Die Klasse <classname>Zend_Pdf_Destination_FitVertically</classname> bietet auch
- die folgenden Methoden:
- </para>
- <itemizedlist>
- <listitem>
- <para><type>Float</type><methodname>getLeftEdge()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setLeftEdge(float $left)</methodname>;</para>
- </listitem>
- </itemizedlist>
- </sect4>
- <sect4 id="zend.pdf.pages.interactive-features.destinations.types.fit-rectangle">
- <title>Zend_Pdf_Destination_FitRectangle</title>
- <para>
- Zeigt die spezifizierte Seite an, wobei der Inhalt gerade genug vergrössert ist
- damit er komplett in das Rechteck passt das durch die Koordinaten links, unten,
- rechts und oben spezifiziert wird sowohl horizontal als auch vertikal. Wenn die
- notwendigen horizontalen und vertikalen Vergrösserungsfaktoren unterschiedlich
- sind, wird der kleinere der zwei verwendet, wobei das Rechteck im Fenster durch
- Verwendung der andern Dimension zentriert wird.
- </para>
- <para>
- Das Zielobjekt kann erstellt werden indem die
- <methodname>Zend_Pdf_Destination_FitRectangle::create($page, $left, $bottom,
- $right, $top)</methodname> Methode verwendet wird.
- </para>
- <para>
- Wobei:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$page</varname> ist eine Zielseite
- (ein <classname>Zend_Pdf_Page</classname> Objekt oder eine Seitenzahl).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$left</varname> die linke Ecke der angezeigten Seite ist.
- (float).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$bottom</varname> die untere Ecke der angezeigten Seite ist
- (float).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$right</varname> die rechte Ecke der angezeigten Seite ist
- (float).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$top</varname> die obere Ecke der angezeigten Seite ist
- (float).
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Die Klasse <classname>Zend_Pdf_Destination_FitRectangle</classname> bietet auch
- die folgenden Methoden an:
- </para>
- <itemizedlist>
- <listitem>
- <para><type>Float</type><methodname>getLeftEdge()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setLeftEdge(float $left)</methodname>;</para>
- </listitem>
- <listitem>
- <para><type>Float</type><methodname>getBottomEdge()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setBottomEdge(float $bottom)</methodname>;</para>
- </listitem>
- <listitem>
- <para><type>Float</type><methodname>getRightEdge()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setRightEdge(float $right)</methodname>;</para>
- </listitem>
- <listitem>
- <para><type>Float</type><methodname>getTopEdge()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setTopEdge(float $top)</methodname>;</para>
- </listitem>
- </itemizedlist>
- </sect4>
- <sect4 id="zend.pdf.pages.interactive-features.destinations.types.fit-bounding-box">
- <title>Zend_Pdf_Destination_FitBoundingBox</title>
- <para>
- Zeigt die spezifizierte Seite an, wobei der Inhalt gerade genug vergrössert ist
- damit die Zeichenbox komplett in das Fenster passt, sowohl horizontal als auch
- vertikal. Wenn die notwendigen horizontalen und vertikalen
- Vergrösserungsfaktoren unterschiedlich sind, wird der kleinere der zwei
- verwendet, wobei die Zeichenbox im Fenster durch Verwendung der andern Dimension
- zentriert wird.
- </para>
- <para>
- Das Zielobjekt kann erstellt werden indem die
- <methodname>Zend_Pdf_Destination_FitBoundingBox::create($page, $left, $bottom,
- $right, $top)</methodname> Methode verwendet wird.
- </para>
- <para>
- Wobei <varname>$page</varname> eine Zielseite ist
- (ein <classname>Zend_Pdf_Page</classname> Objekt oder eine Seitenzahl).
- </para>
- </sect4>
- <sect4
- id="zend.pdf.pages.interactive-features.destinations.types.fit-bounding-box-horizontally">
- <title>Zend_Pdf_Destination_FitBoundingBoxHorizontally</title>
- <para>
- Zeigt die spezifizierte Seite, mit den vertikalen Koordinaten an der oberen Ecke
- des Fensters positioniert, an und den Inhalt der Seite gerade genug vergrössert
- damit die komplette Breite der Zeichenbox in das Fenster passt.
- </para>
- <para>
- Das Zielobjekt kann erstellt werden indem die
- <methodname>Zend_Pdf_Destination_FitBoundingBoxHorizontally::create($page,
- $top)</methodname> Methode verwendet wird.
- </para>
- <para>
- Wobei
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$page</varname> eine Zielseite ist
- (ein <classname>Zend_Pdf_Page</classname> Objekt oder eine Seitenzahl).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$top</varname> ist die obere Ecke der angezeigten Seite
- (float).
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Die Klasse
- <classname>Zend_Pdf_Destination_FitBoundingBoxHorizontally</classname> bietet
- auch die folgenden Methoden:
- </para>
- <itemizedlist>
- <listitem>
- <para><type>Float</type><methodname>getTopEdge()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setTopEdge(float $top)</methodname>;</para>
- </listitem>
- </itemizedlist>
- </sect4>
- <sect4
- id="zend.pdf.pages.interactive-features.destinations.types.fit-bounding-box-vertically">
- <title>Zend_Pdf_Destination_FitBoundingBoxVertically</title>
- <para>
- Zeigt die spezifizierte Seite, mit den horizontalen Koordinaten an der oberen
- Ecke des Fensters positioniert, an und den Inhalt der Seite gerade genug
- vergrössert damit die komplette Höhe der Zeichenbox in das Fenster passt.
- </para>
- <para>
- Das Zielobjekt kann erstellt werden indem die
- <methodname>Zend_Pdf_Destination_FitBoundingBoxVertically::create($page,
- $left)</methodname> Methode verwendet wird.
- </para>
- <para>
- Wobei
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$page</varname> eine Zielseite ist
- (ein <classname>Zend_Pdf_Page</classname> Objekt oder eine Seitenzahl).
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$left</varname> ist die linke Ecke der angezeigten Seite
- (float).
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Die Klasse <classname>Zend_Pdf_Destination_FitBoundingBoxVertically</classname>
- bietet auch die folgenden Methoden:
- </para>
- <itemizedlist>
- <listitem>
- <para><type>Float</type><methodname>getLeftEdge()</methodname>;</para>
- </listitem>
- <listitem>
- <para><methodname>setLeftEdge(float $left)</methodname>;</para>
- </listitem>
- </itemizedlist>
- </sect4>
- <sect4 id="zend.pdf.pages.interactive-features.destinations.types.named">
- <title>Zend_Pdf_Destination_Named</title>
- <para>
- Alle oben aufgeführten Ziele sind "Explizite Ziele".
- </para>
- <para>
- Zusätzlich dazu können <acronym>PDF</acronym> Dokumente ein Verzeichnis solcher
- Ziele enthalten welche verwendet werden können um nach ausserhalb des
- <acronym>PDF</acronym>'s zu referenzieren (z.B.
- '<filename>http://www.mycompany.com/document.pdf#chapter3</filename>').
- </para>
- <para>
- <classname>Zend_Pdf_Destination_Named</classname> Objekte erlauben es auf Ziele
- der benannten Zielverzeichnisse des Dokuments zu referenzieren.
- </para>
- <para>
- Benannte Zielobjekte können erstellt werden indem man die
- <methodname>Zend_Pdf_Destination_Named::create(string $name)</methodname>
- Methode verwendet.
- </para>
- <para>
- Die Klasse <classname>Zend_Pdf_Destination_Named</classname> bietet eine einzige
- zusätzliche Methode:
- </para>
- <para>
- <type>String</type><methodname>getName()</methodname>;
- </para>
- </sect4>
- </sect3>
- <sect3 id="zend.pdf.pages.interactive-features.destinations.processing">
- <title>Verarbeitung von Zielen auf Level des Dokuments</title>
- <para>
- Die Klasse <classname>Zend_Pdf</classname> bietet ein Set von Methoden zur
- Verarbeitung von Zielen.
- </para>
- <para>
- Jedes Zielobjekt (inklusive benannter Ziele) kann aufgelöst werden indem die
- Methode <methodname>resolveDestination($destination)</methodname> verwendet wird.
- Sie gibt ein passendes <classname>Zend_Pdf_Page</classname> Objekt zurück wenn das
- Zielobjekt gefunden wurde, andernfalls <constant>NULL</constant>.
- </para>
- <para>
- Die Methode <methodname>Zend_Pdf::resolveDestination()</methodname> nimmt auch einen
- optionalen booleschen Parameter <varname>$refreshPageCollectionHashes</varname>, der
- standardmäßig <constant>TRUE</constant> ist. Er zwingt das
- <classname>Zend_Pdf</classname> Objekt die Hashes der internen Kollektion der Seiten
- neu zu laden da die Liste der Seiten des Dokuments vom Benutzer aktualisiert sein
- könnte indem die Eigenschaft <varname>Zend_Pdf::$pages</varname> verwendet wird
- (<link linkend="zend.pdf.pages">Arbeiten mit Seiten</link>). Das kann aus Gründen
- der Performance ausgeschaltet werden, wenn bekannt ist das die Liste der Seiten des
- Dokuments seit der letzten Anfragemethode nicht geändert wurde.
- </para>
- <para>
- Die komplette Liste der benannten Ziele kann empfangen werden indem die Methode
- <methodname>Zend_Pdf::getNamedDestinations()</methodname> verwendet wird. Sie gibt
- ein Array von <classname>Zend_Pdf_Target</classname> Objekten zurück, welche
- entweder explizite Ziele oder eine GoTo Aktion sind
- (<link linkend="zend.pdf.pages.interactive-features.actions">Aktionen</link>).
- </para>
- <para>
- Die Methode <methodname>Zend_Pdf::getNamedDestination(string $name)</methodname>
- gibt spezifizierte benannte Ziele zurück (ein explizites Ziel oder eine GoTo
- Aktion).
- </para>
- <para>
- Das Verzeichnis der benannten Ziele des <acronym>PDF</acronym> Dokuments kann mit
- der Methode
- <methodname>Zend_Pdf::setNamedDestination(string $name, $destination)</methodname>
- aktualisiert werden, wobei <varname>$destination</varname> entweder ein explizites
- Ziel ist (jedes Ziel ausser <classname>Zend_Pdf_Destination_Named</classname>) oder
- eine GoTo Aktion.
- </para>
- <para>
- Wenn <constant>NULL</constant> statt <varname>$destination</varname> spezifiziert
- ist, werden die spezifizierten benannten Ziele entfernt.
- </para>
- <note>
- <para>
- Benannte Ziele die nicht aufgelöst werden können, werden automatisch vom
- Dokument entfernt wenn das Dokument gespeichert wird.
- </para>
- </note>
- <example id="zend.pdf.interactive-features.destinations.example-1">
- <title>Beispiel für die Verwendung von Zielen</title>
- <programlisting language="php"><![CDATA[
- $pdf = new Zend_Pdf();
- $page1 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
- $page2 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
- $page3 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
- // Erstellte Seiten, aber nicht in der Seitenliste enthalten
- $pdf->pages[] = $page1;
- $pdf->pages[] = $page2;
- $destination1 = Zend_Pdf_Destination_Fit::create($page2);
- $destination2 = Zend_Pdf_Destination_Fit::create($page3);
- // Gibt das $page2 Objekt zurück
- $page = $pdf->resolveDestination($destination1);
- // Gibt null zurück, die Seite 3 ist bis jetzt nicht im Dokument enthalten
- $page = $pdf->resolveDestination($destination2);
- $pdf->setNamedDestination('Page2', $destination1);
- $pdf->setNamedDestination('Page3', $destination2);
- // Gibt $destination2 zurück
- $destination = $pdf->getNamedDestination('Page3');
- // Gibt $destination1 zurück
- $pdf->resolveDestination(Zend_Pdf_Destination_Named::create('Page2'));
- // Gibt null zurück, die Seite 3 ist bis jetzt nicht im Dokument enthalten
- $pdf->resolveDestination(Zend_Pdf_Destination_Named::create('Page3'));
- ]]></programlisting>
- </example>
- </sect3>
- </sect2>
- <sect2 id="zend.pdf.pages.interactive-features.actions">
- <title>Aktionen</title>
- <para>
- Statt einfach zu einem Ziel im Dokument zu springen, kann ein Hinweis oder Outline
- Element eine Aktion für die Viewer Anwendung spezifizieren die auszuführen ist, wie
- das starten einer Anwendung, das Abspielen eines Sounds, oder der Änderung der
- Sichtweise des Hinweis Status.
- </para>
- <sect3 id="zend.pdf.pages.interactive-features.actions.types">
- <title>Unterstützte Typen von Aktionen</title>
- <para>
- Die folgenden Typen von Aktionen werden beim Laden vom <acronym>PDF</acronym>
- Dokument erkannt:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_GoTo</classname> - geht zu einem Ziel im
- aktuellen Dokument.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_GoToR</classname> - geht zu einem Ziel in
- einem anderen Dokument.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_GoToE</classname> - geht zu einem Ziel in
- einem eingebetteten Dokument.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_Launch</classname> - startet eine Anwendung,
- öffnet oder druckt ein Dokument.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_Thread</classname> - beginnt einen Artikel Thread
- zu lesen.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_URI</classname> - löst ein
- <acronym>URI</acronym> auf.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_Sound</classname> - spielt einen Sound.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_Movie</classname> - spielt einen Film.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_Hide</classname> - versteckt oder zeigt einen
- oder mehrere Hinweise auf dem Bildschirm.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_Named</classname> - führt eine vordefinierte
- Aktion an der Viewer Anwendung aus:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>NextPage</emphasis> - Geht zur nächsten Seite des
- Dokuments.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>PrevPage</emphasis> - Geht zur vorhergehenden Seite des
- Dokuments.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>FirstPage</emphasis> - Geht zur ersten Seite des
- Dokuments.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>LastPage</emphasis> - Geht zur letzten Seite des
- Dokuments.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_SubmitForm</classname> - sendet Daten zu einem
- eindeutigen Ressourcenziel.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_ResetForm</classname> - setzt Felder mit Ihren
- Standardwerten.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_ImportData</classname> - importiert Feldwerte von
- einer Datei.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_JavaScript</classname> - führt ein JavaScript
- Skript aus.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_SetOCGState</classname> - setzt den Status von
- einem oder mehreren optionalen Inhaltsgruppen.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_Rendition</classname> - kontrolliert das
- Abspielen von Multimedia Inhalten (Beginnen, Stoppen, Pausieren oder
- Fortsetzen des Abspielens).
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_Trans</classname> - Aktualisiert das Display
- eines Dokuments indem ein Übersetzungsverzeichnis verwendet wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Pdf_Action_GoTo3DView</classname> - setzt die aktuelle
- Ansicht eines 3D Hinweises.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Nur <classname>Zend_Pdf_Action_GoTo</classname> und
- <classname>Zend_Pdf_Action_URI</classname> Aktionen können aktuell von
- Benutzern erstellt werden.
- </para>
- <para>
- Goto Aktionen können erstellt werden indem die Methode
- <methodname>Zend_Pdf_Action_GoTo::create($destination)</methodname> verwendet
- wird wobei <varname>$destination</varname> ein
- <classname>Zend_Pdf_Destination</classname> Objekt oder ein String ist der verwendet
- werden kann um ein benanntes Ziel zu identifizieren.
- </para>
- <para>
- Die Methode <methodname>Zend_Pdf_Action_URI::create($uri[, $isMap])</methodname>
- muss verwendet werden um eine URI Aktion zu erstellen (siehe die API Dokumentation
- für Details). Der optionale <varname>$isMap</varname> Parameter wird
- standardmäßig auf <constant>FALSE</constant> gesetzt.
- </para>
- <para>
- Es unterstützt auch die folgenden Methoden:
- </para>
- </sect3>
- <sect3 id="zend.pdf.pages.interactive-features.actions.chaining">
- <title>Verketten von Aktionen</title>
- <para>
- Aktions Objekte können verkettet werden indem die öffentliche Eigenschaft
- <varname>Zend_Pdf_Action::$next</varname> verwendet wird.
- </para>
- <para>
- Sie ist ein Array von <classname>Zend_Pdf_Action</classname> Objekten, welche auch
- Unter-Aktionen haben können.
- </para>
- <para>
- Die <classname>Zend_Pdf_Action</classname> Klasse unterstützt das RecursiveIterator
- Interface damit Kinder-Aktionen iterativ durchlaufen werden können:
- </para>
- <programlisting language="php"><![CDATA[
- $pdf = new Zend_Pdf();
- $page1 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
- $page2 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
- // Seite erstellt, aber nicht in der Seitenliste hinzugefügt
- $page3 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
- $pdf->pages[] = $page1;
- $pdf->pages[] = $page2;
- $action1 = Zend_Pdf_Action_GoTo::create(
- Zend_Pdf_Destination_Fit::create($page2));
- $action2 = Zend_Pdf_Action_GoTo::create(
- Zend_Pdf_Destination_Fit::create($page3));
- $action3 = Zend_Pdf_Action_GoTo::create(
- Zend_Pdf_Destination_Named::create('Chapter1'));
- $action4 = Zend_Pdf_Action_GoTo::create(
- Zend_Pdf_Destination_Named::create('Chapter5'));
- $action2->next[] = $action3;
- $action2->next[] = $action4;
- $action1->next[] = $action2;
- $actionsCount = 1; // Achtung! Iteration enthält nicht die oberste Aktion und
- // Arbeitet sich nur durch die Kinder
- $iterator = new RecursiveIteratorIterator(
- $action1,
- RecursiveIteratorIterator::SELF_FIRST);
- foreach ($iterator as $chainedAction) {
- $actionsCount++;
- }
- // Ausgabe 'Aktionen im Baum: 4'
- printf("Aktionen im Baum: %d\n", $actionsCount++);
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.pdf.pages.interactive-features.actions.open-action">
- <title>Dokument Öffnen Aktion</title>
- <para>
- Eine spezielle Öffnen Aktion kann durch ein Ziel spezifiziert werden das angezeigt
- werden soll, oder eine Aktion die ausgeführt werden soll wenn das Dokument geöffnet
- wird.
- </para>
- <para>
- Die <methodname>Zend_Pdf_Target Zend_Pdf::getOpenAction()</methodname> Methode gibt
- die aktuelle Dokument Öffnen Aktion zurück (oder <constant>NULL</constant> wenn die
- Öffnen Aktion nicht gesetzt ist).
- </para>
- <para>
- Die <methodname>setOpenAction(Zend_Pdf_Target $openAction = null)</methodname>
- Methode setzt eine Dokument Öffnen Aktion oder löscht diese wenn
- <varname>$openAction</varname> <constant>NULL</constant> ist.
- </para>
- </sect3>
- </sect2>
- <sect2 id="zend.pdf.pages.interactive-features.outlines">
- <title>Dokument Outline (Bookmarks)</title>
- <para>
- Ein PDF Dokument kann optional ein Dokument Outline am Schirm anzeigen, welcher es dem
- Benutzer erlaubt interaktiv von einem Teil des Dokuments zu einem anderen zu navigieren.
- Der Outline besteht aus einer baum-strukturierten Hierarchie von Outline Elementen
- (manchmal Bookmarks genannt), welche als visuelle Tabelle des Inhalts fungieren um dem
- Benutzer die Struktur des Dokuments anzuzeigen. Der Benutzer kann individuelle Elemente
- interaktiv öffnen und schließen indem er Sie mit der Maus anklickt. Wenn ein Element
- geöffnet ist, werden seine unmittelbaren Kinder in der Hierarchie auf dem Schirm
- sichtbar; jedes Kind kann seinerseits geöffnet und geschlossen werden, das weitere Teile
- der Hierarchie selektiv anzeigt oder versteckt. Wenn ein Element geschlossen wird,
- werden alle seine abhängigen Elemente in der Hierarchie versteckt. Das Klicken auf einen
- Text von irgendeinem sichtbaren Element aktiviert dieses Element, was dazu führt das die
- anzeigende Anwendung zum Ziel springt oder eine mit dem Element assoziierte Aktion
- ausführt.
- </para>
- <para>
- Die Klasse <classname>Zend_Pdf</classname> bietet eine öffentliche Eigenschaft
- <varname>$outlines</varname> welche ein Array von
- <classname>Zend_Pdf_Outline</classname> Objekten ist.
- <programlisting language="php"><![CDATA[
- $pdf = Zend_Pdf::load($path);
- // Entfernt ein Outline Element
- unset($pdf->outlines[0]->childOutlines[1]);
- // Setzt Outline damit es Dick angezeigt wird
- $pdf->outlines[0]->childOutlines[3]->setIsBold(true);
- // Fügt den Outline Eintrag hinzu
- $pdf->outlines[0]->childOutlines[5]->childOutlines[] =
- Zend_Pdf_Outline::create('Chapter 2', 'chapter_2');
- $pdf->save($path, true);
- ]]></programlisting>
- </para>
- <para>
- Outline Attribute können mit Hilfe der folgenden Methoden empfangen oder gesetzt werden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>string getTitle()</methodname> - holt den Titel des Outline
- Elements.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setTitle(string $title)</methodname> - setzt den Titel des Outline
- Elements.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>boolean isOpen()</methodname> - <constant>TRUE</constant> wenn
- Outline standardmäßig geöffnet ist.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setIsOpen(boolean $isOpen)</methodname> - setzt den isOpen Status.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>boolean isItalic()</methodname> - <constant>TRUE</constant> wenn
- das Outline Element schräg dargestellt wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setIsItalic(boolean $isItalic)</methodname> - setzt den isItalic
- Status.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>boolean isBold()</methodname> - <constant>TRUE</constant> wenn das
- Outline Element dick dargestellt wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setIsBold(boolean $isBold)</methodname> - setzt den isBold Status.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>Zend_Pdf_Color_Rgb getColor()</methodname> - holt die Outline Text
- Farbe (<constant>NULL</constant> bedeutet schwarz).
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setColor(Zend_Pdf_Color_Rgb $color)</methodname> - setzt die Outline
- Text Farbe (<constant>NULL</constant> bedeutet schwarz).
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>Zend_Pdf_Target getTarget()</methodname> - holt das Outline Ziel
- (eine Aktion oder ein benanntes Zielobjekt).
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setTarget(Zend_Pdf_Target|string $target)</methodname> - setzt ein
- Outline Ziel (Aktion oder Ziel). Ein String kann verwendet werden um ein
- benanntes Ziel zu identifizieren. <constant>NULL</constant> bedeutet
- 'kein Ziel'.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>array getOptions()</methodname> - holt die Outline Attribute als
- Array.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setOptions(array $options)</methodname> - setzt Outline Optionen.
- Die folgenden Optionen werden erkannt: 'title', 'open', 'color', 'italic',
- 'bold', und 'target'.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Ein neues Outline kann auf folgenden zwei Wegen erstellt werden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>Zend_Pdf_Outline::create(string $title[, Zend_Pdf_Target|string
- $target])</methodname>
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>Zend_Pdf_Outline::create(array $options)</methodname>
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Jedes Outline Objekt kann Kinder-Outline Elemente haben die in der öffentlichen
- Eigenschaft <varname>Zend_Pdf_Outline::$childOutlines</varname> aufgelistet werden. Das
- ist ein Array von <classname>Zend_Pdf_Outline</classname> Objekten. Deshalb sind
- Outlines als Baum organisiert.
- </para>
- <para>
- Die Klasse <classname>Zend_Pdf_Outline</classname> implementiert das RecursiveArray
- Interface damit man durch Kinder-Outlines rekursiv iterieren kann indem
- RecursiveIteratorIterator verwendet wird:
- <programlisting language="php"><![CDATA[
- $pdf = Zend_Pdf::load($path);
- foreach ($pdf->outlines as $documentRootOutlineEntry) {
- $iterator = new RecursiveIteratorIterator(
- $documentRootOutlineEntry,
- RecursiveIteratorIterator::SELF_FIRST
- );
- foreach ($iterator as $childOutlineItem) {
- $OutlineItemTarget = $childOutlineItem->getTarget();
- if ($OutlineItemTarget instanceof Zend_Pdf_Destination) {
- if ($pdf->resolveDestination($OutlineItemTarget) === null) {
- // Markiert ein Outline Element dessen Ziel
- // nicht auflösbar ist mit Roter Farbe
- $childOutlineItem->setColor(new Zend_Pdf_Color_Rgb(1, 0, 0));
- }
- } else if ($OutlineItemTarget instanceof Zend_Pdf_Action_GoTo) {
- $OutlineItemTarget->setDestination();
- if ($pdf->resolveDestination($OutlineItemTarget) === null) {
- // Markiert ein Outline Element dessen Ziel
- // nicht auflösbar ist mit Roter Farbe
- $childOutlineItem->setColor(new Zend_Pdf_Color_Rgb(1, 0, 0));
- }
- }
- }
- }
- $pdf->save($path, true);
- ]]></programlisting>
- </para>
- <note>
- <para>
- Alle Outline Elemente mit unlösbaren Zielen (oder Zielen auf GoTo Aktionen) werden
- aktualisiert wärend das dokument gespeichert wird, indem dessen Ziele auf
- <constant>NULL</constant> gesetzt werden. Damit wird das Dokument nicht durch
- Entfernen von Seiten korrupiert auf die durch Outlines referenziert wird.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.pdf.pages.interactive-features.annotations">
- <title>Anhänge</title>
- <para>
- Ein Anhang assoziiert ein Objekt wie eine Notiz, einen Sound, oder einen Film mit einem
- Ort auf einer Seite in einem PDF Dokument, oder bietet einen Weg um mit dem Benutzer zu
- interagieren, durch Verwendung von Maus und Tastatur.
- </para>
- <para>
- Alle Anhänge werden durch die abstrakte Klasse
- <classname>Zend_Pdf_Annotation</classname> repräsentiert.
- </para>
- <para>
- Anhänge können einer Seite angehängt werden indem die Methode
- <methodname>Zend_Pdf_Page::attachAnnotation(Zend_Pdf_Annotation
- $annotation)</methodname> verwendet wird.
- </para>
- <para>
- Aktuell können drei Typen von Anhängen von Benutzern erstellt werden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>Zend_Pdf_Annotation_Link::create($x1, $y1, $x2, $y2,
- $target)</methodname> wobei <varname>$target</varname> ein Aktionsobjekt
- oder ein Ziel oder ein String ist (welche für ein benanntes Zielobjekt
- verwendet werden kann).
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>Zend_Pdf_Annotation_Text::create($x1, $y1, $x2, $y2,
- $text)</methodname>
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>Zend_Pdf_Annotation_FileAttachment::create($x1, $y1, $x2, $y2,
- $fileSpecification)</methodname>
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Ein Link-Anhang repräsentiert entweder einen Hypertext Link oder ein Ziel anderswo im
- Dokument oder eine Aktion die ausgeführt werden soll.
- </para>
- <para>
- Ein Text Anhang repräsentiert eine "schnelle Notiz" die an einem Punkt im PDF Dokument
- angehängt ist.
- </para>
- <para>
- Ein File Anhang enthält eine Referenz zu einer Datei.
- </para>
- <para>
- Die folgenden Methoden können von allen Typen von Anhängen verwendet werden:
- </para>
- <itemizedlist>
- <listitem>
- <para><methodname>setLeft(float $left)</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>float getLeft()</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>setRight(float $right)</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>float getRight()</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>setTop(float $top)</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>float getTop()</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>setBottom(float $bottom)</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>float getBottom()</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>setText(string $text)</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>string getText()</methodname></para>
- </listitem>
- </itemizedlist>
- <para>
- Die Text Anhang Eigenschaft ist ein Text der für den Anhang dargestellt wird oder, wenn
- dieser Typ von Anhang keinen Text darstellt, eine alternative Beschreibung des
- Inhalts des Anhangs in einer menschlich lesbaren Form.
- </para>
- <para>
- Link Anhangs Objekte bieten auch zwei zusätzliche Methoden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>setDestination(Zend_Pdf_Target|string $target)</methodname>
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>Zend_Pdf_Target getDestination()</methodname>
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|