PHP:TCPDFを使ってHTML形式のデータからPDFを生成する際に新たに追加した機能
2年以上前に、TCPDFを使ってHTML形式のデータからPDFを生成する際に追加した機能のことを書きました。
ajya.hatenablog.jp
この機能を使ったシステムを2年以上ぶりで使用することになりました。
動作確認のテストしていると、文章上の「-」の位置によっては、そこで改行が勝手にされてしまっていることに気がつきました。
photo credit: Structured PDF document via photopin (license)
区切りと判断されている
「-」を使って単語を途中で切って改行するための区切り文字と判断されているようで、「-」からあとに続く文章が長いと改行が発生しているようです。理由は予想できましたが、まだ改行しないで出力できそうな位置でも改行されてしまっているので、見栄えがよくありません。
TCPDFのバージョンを更新してみる
TCPDFは2年以上前のバージョンを利用していました。もしかしたら最新版では変わっているかもしれないと思い、最新版をダウンロードして利用してみました。
TCPDF
結果は最新版でも同じで、効果はありませんでした。
文字実体参照に置き換えてみる
「-」があったら区切り文字として解釈されて結果として改行されるのだから、「-」がなければ改行されないのでは?と思いつき、文字実体参照に置き換えてみることにしました。プログラムは、「-」を「–」に置き換えるだけです。
結果は、予想した通り改行されず出力されるようになりました。
まとめ
文字実体参照を思いつけたので対処ができました。TCPDFの出力は癖があると感じていて、ここで改行しなくてもいいのではというときが他にもあります。
手探りで調べていくことになりますが、まだ改善の余地はありそうです。