2019年 #HTML #PDF 変換の情勢とは? ( phantomjs -> wkhtmlpdf -> headless Chrome
古い手法とは
PhantomJSのかわりにwkhtmltopdfが重宝されてきたけどモダンブラウザの仕組み、 HTML5やjsに対応しきれてないよーって書かれてる気がする。
The traditional approaches
Until 2017, there were two common ways to convert HTML to PDF. The first was to use wkhtmltopdf — an open source command line tool specifically designed for the task. A second alternative was PhantomJS, an open source “headless” web browser which can be controlled with JavaScript.
Although these tools have served many people extremely well, they do have some downsides. Support for the latest HTML5 and JavaScript features lags a long way behind the modern browsers we’re used to such as Chrome, Firefox or Safari.
Chrome を直接利用する
凝ったことをやろうとすると、色々大変だよって書いてるような気がする。
Using the Chrome devtools API
If you’d like to use Chrome directly yourself, you can get started by using the “print-to-pdf” command line option, but for more control over the PDF you’ll need to communicate with Chrome’s devtools API.
Puppeteer
Chrome / chromium と dev-tool を上手に使うための仕組み、 node の Puppeteer が良さげって書かれているような気がする。
Controlling Chrome with Puppeteer
You could use Puppeteer to automate a Headless Chrome browser instance in almost any way. Here we’ll just be focusing on how it can be used to create PDFs.
Google cloud function
サーバーレスで使う方法があるらしい。
Using Puppeteer via Google Cloud Functions
One interesting new option is the ability to run headless Chrome on Google Cloud’s “serverless” platform — Cloud Functions. This feature was added to Cloud Functions in August 2018 and should provide a low-cost and highly scalable way of generating PDFs. Google’s announcement post has a good walk-through that explains how to set it all up.
比較
headless Chrome がエクセレント!
typesettingってなんだろうな
参考
強い!
仕組み
puppeteerは、WebdriverIOのようなクロスブラウザ対応のツールとは異なり、Chrome DevTools Protocol2 を利用してNode.jsからChromeの開発者ツールへ接続して操作を行います。
puppeteerがこれらのライブラリと一線を画すのは、なんと言っても本家ChromeのDevTool開発チームが作成・メンテナンスしている、という点でしょう。
--headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について - Qiita
Original by Github issue
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2019-10-30
Discussion