Nodejsでimage-to-pdfとpipeline

弊社で提供しています、クラウド請求サービス「アレコレナ」でタイムスタンプ利用に向けての整備をしています。
その中の一つとして、タイムスタンプが埋め込めるように、JpegやPNGでアップされた画像データをPDFに変換する機能を作成していました。

あれこれと調べていたのですが、結果的に「Image-to-PDF」ってプラグインを使うこととしました。

Image-to-PDFって?

画像データをPDFに変換をしてくれます。

サイトはこちら。。。

今回ハマってしまったのがサンプルにある

imgToPDF(pages, imgToPDF.sizes.A4)
.pipe(fs.createWriteStream(‘output.pdf’))

ってところです。

このまま普通に実装しちゃうと、変換されたPDFファイルが書き込まれるまでに抜けちゃうんですよね。
※あたりまっちゃあ、当たり前なんですが(^^;

さてどうしたものか。。。

const cnsWs = fs.createWriteStream(‘output.pdf’);
imgToPDF(pages, imgToPDF.sizes.A4).pipe( cnsWs );
cnsWs.on( ‘finish’,〜);

なんてやっても、pipeのところでエラーになる。。。

pipelineとの出会い

困ったもんだと、あれこれとググってたら「最近はpipeline使うんだよ〜」な記事に出会いました。
これはやってみなければと。。。

npm install stream –save

const { pipeline } = require(‘stream’);

こんな感じでやるときちんとPDFファルが作成されるようになりました。
※Promiseにする必要はないんでしょうけど、今回は他と統一するために導入しています。。(^^;

やれやれ。。。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です