23.4. Kann ich bestehende PDF-Dateien als Template für dynamische Dokumente verwenden?Antwort von Kai SchröderJein, nicht in jedem Fall. Ob sich PDF-Dateien als Template eignen, hängt von verschiedenen Faktoren ab. Zum ersten kann man mittels Adobe Acrobat ein PDF optimieren (siehe Kapitel F der PDF-Referenz). Dabei wird das PDF in seiner Struktur verändert und zum Teil komprimiert. Zum anderen sind für PDF-Dateien einige Sicherheitseinstellungen möglich, die die nachträgliche Veränderung nicht erlauben. Ein nicht optimiertes und ungeschütztes PDF läßt sich aber als Template verwenden. Antwort von Thomas WeinertDas Beispiel liest eine PDF-Datei ein und ersetzt vordefinierte Inhalte in Formularfeldern. Die Inhalte müssen dazu dem Schema [[$variable]] entsprechen. Das Array $pdf_vars kann nach Bedarf gefüllt werden. Im Beispiel wird der Inhalt [[$foobar]] durch dclp-faq ersetzt.
<?php
//PDF-Datei mit Forumarfeldern
$pdffile = "sample_form.pdf";
//Variablen
$pdf_vars = array(
'foobar'=>'dclp-faq'
);
//Funktion zum Ersetzen
function replace_pdf_var($match){
if (isset($GLOBALS['pdf_vars'][$match[1]])) {
return $GLOBALS['pdf_vars'][$match[1]];
} else {
return $match[1];
}
}
if(file_exists($pdffile)){
//Das Template binär öffnen
if ($fp = fopen($pdffile, 'rb')) {
$template = fread ($fp, filesize ($pdffile));
fclose ($fp);
//auf das Template einen Regex anwenden.
$pdf = preg_replace_callback('#\[\[\$([^\]]+)\]\]#',
'replace_pdf_var', $template);
//HTTP-Header ausgeben
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$pdffile\"");
header("Content-type: application/pdf");
//das fertige PDF ausgeben
echo $pdf;
}
}
?>
|
||
| 23.4. Kann ich bestehende PDF-Dateien als Template für dynamische Dokumente verwenden? http://www.php-faq.de/q/q-pdf-files-template.html |
||
| Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team | ||