2012-01-16 28 views
2

私はwelcomemailtemplate.htmlというhtmlファイルを持っており、そのファイルをPDFに変換する必要があります。私は最初のYiiフレームワークが提供する以下の方法を使用してこのファイルを読むPHP:htmlファイルをpdfに変換する

$filename = Yii::app()->basePath.'\views\email\welcomemailtemplate.html'; 
$handle = fopen($filename, "r"); 
$contents = fread($handle, filesize($filename)); 
$name = $model->name; 
fclose($handle); 
$message = str_replace ("[username]", $name, $contents); 

すると、PDFファイルを生成するために、以下のパラメータが設定されています。

Yii::import('application.vendors.*'); 
     require_once('tcpdf/tcpdf.php'); 
     require_once('tcpdf/config/lang/eng.php'); 
     $pdf = new TCPDF(); 
     $pdf->SetCreator("Torget"); 
     $pdf->SetAuthor('test name'); 
     $pdf->SetTitle('Savani Test'); 
     $pdf->SetSubject(' Torget Order Confirmation'); 
     $pdf->SetKeywords(' Torget, Order, Confirmation'); 
     //$pdf->SetHeaderData('', 0, PDF_HEADER_TITLE, ''); 
     $pdf->SetHeaderData('', 0, "Torget Order", ''); 
     $pdf->setHeaderFont(Array('helvetica', '', 8)); 
     $pdf->setFooterFont(Array('helvetica', '', 6)); 
     $pdf->SetMargins(15, 18, 15); 
     $pdf->SetHeaderMargin(5); 
     $pdf->SetFooterMargin(10); 
     $pdf->SetAutoPageBreak(TRUE, 0); 
     $pdf->SetFont('dejavusans', '', 7); 
     $pdf->AddPage(); 

私が合格した場合コンテンツを次のように作成すると、PDFを作成します。

$pdf->writeHTML("<span>Hello World!</span>", true, false, true, false, ''); 

しかし、私が読んだhtmlファイルW3Cのバリデータhttp://validator.w3.org/を使用してファイルを検証するために

Undefined index: thead 
+1

テンプレートが有効なHTMLでない可能性がありますか?あなたはそれを検証しようとしましたか? –

+0

htmlテンプレートファイルはブラウザで見ることができるので、何のエラーもないと思います。 – KItis

+2

@KItis - ブラウザは膨大な量のエラーリカバリを実行するので、恐ろしい前提です。 – Quentin

答えて

3

試してみてください。

$pdf->writeHTML($message, true, false, true, false, ''); 
     $pdf->LastPage(); 

エラーメッセージ:PDFが、それは誤り以下与え、次の方法を使用して作成するためのntent。
以前はtcpdfで作業していましたが、信頼できないように見えなかったので、あきらめました。 wkhtmltopdfバイナリを試すこともできます(ホストでproc_open/proc_closeを使用できる場合のみ)。私にはもう少し安定しているようだ。また、使用するのに役立つPHP classもあります。

1

CutyCaptはあなたにとって非常に良いオプションのようです。その非常に簡単に統合することもできます。

関連する問題