|  | 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 | ||