縦書き PDF の作成というのは意外とめんどくさくて、 Adobe 系のツールとかが必要だったりする。
これではいろいろ困るということでやり方を考えてみたところ、 nightmare を使うというのを考えた。
nightmare はページを PDF で保存する機能があるので、 CSS で縦書き化したサイトをあれで PDF 保存すればいいのではないか。
というわけで http://ssig33-paste.herokuapp.com/658747593d31aeeaecd125a2011f478e のような感じのページを用意して、以下のような簡単なスクリプトを書いた。
{
"dependencies": {
"nightmare": "2.0.9",
"vo": "",
}
}
var Nightmare = require('nightmare');
var vo = require('vo');
var Screenshot = require('nightmare-screenshot');
var request = require('request');
vo(function* () {
var nightmare = Nightmare({
show: false,
'web-preferences':{
partition: 'nopersist',
}
});
var text = yield nightmare
.goto('http://ssig33-paste.herokuapp.com/658747593d31aeeaecd125a2011f478e')
.wait('#all')
.pdf("shit.pdf")
yield nightmare.end();
return text
})((err, result)=>{
console.log("DONE")
});
まあこんだけ。
得られる PDF はこちら。
綺麗な縦書き PDF を得る手段としては、かなりよいのではないか。自動化された作業フローの中に組込むことも、簡単である。