0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCode×WSLでMarkdown Preview EnhancedからPDF出力する

Posted at

WSL環境でMarkdown Preview Enhanced(MPE)を使ってChrome(Puppeteer)でPDFを出力した時の設定メモです。

前提

  • WSL2、VSCode、Markdown Preview Enhanced拡張は既にセットアップ済み

やったこと

1. Puppeteerをインストール

MPEでPDFを出力するためにはWSL内にブラウザのインストールが必要で、
調べると大抵chromium-browserを入れると出てくるのですが、最近ではpuppeteerを入れるのがベターとのこと。

cd ~
npm install -g puppeteer

2. Chromiumのパスを調べる

# NODE_PATHを設定
export NODE_PATH=$(npm root -g)

# 確認
echo $NODE_PATH

# Chromiumのパスを取得
node -p "require('puppeteer').executablePath()"

最後のコマンドで出てきたパスをコピーしておきます。

3. 日本語フォントを入れる

最初はfonts-noto-cjkだけ入れたのですが、PDF出力時にエラーが発生してうまく出力できませんでした。

sudo apt install fonts-ipafont fonts-noto-cjk

4. PlantUMLの準備

時々PlantUMLでも図を書きたい時があるので設定しておきます。
ただ、サーバーの設定等は少々大変なのでMarkdown PDFの設定を参考にしました。
公式サイトからMITのCompiled jarを任意の場所にダウンロードしておきます。

5. VSCodeの設定

WSLのsettings.jsonに以下を追加:

{
    "markdown-preview-enhanced.chromePath": "さっきコピーしたChromiumのパス",
    "markdown-preview-enhanced.stylesheet": "body { font-family: 'Noto Sans CJK JP', 'IPAPGothic', 'Arial', sans-serif; }",
    "markdown-preview-enhanced.plantumlJarPath": "さっきダウンロードしたjarファイルのパス",
    "markdown-preview-enhanced.plantumlServer": "https://www.plantuml.com/plantuml"
}

6. Print Backgroundを有効にする

MPEの設定で「Print Background」にチェックを入れておきます。
私の環境では!!! infoなどのAdmonitionの背景色がPDF出力時に反映されなかったためです。

7. 完成!

これで、WSL上のVSCodeからMPEを使ってChrome(Puppeteer)でPDFが出力できます!

感想

以前chromium-browserをなんとなくインストールして設定を色々したものの、どうしてもうまくいかずでした。
仕方なく、Windows側からVSCodeを起動してPDFを出力することで諦めようと思っていたのですが、
なぜかPDFを出力するとブラウザでPDFが開くのではなくエクスプローラーが開くようになってしまい、どうしたものかと。
今回の新しい設定で無事にWSL側でも出力できるようになったので困ってはいないのですが、
いまだにWindows側はエクスプローラーが開いちゃうので、いつか直したいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?