baseportal
Suche: 
 Forum   Start 

PDF erstellen

Nur Miete / Lizenz 
(Nur für Miete und Lizenz)

baseportal.de bietet über eine Service-Funktion die Möglichkeit PDFs von Webseiten "on-the-fly" zu erstellen.

Beispiel:

<perl>
$_header="Content-type: application/pdf\n\n";
$url="baseportal.de";
out get "http://pdf.baseportal.de?url=".convert_url($url);
</perl>
Erzeugt ein PDF von http://baseportal.de und schickt dieses an den Browser. Die mit dem Parameter "url" übermittelte URL muss "URL-kodiert" sein.

Bitte beachten: Es ist sinnvoll, beim Aufruf der Seite "&.pdf" an die URL anzuhängen, da einige Internet-Explorer-Versionen fehlerhaft sind und die Ausgabe sonst nicht als PDF erkennen. Aus demselben Grund, sollten baseportal-Aufrufe in der "Kurzform", also z.B. "netpure.de/baseportal/name/seite", bzw. "domain.de/baseportal/seite" angegeben werden.
Es gehen so ziemlich alle HTML-Tags als Vorlage, jedoch kein CSS. Tiefe Tabellenschachtelungen können auch das gewollte Layout zerstören.

Um dynamisch PDFs aus einer Datenbank zu erzeugen, muss einfach eine entsprechende baseportal-Seite angegeben werden, die z.B. eine Tabelle erzeugt:

<perl>
$_header="Content-type: application/pdf\n\n";
$url="DOMAIN.de/baseportal/SEITE";
out get "http://pdf.baseportal.de?url=".convert_url($url);
</perl>
Und in "SEITE" steht dann z.B.
<table>
<loop>
<tr><td>$Name</td><td>$Strasse</td></tr>
</loop>
</table>
Sie können auch beides gleich auf einer Seite zusammenfassen:
<perl>
my $link="netpure.de/baseportal/baseportal/pdf_test";
if($pdf==0)
{
  out '<a href="'.$link.'?pdf=1">Diese Seite als PDF</a><br><br>';
} elsif($pdf==1)
{
  $_header="Content-type: application/pdf\n\n";
  out get "http://pdf.baseportal.de?url=".convert_url("$link?pdf=2");
}
</perl>

...hier die normale Seite...
Und natürlich kann man den obigen Perl-Teil einfach in eine eigene Seite schreiben und bei Bedarf per <include ...> einfügen ;-)

Kleine Tipps: man kann viele 'vorgegebenen' Parameter beeinflussen oder ausschalten. Mit folgendem Code schaltet man alle Header und Footer aus und setzt die Seitengrösse A4 und die Ränder fest, sodass man die ganze Fläche nutzen kann:

<!-- MEDIA SIZE A4 -->
<!-- MEDIA TOP 0mm -->
<!-- MEDIA BOTTOM 0mm -->
<!-- MEDIA LEFT 20mm -->
<!-- MEDIA RIGHT 20mm -->
<!-- HEADER LEFT "" -->
<!-- HEADER CENTER "" -->
<!-- HEADER RIGHT "" -->
<!-- FOOTER LEFT "" -->
<!-- FOOTER CENTER "" -->
<!-- FOOTER RIGHT "" -->
Um Elemente zu positionieren, beispielsweise einen Balken am unteren Rand oder um mehrere Spalten sauber zu erzeugen, muss man mit Blind-GIFs arbeiten, die in Tabellen eingefügt werden und die Grösse der Zellen erzwingen (cf. Blinde Pixelgrafik).

Als Verweis für eine PDF-Seite bietet sich dieses kleine Gif an:

Des weiteren kann die Ausgabe über eine Vielzahl von Parametern gesteuert werden:

http://www.easysw.com/htmldoc/htmldoc.html#CMDREF

Bis auf die Befehle, bei denen es um Dateien auf dem Server geht (verboten ist also z.B. "batch"), ist alles erlaubt. Diese müssen einfach mit übergeben werden (ohne "--" davor), z.B.:

<perl>
$_header="Content-type: application/pdf\n\n";
$url="baseportal.de";
out get "http://pdf.baseportal.de?url=".convert_url($url)."&fontsize=10&bodycolor=f0f0ff&landscape=1";
</perl>
Letzte Änderung am 1.12.2006, 16:30 - Stichworte: PDF

c - o - + 
© baseportal GmbH. Alle Rechte vorbehalten.


powered in 0.09s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!