2017-12-20 11 views
3

PHPWordを使用してMicrosoft Wordレポートを作成しています。私は基本的にテンプレートで始まり、フィールドを入力し、それを単語レポートとして保存します。PHPWordを使用してWord文書をPDFに変換する方法

私はこのレポートをpdfファイルに変換したいと思います。生成されたdocファイルをPHPWord経由でロードしようとしました。ただし、pdfファイルを保存すると、書式設定はすべて失われます。ここで

は、私が使用していますコードです:

 require_once DOC_ROOT . '/vendor/phpoffice/phpword/bootstrap.php'; 

$path_to_tcpdf = DOC_ROOT . '/includes/plugins/TCPDF/'; // C:\xampp\htdocs\clients\corporate\includes\plugins\TCPDF 
\PhpOffice\PhpWord\Settings::setPdfRendererPath($path_to_tcpdf); 
\PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF'); 

$report_file_doc = DOC_ROOT . '/reports/business_report_U72900GJ2002PTC040573_68628.docx'; 
$report_file_pdf = DOC_ROOT . '/reports/business_report_U72900GJ2002PTC040573_68628.pdf'; 



$phpWord = \PhpOffice\PhpWord\IOFactory::load($report_file_doc); 
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord , 'PDF'); 

$xmlWriter->save($report_file_pdf); 

不足していることができるものの任意のアイデア?

おかげ

私は正しいんだけど、あなたはHTMLファイルの内容を読むよりも、HTML content.Afterとして文書を保存し、MPDFまたはTCPDFの助けを借りて、PDFファイルなどのコンテンツを記述する場合、私は知らない
+0

どこで '$ xmlWriter'を定義していますか? –

+0

同時に作成する場合は、同じHTMLを使用する代わりに、同じ文書をWord文書として使用することができます。.....作業を減らすことができます..... – kranthi

+0

申し訳ありませんが、$ xmlwriterを定義しました。 – Kiran

答えて

0

またはfpdf。 PHPWord v0.14

について

$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'HTML'); 

More about it here

0

ここTCPDFレンダラ(をv0.13にdeprecared)のための例は次のとおり

// Require composer autoloder. 
require __DIR__.'/vendor/autoload.php'; 

use PhpOffice\PhpWord\IOFactory; 
use PhpOffice\PhpWord\Settings; 

// Set PDF renderer. 
// Make sure you have `tecnickcom/tcpdf` in your composer dependencies. 
Settings::setPdfRendererName(Settings::PDF_RENDERER_TCPDF); 
// Path to directory with tcpdf.php file. 
// Rigth now `TCPDF` writer is depreacted. Consider to use `DomPDF` or `MPDF` instead. 
Settings::setPdfRendererPath('vendor/tecnickcom/tcpdf'); 

$phpWord = IOFactory::load('document.docx', 'Word2007'); 
$phpWord->save('document.pdf', 'PDF'); 

ここDomPDFレンダリングするための一例は次のとおり

// Require composer autoloder. 
require __DIR__.'/vendor/autoload.php'; 

use PhpOffice\PhpWord\IOFactory; 
use PhpOffice\PhpWord\Settings; 

// Make sure you have `dompdf/dompdf` in your composer dependencies. 
Settings::setPdfRendererName(Settings::PDF_RENDERER_DOMPDF); 
// Any writable directory here. It will be ignored. 
Settings::setPdfRendererPath('.'); 

$phpWord = IOFactory::load('document.docx', 'Word2007'); 
$phpWord->save('document.pdf', 'PDF'); 
関連する問題