Hummus PDF Writer – 使いどころを考えよう。nodeでPDF作成
nodeを採用するプロジェクトが個人を中心に増えてきています。採用ケースが増えれば自ずと不足しているライブラリが出てきます。しかしそれもまたコミュニティベースで解決してしまうソフトウェアが作られてどんどん機能がアップしていきます。こういった成長は見ていてとても面白いですね。 今回はnodeでPDFを作成しようと思った時にどうすればいいか、その解決手段になるソフトウェアを紹介します。それがHummus PDF Writerです。C++向けライブラリも提供されていますがnode向けPDF作成ライブラリはまだ珍しいのでぜひチェックしてみてください。
使い方はシンプルで、npmでインストールできます。今回はついでにExpressもインストールしています。
$ npm install express
$ npm install hummus
インストールが終わったら例えばこんな感じでスクリプトを書きます。Expressベースで動作してPDFを生成するスクリプトです。だいたいやっていることは見れば分かるかと思います。
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.writeHead(200, {'Content-Type': 'application/pdf'});
var hummus = require('hummus');
var pdfWriter = hummus.createWriter(new hummus.PDFStreamForResponse(res));
var page = pdfWriter.createPage(0,0,595,842);
pdfWriter.startPageContentContext(page).writeText('Hello ' + (req.query.id ? req.query.id : 'World'),
0,400,
{
font:pdfWriter.getFontForFile('../tests/TestMaterials/fonts/arial.ttf'),
size:50,
colorspace:'gray',
color:0x00
}
);
pdfWriter.writePage(page);
pdfWriter.end();
res.end();
});
app.listen(3000);
これを実行してWebブラウザからアクセスしてみましょう。
ページを作成して、その上に文字を書き込んでいくといった感じです。他にも
- drawPath
- drawSquare
- drawRectangle
- drawCircle
- drawImage
も用意されていますので大抵のPDFは作成できるのではないでしょうか。nodeはWebアプリケーションはもちろん、コンソールベースのソフトウェアを作るのにも便利なのでコマンドラインでPDF作成するといった要件で使えるかも知れません。
Hummus PDF WriterはC++/node製、Apache License 2.0のオープンソース・ソフトウェアです。