2016-05-03 4 views
1

Ich benutze wkhtmltopdf mit PHP, und es funktioniert gut. Nun möchte ich einige Variablen aus der PHP-Datei zu den HTML hinzufügen, aber ich finde keine Lösung.wkhtmltopdf Übergabe Variable in HTML-Datei

die PHP-Datei:

<?php 
    require '/path/vendor/autoload.php'; 
    use mikehaertl\wkhtmlto\Pdf; 
    $pdf = new Pdf(array(
     'no-outline', 
     'margin-top' => 0, 
     'margin-right' => 0, 
     'margin-bottom' => 0, 
     'margin-left' => 0, 

     // Default page options 
     'disable-smart-shrinking', 
)); 
if($_GET['file'] == 'public'){ 
    $pdf = new Pdf('template_public.html'); 
}else{ 
    $pdf = new Pdf('template_pro.html'); 
} 
    $pdf->send(); 
?> 

Die HTML-Datei:

<html> 
    <head> 
     <title>Generated PDF file</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
    </head> 
    <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> 
     <div> 
      {title} 
     </div> 
    </body> 
</html> 

Wie kann ich die {title} in der HTML-Datei ersetzen?

Antwort

1

Dies sollte alle {Variablen} in den HTML-Dateien mit ihren Werten bei einem Array von Parametern ersetzen.

$params = ["title"=>"title_val", "content" => "something", "key" => "value"]; 
$pdf = new Pdf(); 
$html = file_get_contents($templateFile);  
foreach($params as $key=>$value) { 
    $html = str_replace("{".$key."}", $value, $html); 
} 

//Renders the pdf directly from the html string, instead of loading the file directly 
$pdf->addPage($html); 
$pdf->send(); 
+0

Ich bin mir nicht sicher, ob das den Job erledigt –

+0

behalten vergessen Params und Rückgabewerte. sonst, warum nicht? Ok, sollte jetzt ein komplettes Beispiel sein. – overburn

+0

Obwohl dieser Code die Frage beantworten kann, zusätzliche Kontext in Bezug auf _why_ und/oder _how_ es Antworten die Frage würde erheblich verbessern seine langfristige Wert. Bitte [bearbeiten] Sie Ihre Antwort, um eine Erklärung hinzuzufügen. –

0

Meine Aufgabe ist es, echte Client-IP-Wert an PDF übergeben. Wenn ich IP als $ ENV {REMOTE_ADDR} lese, erhielt ich Server-IP, nicht Client-IP.

Ich benutze diesen Code, um das Problem zu lösen:

wkhtmltopdf --cookie remote_addr $IP 

Es geht IP Variable pdf. Dann kann meine HTML-Seite Cookie-Werte lesen und sie in Text anzeigen.