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

wkhtmltopdfで明朝体フォントを指定したら、全く違うフォントで出力された話。

Web > PHP 2018年5月10日(最終更新:10月前)

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

どもです。

ウェブサイト上でPDFファイルを作成する手段はいくつかありますが、今回は「wkhtmltopdf」について。

こいつが既に導入されているサイトで、新たなPDF生成システムを作ることに。
サンプルが明朝体だったので、いつものノリで明朝のfont-familyを指定

HTML上での正常な反映を確認。さあPDF出力、ポン。

待て待ておい待て待て待て!!!

明朝体どころか、やたらファンシーでポップなフォント(vl-gothic-regular)にされてんじゃねーか!?

サーバーに游明朝が入ってなかったから、にしてはフォント無指定やserifのみのときと異なっているのが妙だ。
ちなみにserifのみのときは、こう。

で、この現象に対しての真相は、やはり「サーバーに游明朝が入ってなかったから」が正解。

本来font-familyは、先頭から見て所持していないフォントはスキップする仕様になっているが、
「wkhtmltopdf」では問答無用で先頭のフォントを適用させてしまうようだ。

このとき、先頭のフォントは存在しない場合、サーバー側の何某かの設定により、想定外のフォントが指定されてしまう、と。
その辺を見る権限がないので最後のところがハッキリせず、今ひとつ、もやもやする感じが残るが…。

今回はfont-family:"MS P明朝";とかいう一周回ってむしろ前衛的なfont-familyを指定することで解決。

追記

開発サーバだとfont-family:"MS明朝";で明朝が指定できたが、本番サーバだとMS明朝がインストールされているはずなのに指定できない、という事例に遭遇。

この場合は表記方法を変更する必要があり、font-family:"MS Mincho";とすることで解決。
開発側ではMS Minchoでは指定できなかったので、始めから横文字にしておけば良いわけではないのが厄介。

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