1
0

VScode/MarkdownPreviewEnhanced/PuppeteerのPDF出力で用紙設定を「ちゃんと」行う

Posted at

結論

Format指定は A4 ではなく a4 と書きます
(大文字ではありません小文字です)

以下に例示します

---
puppeteer:
  format: "a4"              # 用紙フォーマット指定 a0 ~ a6, letter, legal...
  landscape: false          # 用紙方向
  # printBackground: false  # 背景画像
  # margin:                 # マージン
  #   top: 10mm
  #   bottom: 10mm
  #   left: 10mm
  #   right: 10mm
---

経緯

と、これだけで終わってもかまわんのですが、一応
MPEのサイズ指定は検索をするといくらでも出てきます
本家にも例示されています

---
puppeteer:
  landscape: true
  format: "A4"
  timeout: 3000 # <= Special config, which means waitFor 3000 ms
---

しかし、この通り書いても出力されるpdfの用紙サイズはUS レターのままです

大抵のアプリではどうもプリンタの用紙設定に寄せてくれるようでエラーは出ないのですが、私が普段使用してるPDF-XChange EditorUS レターのまま出力してくれますので印刷のたびに「用紙サイズが違います」とエラーが出てしまいます
その度にプリンタまで行ってエラー解除、印刷再開するのが大変面倒なので精神的にも、物理的にも重い腰を上げて調べることにしました

世の中のWEBの記事のほとんどはきちんと検証されていない様子で、本家と同様の記述となっております

で、実際のオプションを指定しているgithubのpuppeteer/src/common/PDFOptions.tsを調べてみました

その中で用紙サイズのオプション部分が以下になります

export type PaperFormat =
  | 'letter'
  | 'legal'
  | 'tabloid'
  | 'ledger'
  | 'a0'
  | 'a1'
  | 'a2'
  | 'a3'
  | 'a4'
  | 'a5'
  | 'a6';

小文字だよ。orz

まぁ、本家から間違えてるし、大概のアプリは用紙サイズの差異を吸収してくれるしで困ってない人の方が多いのでしょうが、記事を書くならもう少し検証してほしいなぁ、と思った本日のTipsでした。

お粗末!

1
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
1
0