PrawnはRubyで使えるPDF生成ライブラリです。 Railsを使った案件でPDFを作成する場合は、よくPrawnを利用しています。 今回、縦書きに対応する必要があったのですが、Prawnが提供しているメソッドだけだと対応できないので、自作してみました。 基本的な考え方としては、「文字を1文字ずつ区切り縦に並べる」です。 後は自動改行や複数行になった際の中心の調整を対応していきます。 ※今回の縦書きメソッドは宛名書き用に作成しています。 文章への対応となると約物等への対応が必要になり、ものすごく大変になります。 今回は長音符のみ90度回転させる方法で対応しています。 UTR50を見るとさらにy軸を中心に180度回転させるのが正しいように見えますが、今回は対応していません。 フォントに縦書き用のグリフがある場合は、それを使って対応することもできます。 今回のバージョン Rails 3.2
![【Rails】Prawnで縦書きを実現する|TechRacho by BPS株式会社](https://cdn-ak-scissors.b.st-hatena.com/image/square/bd987619385f6a5a8cb7a352c74a583c1605d218/height=288;version=1;width=512/https%3A%2F%2Ftechracho.bpsinc.jp%2Fwp-content%2Fuploads%2F2013%2F04%2Frails.png)