ど素人から毛を生やす。<延>

wkhtmltopdfで全角1字・半角0.5字で表示できなかったときの話。

Web > PHP 2022年3月23日(最終更新:2年前)

2022年3月23日に作成されたページです。
情報が古かったり、僕が今以上のど素人だった頃の記事だったりする可能性があります。

どもです。
wkhtmltopdfで大苦戦したので備忘。

出力する文字数の制限がとても厳しいPDFの作成。
全角を1字、半角を0.5字とカウントし、○字×○行ピッタリに仕上げなければなりません。

こういう場合はMSゴシック(ド安定の印刷用フォント)やIPAゴシック(機種依存文字でちょっとズレる)などの等幅フォントを指定してやれば解決です。

ん???
MSゴシックで出力したのに、半角がズレている……??

これの原因と解決のためにかなりの苦闘をしていましたが、どうやら原因はフォントサイズの指定方法の模様。
フォントサイズが偶数pxでないと、半角の場合に正しく1/2されず、上記のようなズレが生じてしまっていたのでした。

ウチではwkhtmltopdf出力では寸法をmmで指定する慣習がありまして、このときのフォントサイズは4mm。
これを14pxに指定し直したところ、無事に全角1字・半角0.5字に配置することができました。

wkhtmltopdfはサーバー側のブラウザでHTML化されたものをレンダリングする仕組み、らしく。
ブラウザ出力という工程を挟む以上、寸法指定はピクセルで行った方が安定だなーと思った昼下がりでした。

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (1)