docxを読み込んでPHPで編集できるPHPWord。
予めテンプレートを準備してPHPで文字を挿入するのが便利
なんだけど、普通に改行を入れようとすると空白文字になる。なるほどタグを突っ込むのかと思い、nl2brをしてみると不正なファイルですなどと言われてしまう。
で、ぐぐったところ、以下の様な記事を発見
This seems to work :
$template = str_replace(“\n”,”<w:br/>”,$template);
なるほど、たしかにdocxはxml形式なんだから、勝手にbrなんか突っ込んだらそりゃエラーになるわ。
で解決
require_once './PHPWord.php';
$PHPWord = new PHPWord();
// テンプレートを読み込む
$document = $PHPWord->loadTemplate('Templath.docx');
// 改行を置き換える
$document->setValue('message', "ほげほげ" . "<w:br />" . "ふがー");
// 置き換えたファイルを保存する
$document->save( "Output.docx");
ちなみに、便利っぽいPHPWordだけど初期状態で日本語を使おうとすると文字化けする。
その対策はこちら。
PHPWord/Templath.phpのsetValue()からutf8_encodeをコメントアウトします。