名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。

WSL2 + Marp で pdf を何とか出力できるようにする

下記はメモ

前提の課題として、 Marp で pdf を出そうとしたのだが、こんな感じにエラーが出る。 html を

❯ pnpx marp test-slide/slide.md --pdf
[  INFO ] Converting 1 markdown...
[ ERROR ] Failed converting Markdown. (connect ECONNREFUSED 127.0.0.1:54872)

何のことやらという感じであるが、 marp-team/marp-cli: A CLI interface for Marp and Marpit based converters を見ると、pdf, pptx を出すために Chrome Google なりそれに類するブラウザが必要なようです。

で、ブラウザを表示するためには WSL2 上から chrome が起動できる必要があるが、これに関しては以前、「Xサーバーアプリが必要なので、VcXsrv を入れてみる。」あたりで設定している。今回もこう言った設定が必要となる。

namonakimichi.hatenablog.com

Google ChromeCUI ベースで入れる方法としては下記の方法を参考にした(他の記事も読んだが、追加するキーも方法も一緒だったので、まあ良いことにした)(ぱっと Google のサイトから探せなかったので、妥協した)。

qiita.com

このセットアップを行って VcXsrv を起動した状態で、 google-chrome を terminal からたたくと、Chrome が起動する。

最後に、下記の issue を参考に CHROME_PATH を指定し、起動する。

github.com

ちなみに絶対的なパス指定でなくても、 which google-chrome とかで行けそうな気がしたので、試したらできた。

❯ CHROME_PATH=$(which google-chrome-stable) pnpx marp test-slide/slide.md -o output.pdf
[  INFO ] Converting 1 markdown...
[  INFO ] test-slide/slide.md => output.pdf

というわけでOK。

ところで

なんかもはや Docker でやったほうが早かったのではないか、という説がある。