AcroForm2 Dokumentation 2.0.6
verfasst 19.04.2009 von MediaCix | kurze URL:
/t656 |
Kommentar schreiben
AcroForm2 ist im Zusammenhang mit FPDF eine Alternative um online interaktive Formulare zu erstellen.
Diese Erweiterung ersetzt allerdings nicht das professionelle Adobe Acrobat.
Hier die Dokumentation zur FPDF AcroForm2 Klasse Version 2.0.6.
Diese Erweiterung für FPDF ist in der Freizeit programmiert worden und ist kostenlos.
Dafür übernehme ich keinerlei Support!
Inhaltsverzeichnis
Hinweise zur Benutzung
Was wird benötigt?
Einbinden der AcroForm Klasse am Beispiel
Funktionen Optionen und Parameter
Formular Styles
Funktionen Formular Elemente
Zusatz Funktionen
Formular Attribute
» Funktionen Optionen und Parameter
Für Darstellungen, Parameter, Textausrichtungen, Flags und Beschriftung.
Funktion: SetFormO()
Funktion: SetFormFlag()
Funktion: SetFormTextHidden()
Funktion: SetFormButtonText()
nach oben
» Formular Styles
Für Darstellungen der Formularfelder.
Funktion: SetFormD()
Funktion: SetFormBorderWidth()
Funktion: SetFormBorderStyle()
Funktion: SetFormBorderColor()
Funktion: SetFormBackgroundColor()
nach oben
» Funktionen Formular Elemente
Die eigentlichen Formular-Elemente.
Funktion: SetFormText()
Funktion: SetFormTextFont()
Funktion: SetFormChoice()
Funktion: SetCheckBox()
Funktion: SetRadio()
Funktion: SetFormFile()
Funktion: SetFormReset()
Funktion: SetFormSubmit()
Funktion: SetOnlySubmitFields()
Funktion: SetNoResetFields()
nach oben
» Zusatz Funktionen
Funktionen die sich beim programmieren mit ergeben haben, aber nicht unbedingt gewollt waren :)
Es ist eventeull möglich, dass ich dazu extra Klassen erstellen werde.
Funktion: SetFormTextJS()
Funktion: SetFormButtonJS()
Funktion: SetMenuButton()
Funktion: SetButtonImportIcon()
Funktion: SetWeblinkButton()
Funktion: SetSigButton()
nach oben
» Hinweise die man vor der Benutzung wissen sollte
Bestimmte Funktionen wie PDF mit Formulare speichern, Formular-Daten exportieren/importieren (*.fdf) stehen erst zu verfügung wenn man Adobe Acrobat hat. Der einfache Adobe Reader ist in seinen Möglichkeiten sehr eingeschränkt.
Weitere Hinweise findet man in der FAQ zu der AcroForm2 Klasse.
AcroForm2 wird auf PHP5 zugeschnitten, da der Support von PHP4 bald generell wegfällt.
nach oben
» Was wird benötigt?
class_acroform_[version].php
Die eigentliche AcroForm Klasse Version 2.
Sie enthält alle Funktionen, die unten beschrieben werden.
Um auch ältere Version zu laden, ändert sich der Dateiname mit der Versionsnummer.
AcroForm2 Download
nach oben
» Einbinden der AcroForm Klasse am Beispiel
» PHP
<?php
/*
die Hauptklasse von FPDF muss zuvor geladen werden
*/
require ('fpdf.php');
/*
Jetzt wird die AcroForm Klasse eingebunden,
sofern sie im selben Verzeichnis liegt.
*/
include_once ('class_acroform_[version].php');
/*
jetzt kann das PDF erstellt werden,
Hochformat, Einheit mm und Größe A4
*/
$pdf = new PDF('P', 'mm', 'A4');
?>
nach oben
»
Funktion: SetFormD()
Mit dieser Funktion kann die Darstellung der Felder und Button definiert werden.
Hier lassen sich Rahmenstärke, Rahmenfarbe, Hintergrundfarbe und Style definieren.
Wird diese Funktion benutzt, muss sie vor dem jeweiligen Formular-Element gesetzt werden.
Die Einstellungen bleiben solange aktiv, bis sie wieder geändert werden.
SetFormD (
<linewidth>, -> S-schmal, M-mittel, B-breit
<linestyle>, -> S-Solid, D-Dashline, B-Bevel, I-Inlinebevel, U-Underline
<bc color>, -> RGB Array für Rahmenfarbe, 0-255
<bg color> -> RGB Array für Hintergrundfarbe, 0-255
)
nach oben
»
Funktion: SetFormBorderWidth()
Diese Funktion setzt den Rahmen von Formularfelder.
Derzeit (PDF-Bedingt) werden nur 3 Werte angenommen.
Die Einstellungen bleiben solange aktiv, bis sie wieder geändert werden.
SetFormBorderWidth (
<linewidth> -> S-schmal, M-mittel, B-breit
)
nach oben
»
Funktion: SetFormBorderStyle()
Diese Funktion setzt den Rahmen-Style von Formularfelder.
Die Einstellungen bleiben solange aktiv, bis sie wieder geändert werden.
SetFormBorderStyle (
<linestyle> -> S-Solid, D-Dashline, B-Bevel, I-Inlinebevel, U-Underline
)
nach oben
»
Funktion: SetFormBorderColor()
Diese Funktion setzt die Rahmenfarbe der Formularfelder.
Die Einstellungen bleiben solange aktiv, bis sie wieder geändert werden.
SetFormBorderColor (
< r [,g] [,b] > -> RGB für Rahmenfarbe
)
nach oben
»
Funktion: SetFormBackgroundColor()
Diese Funktion setzt die Hintergrundfrabe bei Formularfelder.
Die Einstellungen bleiben solange aktiv, bis sie wieder geändert werden.
SetFormBackgroundColor (
< r [,g] [,b] > -> RGB für Rahmenfarbe
)
nach oben
»
Funktion: SetFormO()
Texte in Textfeldern können mit dieser Funktion ausgerichtet werden.
Die Funktion muss vor dem jeweiligen Textfeld gesetzt werden.
SetFormO (
<ausrichting>
->
0-normal
L-links
C-zentriert
R-rechts
)
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-Textausrichtung-im-Textfelder-182.html
nach oben
»
Funktion: SetFormFlag()
Die Funktion SetFormFlag regelt, um was es sich für ein Textfeld handelt.
Textfelder können Einzeilig, Mehrzeilig, versteckt, Passwort-Feld oder Readonly-Status haben.
Mehrer Kombination sind dabei möglich.
Wird diese Funktion benutzt, muss sie vor dem jeweiligen Textfeld gesetzt werden.
Falls SetFormFlag nicht gesetzt ist, ist der Flag 0, was ein normales einzeiliges Textfeld ist,
ähnlich wie bei HTML-Formular INPUT mit TYPE Text.
SetFormFlag (
<array>
-> Kombination möglich, ausser bei Passwort
0 - normales Textfeld (default, wenn SetFormFlag nicht gesetzt)
1 - readonly (schreibgeschützt)
2 - Feld muss ausgefüllt sein [beta]
3 - Feld wird nicht exportiert bzw. mittels Submit versendet
13 - mehrzeilig
14 - passwort
)
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-Fields-47.html
nach oben
»
Funktion: SetFormTextHidden()
Textfelder können ähnlich wie bei HTML auch als Hidden-Felder gesetzt werden.
Dazu vor dem jeweiligen Textfeld einfach diese Funktion setzen.
SetFormTextHidden bezieht sich nur auf das nächste gesetzte Textfeld.
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-Fields-47.html
nach oben
»
Funktion: SetFormButtonText()
Button können natürlich beschriftet werden, was mit dieser Funktion gemacht werden kann.
SetButtonText bezieht sich auf alle folgenen Button die gesetzt werden.
Die Funktion muss vor dem jeweiligen Button gesetzt werden.
SetFormButtonText (
text none aktiv -> Button-Text
[, text mouseover] -> Button-Text bei Mouseover
[, text mouseclick] -> Button-Text bei Button-Klick
)
nach oben
»
Funktion: SetFormText()
SetFormText ist vergleichbar mit HTML-Formular Input-Text und Textarea.
Breite und Höhe entsprechen der eingestellten PDF-Einheit die definiert wurde.
(eine Änderung an diesen Parameter ist in späteren Version möglich)
Parameter name muss bei mehreren gleichen Feldern unterschiedliche Namen haben.
(eine Änderung an diesen Parameter ist in späteren Version möglich)
Der Defaultwert dieser Funktion ist ein einzeilges Textfeld wie in HTML mit Input-Text.
Ein mehrzeilges Textfeld, Passwort Feld, verstecktes Feld, ReadOnly Feld oder Darstellung kann vorher eingestellt werden.
Sie dazu
SetFormD,
SetFormO,
SetFormFlag,
SetFormHidden
Bei value kann ein vorher definierter Wert eingestellt werden.
Will man das PDF dynamisch schon mit Werten füllen, dann muss value gesetzt werden.
Bei default kann ein Default-Wert eingetragen werden.
Wird value nicht gesetzt, oder das Formular aus Reset gesetzt, dann wird dieser Default-Wert übermittelt.
Bei title kann ein Mouseover Text gesetzt werden, ähnlich wie Tooltip.
Die Postion kann vorher mit SetXY() festgelegt werden.
Eine automatische Anpassung der Position von X und Y wurde absichtlich nicht integriert.
Parameter in [ und ] sind Optional.
SetFormText (
<breite>,
<höhe>,
<name>, -> Feldname
[,<value>] -> Value
[,<default>] -> Defaultwert
[,<title>] -> Text bei Mouseover
)
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-Fields-47.html
nach oben
»
Funktion: SetFormTextFont()
Mit SetFormTextFont() kann die Schriftart von Textfelder oder Button verändert werden.
Dabei benutzt AcroForm die Standard-Schriften Courier, Helvetica, Time Roman, Symbol und Zapf Dingbats.
Folgende Kürzel werden benutzt:
'cour' = Courier
'couri' = Courier kursiv
'courb' = Courier fett
'courbi' = Courier fett und kursiv
'helv' = Helvetiva
'helvi' = Helvetiva kursiv
'helvb' = Helvetiva fett
'helvbi' = Helvetiva fett und kursiv
'time' = Times Roman
'timei' = Times Roman kursiv
'timeb' = Times Roman fett
'timebi' = Times Roman fett und kursiv
'symb' = Symbol
'zapf' = Zapf Dingbats
SetFormTextFont (
[<name>] -> Font Kürzel
)
Wird SetFormTextFont() ohne Parameter aufgerufen, wird die Standard-Schrift Helevetica benutzt.
nach oben
»
Funktion: SetFormChoice()
SetFormChoice kann als Listbox oder Combobox eingesetzt werden.
Dazu muss nur typ definiert werden.
Parameter name muss bei mehreren gleichen Feldern unterschiedliche Namen haben (eine Änderung an diesen Parameter ist in späteren Version möglich).
Parameter array füttert dieses Feld mit Daten.
Beispiel:
» PHP
<?php
$array = Array( 'FPDF ist geil', 'FPDF geht so', 'FPDF ist mist' );
$pdf->SetFormChoice( 60, 30, 'combobox_1', 0, $array, 1);
?>
In PHP kann es dann mit $_POST['combobox_1'] abgefragt werden.
Bei title kann ein Mouseover Text gesetzt werden, ähnlich wie Tooltip.
SetFormChoice (
<breite>,
<höhe>,
<name>,
<typ> -> 0-Listbox, 1-Combobox
<array>, -> Array mit Inhalten
[,<title>] -> Text bei Mouseover
)
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-Listbox-und-Combobox-177.html
nach oben
»
Funktion: SetCheckBox()
Diese Funktion ist ähnlich wie HTML-Checkboxen.
Im Gegensatz zu Radiobuttons müssen Checkboxen keine identische Namen haben, um zu funktionieren.
SetCheckBox(
<breite>,
<höhe>,
<name>,
<value>,
[,<title>] -> Text bei Mouseover
)
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-Radiobutton-und-Checkbutton-178.html
nach oben
»
Funktion: SetRadio()
Diese Funktion ist ähnlich wie HTML-Radio-Buttons.
SetRadio(
<breite>,
<höhe>,
<name>,
<value>,
[,<title>] -> Text bei Mouseover
)
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-Radiobutton-und-Checkbutton-178.html
nach oben
»
Funktion: SetFormFile()
Diese Funktion ist für File-Upload gedacht.
Dazu muss PDF-JavaScript aktiviert sein, sonst öffnet sich das Dialog-Feld nicht.
In PHP können die Daten mit $_FILES abgefragt werden.
Beim setzen dieser Funktion werden automatisch ein Textfeld mit Such-Button gesetzt.
SetFormFile (
<breite>,
<höhe>,
<name>,
)
nach oben
»
Funktion: SetFormReset()
Diese Funktion setzt ein Reset-Button.
Das Verhalten ist ähnlich wie bei HTML-Formularen mit RESET.
Im PDF gibt es allerdings die Besonderheit, dass bei Felder wo ein Default-Wert gesetzt wurde, dieser Wert im jeweiligen Feld eingetragen wird.
SetFormReset (
<breite>,
<höhe>,
<name>
[,<title>] -> Text bei Mouseover
)
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-RESET-und-SUBMIT-180.html
nach oben
»
Funktion: SetFormSubmit()
Mit dieser Funktion können die Formularinhalte an eine PHP-Datei versendet werden.
Dabei muss bei URL die jeweilige komplette Ziel-URL eingetragen werden!
Das Formular wird dann mit der Methode POST versendet.
SetFormSubmit (
<breite>,
<höhe>,
<name>,
<url> -> URL wohin die Daten gesendet werden, mittels POST-Methode
[,<title>] -> Text bei Mouseover
)
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-RESET-und-SUBMIT-180.html
nach oben
»
Funktion: SetOnlySubmitFields()
Mit dieser Funktion können nur bestimmte Formularfelder mittels Submit versendet werden.
Dazu müssen die Namen der Felder als Array hier definiert werden.
Nach dem klicken auf Submit werden nur die Felder versendet, die hier angegeben sind.
Im Prinzip ist es damit möglich mehrere Submit-Button zu erstellen, und nur bestimmten Feldern zu zuordnen.
Wird die Funktion nicht benutzt, werden alle Felder versendet.
Nach dem Setzen vom Submit-Button wird diese Array wieder auf 0 gesetzt.
SetOnlySubmitFields (
<array> -> Array mit Feldnamen vom Formular
)
nach oben
»
Funktion: SetNoResetFields()
Normalerweise wird beim klicken auf Reset-Button alle Felder zurück gesetzt.
Mit dieser Funktion können bestimmte Felder davon ausgeschlossen werden.
Dazu müssen die Namen der Felder als Array hier definiert werden.
Wird die Funktion nicht benutzt, werden alle Felder bei Reset zurückgesetzt.
Nach dem Setzen vom Reset-Button wird diese Array wieder auf 0 gesetzt.
SetNoResetFields (
<array> -> Array mit Feldnamen vom Formular
)
nach oben
»
Formular Attribute
Das Verhalten der Attribute wie name, value und title ist ähnlich wie bei HTML-Formularen.
Besonderheit stellt das Attribut default dar.
Wird bei einen Formular der Reset-Button benutzt und angeklickt, dann werden die Felder mit diesen Default-Wert gefüllt.
In PHP können dann die Felder mit $_POST[name vom Feld] abgefragt werden.
nach oben
»
Funktion: SetFormTextJS()
Diese Funktion ist eine Zusatz-Funktion für Adobe Acrobat.
Der Adobe Reader ist in seiner Funktionstüchtigkeit eingeschränkt!
Mit SetFormTextJS() lassen sich Textfelder mit JavaScript formatieren, z.B. bei Rechnungen.
Diese Funktion muss vor dem jeweiligen Textfeld gesetzt werden.
Bei mehreren Textfeldern wo eine Formatierung benutzt wird darauf achten, dass alle Felder unterschiedliche Namensbezeichnungen haben.
An dieser Stelle empfehle ich bei Adobe nach JavaScript Scripting Guide (PDF-Dokumentation) zu suchen, da diese Thema recht umfangreich ist.
Mit JavaScript lassen sich auch andere Formatierungen, Validierungen, Signaturen und/oder Überprüfungen von Eingaben realisieren.
SetFormTextJS(
<name>, -> Namensbezeichnung des Textfeldes
<marker>, ->
F - Format (AFNumber_Format)
K - Key (AFNumber_Keystroke)
V - Valide (AFRange_Validate)
C - Berechnung (AFSimple_Calculate)
<hier JavaScript>
)
SetFormTextJS(
<name>, -> Namensbezeichnung des Textfeldes
<hier JavaScript>
)
Bei Rechnungen können die Eingaben mittels PDF-JS AFNumber_Format() bei der Eingabe formatiert werden.
AFNumber_Format(
2, -> Stellen nach dem Komma
2, -> Format
0 = 1,234.56
1 = 1234.56
2 = 1.234,56
3 = 1234,56
0,
0,
" EUR ", -> Bezeichnung der Währung
false ->
false = Währung hinten dem Betrag
true = Währung vor dem Betrag
)
Weiterhin sind auf die Anführungszeichen zu achten!
In PHP sieht die korrekte Schreibweise so aus:
» PHP
<?php
$pdf->SetFormTextJS('text_1', 'F', 'AFNumber_Format(2, 0, 0, 0, "", true);' );
?>
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-JS-AFNumber_Format-181.html
nach oben
»
Funktion: SetFormButtonJS()
Diese Funktion ist noch Beta und deshalb vorerst unkommentiert.
nach oben
»
Funktion: SetMenuButton()
Einige PDF-Menüelemente können auch als Button im PDF dargestellt werden.
Die Funktionstüchtigkeit hängt allerdings davon ab, ob man Acrobat oder Reader benutzt.
So bleiben einige Funktionen im Reader teilweise wirkungslos.
Die Position der Button kann mit SetXY() gesetzt werden.
Beschriftung der Button kann mittels
SetFormButtonText vorgenommen werden.
SetMenuButton(
<breite>,
<höhe>,
<name>,
<flag>,
->
'FONTSINFO' = Dokumenteigenschaften zeigen
'SHOWHIDEINFO' = Menü Info zeigen
'PRINT' = Menü Drucken zeigen
'PREFS' = Menü Grundeinstellungen zeigen
'SAVE_AS' = Menü Speichern unter
'ZOOM_IN' = PDF vergrößern
'ZOOM_OUT' = PDF verkleinern
'ZOOM_TO' = Menü Zoom zeigen
'INSERT_PAGE' = anderes PDF importieren
'SAVE_IMG' = alle Bilder extrahieren (mind. Acrobat)
'SAVE_JPG' = Bilder extrahieren als JPEG (mind. Acrobat)
'SAVE_PNG' = Bilder extrahieren als PNG (mind. Acrobat)
'SAVE_TIF' = Bilder extrahieren als TIFF (mind. Acrobat)
'EXPORT_FORM' = Formulardaten exportieren (mind. Acrobat)
'IMPORT_FORM' = Formulardaten importieren (mind. Acrobat)
'ROTATE_PAGES' = PDF drehen
'FULLSCREEN' = PDF im FullScreen
'SHOW_GRID' = Gittenetz ein/ausblenden
'SHOW_MENUBAR' = Menüleiste ein/aus
'SHOW_CLIPBOARD' = Zwischenablage zeigen
'SHOW_TOLLBAR' = Werzeugleiste ein/aus
'SHOW_RULES' = Lineal ein/aus
'APPURL' = Web Capture
)
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-Menuebutton-179.html
nach oben
»
Funktion: SetButtonImportIcon()
Mit dieser kann man eigene Bilder und/oder andere PDF-Dokumente in das PDF einbinden.
Dies ist ganz nützlich, wenn man das PDF später ausdrucken möchte.
Unterstützt werden dabei die Formate *.pdf, *.bmp, *.rle, *.gif, *.jpg, *.pcx, *.png und *.tif.
Parameter name muss bei mehreren gleichen Feldern unterschiedliche Namen haben.
(eine Änderung an diesen Parameter ist in späteren Version möglich)
SetButtonImportIcon(
<breite>,
<höhe>,
<name>,
[,<title>] -> Text bei Mouseover
)
Online Beispiel:
http://code.mediacix.de/code/FPDF-AcroForm2-ButtonImportIcon-48.html
Hinweis: Eine Änderung der Funktion in nächsten Versionen ist möglich.
nach oben
»
Funktion: SetWeblinkButton()
Diese Funktion setzt ein Button (Schaltfläche) mit der eine URL geöffnet werden kann.
SetWeblinkButton (
<breite>,
<höhe>,
<name>,
<url> -> URL zur Seite die verlinkt werden soll
)
nach oben
»
Funktion: SetSigButton()
Diese Funktion setzt ein Button zur Eingabe der Signatur, wobei dieser Bereich noch etwas Beta ist.
SetSigButton (
<breite>,
<höhe>,
<name>,
)
nach oben
Themen mit ähnlichen Inhalten
Tags zum Beitrag
acroform2