AlivePDF ist eine Library zur Erzeugung PDF-Dateien mit Flash, Flex und AIR.
Das Interessante dabei ist, dass diese Open Source Lösung rein client-seitig funktioniert. Es wird also keine spezielle Serverlösung benötigt. In Verbindung mit der Möglichkeit, mithilfe des Flash Player 10 Dateien lokal abzuspeichern, lassen sich problemlos individuelle PDFs aus einer Anwendung erstellen und abspeichern.
AlivePDF hat viele verschiedene Funktionen, um das Layout und die Inhalte von PDFs zu beeinflussen.
Das folgende Beispiel zeigt, wie ein Bildinhalt auf der Flashbühne "abfotografiert" und als Bitmap in die PDF-Datei übertragen wird. Zusätzlich wird ein Text von einem Flash-Textfeld im PDF platziert.
Beispiel
Quellcode
Hier der Quellcode der Beispielanwendung.
-
<?xml version="1.0" encoding="utf-8"?>
-
:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="0xdddddd" horizontalAlign="left"> -
-
:Script> -
import mx.collections.ArrayCollection;import flash.net.FileReference;import flash.utils.ByteArray;import mx.graphics.ImageSnapshot;import mx.graphics.codec.JPEGEncoder;import org.alivepdf.pdf.PDF;import org.alivepdf.layout.*;import org.alivepdf.display.Display;import org.alivepdf.saving.Method;import org.alivepdf.fonts.*;import org.alivepdf.colors.RGBColor;/*** PDF Variable von AlivePDF*/public var myPDF:PDF/*** Dateinamen der Bilder*/[Bindable]private var pictureFiles:ArrayCollection = new ArrayCollection( ['bild0.jpg', 'bild1.jpg', 'bild2.jpg'] );/*** Zaehlvariable fuer Bilder*/[Bindable]private var counter:Number = 0;/*** PDF erstellen*/public function createPDF():void {setupPDF();addAssetsToPDF();savePDF();}private function setupPDF():void {// PDF erstellenmyPDF = new PDF( Orientation.PORTRAIT, Unit.MM, Size.A4 );// Zoom auf 100% einstellenmyPDF.setDisplayMode ( Display.FULL_PAGE );// Seite hinzufügenmyPDF.addPage();}private function addAssetsToPDF():void {// Bild capturenmyPDF.addImageStream(ImageSnapshot.captureImage(myImage, 0, new JPEGEncoder(85)).data, 10, 10, 150, 100);// Schriftart und -groessemyPDF.setFont ( FontFamily.HELVETICA, Style.NORMAL );myPDF.setFontSize ( 16 );// Text hinzufügenmyPDF.addMultiCell ( 100, 220, myCustomText.text);}/*** PDF lokal abspeichern (ab FP 10)*/private function savePDF():void {var bytes:ByteArray = myPDF.save( Method.LOCAL);var myFileRef:FileReference = new FileReference();myFileRef.save(bytes, "custom.pdf");}]]>:Script>
:Image id="myImage" source="{pictureFiles.getItemAt(counter)}" width="500" height="333" /> :FormItem label="Picture"> :NumericStepper minimum="0" maximum="2" stepSize="1" id="myNumericStepper" value="@{counter}" /> :FormItem>:FormItem label="Text"> :TextInput text="Individueller Text" id="myCustomText" /> :FormItem>:Button label="Create PDF" click="createPDF();" /> :Application>
Link: code.google.com/p/alivepdf/
Link: AlivePDF Dokumentation
8 Kommentare zum Beitrag "AlivePDF: PDF-Dateien mit Flash erzeugen"
Servus,
ich hab letztes Jahr ein Projekt mit AlivePDF realisiert und es war alles andere als Problemlos. Gerade bei mehrseitigen Dokumenten mit Bildern, Texten und etwas komplexeren Layout kommt die Bibliothek, in ihrer damaligen Version 0.1.4.4, schnell an die Grenze. Ich weiß nicht in wie weit sich die Bibliothek weiter entwickelt hat ich rate trotzdem bei größeren Projekten dazu AlivePDF intensiv zu testen und die Variante eine PDF per PHP zu erzeugen im Hinterkopf zu behalten.
Hi Jan,
gut zu wissen .. danke für die Ergänzung.
Steht dein Projekt zufällig online, dass man es sich mal anschauen kann?
Wenn ja, kannst du ja mal einen Link posten.
Hiho!
Und wie ist das mit dem Flash-Player 9? In diesem Fall muss das PDF über den Server erzeugt werden oder? Das ist mit AlivePDF aber total einfach. Es braucht nur eine PHP-Datei auf nem Server, die das PDF-Dokument dann als Download abliefert.
Wäre aber cool, wenn das jemand kurz bestätigen könnten. Ich denke es ist momentan noch etwas verfrüht, von einer 100%igen FlashPlayer 10-Installbasis auszugehen oder?
Beste Grüße,
Dirk
Hi Dirk,
ja genau. Das kannst einfach eine PHP-Datei ansteuern, die dann einen Download im Browser erzeugt.
Beispiel:
myPDF.save( Method.REMOTE, "http://alivepdf.bytearray.org/wp-content/demos/create.php", "generated.pdf" );
Alles klar & Danke!
Gruß,
Dirk
[…] in Flash zu erstellen. Abspeichern ist auch kein Problem, das geht seit Flash Player 10. AlivePDF: AlivePDF: PDF-Dateien mit Flash erzeugen | http://www.video-flash.de __________________ http://www.video-flash.de | Open Source FLV Player | SWF Screensaver for […]
[…] mal ne Suchmaschine ausprobieren… AlivePDF: PDF-Dateien mit Flash erzeugen | http://www.video-flash.de __________________ ERROR: Signature is too […]
hallo Flo,
ich bekomme das nicht zum laufen! :(
wärst du so nett mir deine beispiel flash datei zu emailen?
danke!!
Tom
Schreibe einen Kommentar