PHPWord
を使用してテンプレートからファイル.docx
を作成しています。それはうまく動作しますが、今私はPDF
に生成されたファイルを変換したい。PHPWordによって生成された.docxからPDFを生成
まず私はPHPWord
$wordPdf = \PhpOffice\PhpWord\IOFactory::load($filename.".docx");
\PhpOffice\PhpWord\Settings::setPdfRendererPath(dirname(__FILE__)."/../../Office/tcpdf");
\PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF');
$pdfWriter = \PhpOffice\PhpWord\IOFactory::createWriter($wordPdf , 'PDF');
if (file_exists($filename.".pdf")) unlink($filename.".pdf");
$pdfWriter->save($filename.".pdf");
と組み合わせてtcpdf
を使用してみましたが、私はPDF
に変換するファイルをロードしようとすると、
Fatal error: Uncaught exception 'BadMethodCallException' with message 'Cannot add PreserveText in Section.'
ファイルをロードしている間、私は次の例外を取得しますいくつかの調査の後、私はいくつかの他の人もこのバグを持っていることを発見した(phpWord - Cannot add PreserveText in Section)
EDIT
After trying around some more I found out, that the
Exception
only occurs when I have somemail merge fields
in my document. Once I removed them theException
does not come up anymore, but the converted
私は、PDFを生成するための別の方法を使用して考えたが、私は唯一の4つの方法を見つけることができる:
OpenOffice使用- - インポッシブルをサーバーにソフトウェアをインストールすることはできません。また、道を行くことはhereは、OSとしてのSunOSを使用しており、これはphpdocxを用いたLinux
- を必要とする(Strato)私のホスティング事業者としてのいずれかで動作しませんでした言及 - 私はそれを支払うための任意の予算を持っていないとデモがPDFを作成することはできません
- PHPLiveDocx使用 - これはPHP-Digital-Format-Convertを使用して動作しますが、一日あたり250のドキュメントの制限があり、時速20と私は一度にarroundの300の文書を変換する必要があり、多分複数回日
- - 出力をよりもよく見えますと
tcpdf
が、画像としてまだ使用可能ではないが不足している、最もされている(すべてではない!)のスタイル
のPDFを生成するための第五の方法はありますか?または、生成されたPDF文書を見栄えの良いものにするためのソリューションはありますか?
まともなPDF出力は、おそらくあなたの隣'LL、すでにMSWordのテンプレートを持っている(第2のテンプレートを作成することが必要になりますがソース文書をtcpdfが望む入力に変換するPDFテンプレートが必要です)。 –
@Rob_Mそうですね、HTMLをPDFに変換するライブラリがあるので、すでにHTMLテンプレートを作成することを考えましたが、テンプレートがかなり異なるため、テンプレートを作成して書き直す作業がかなり必要になりますコンテンツがあるので、もう少し簡単な方法があることを願っています。 – Pinguin895
このリンクは役に立ちます: https://github.com/PHPOffice/PHPWord/issues/311 –