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 |