ssig33.com

縦書き PDF を楽に作成

縦書き PDF の作成というのは意外とめんどくさくて、 Adobe 系のツールとかが必要だったりする。

これではいろいろ困るということでやり方を考えてみたところ、 nightmare を使うというのを考えた。

nightmare はページを PDF で保存する機能があるので、 CSS で縦書き化したサイトをあれで PDF 保存すればいいのではないか。

というわけで http://ssig33-paste.herokuapp.com/658747593d31aeeaecd125a2011f478e のような感じのページを用意して、以下のような簡単なスクリプトを書いた。

package.json

{
  "dependencies": {
    "nightmare": "2.0.9",
    "vo": "",
  }
}

app.js

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 を得る手段としては、かなりよいのではないか。自動化された作業フローの中に組込むことも、簡単である。

back to index of texts


Site Search