私は、Ubuntu Server(18.04.4)VMを使用しており、FreeNASマシンで仮想化のホストとして bhyve を実行しています。 WebページをヘッドレスでPDF using wkhtmltopdf に保存するサービスを構築しています。wkhtmltopdfを呼び出すと、次のエラーメッセージが表示されます。
qt.qpa.screen: QXcbConnection: Could not connect to display
Could not connect to any X display.
これは、 software wrapper を使用しているか、またはシェルから直接呼び出しているかに関係なく発生します。
wkhtmltopdf https://google.com pdfs/google.com.pdf
上記のようなコマンドが変更なしで機能するようにサーバーを構成するにはどうすればよいですか?
さらに検索したところ、 問題 が見つかりました。これは、Ubuntuに含まれているwkhtmltopdfバージョンに、そのままでは「ヘッドレス」モードで動作しないqtのバージョンがあることが報告されています。 GitHubから 最新バージョン をインストールすることで、ヘッドレスで動作するバージョンを取得できました。
$ wkhtmltopdf --version
wkhtmltopdf 0.12.5 (with patched qt)
どうやらソースからコンパイルしても同じ望ましい効果が得られるか、またはxvfb-run
(インポートするコードを変更しないと、wkhtmltopdfを呼び出すことができません)。