ほかのエンジンではだめなのか
だめではありません。それぞれ得意分野が違うだけです。正直な比較を置きます。
HTML/CSS系(WeasyPrint, Prince, wkhtmltopdf, Puppeteer印刷)
Webの資産で紙を作る道具です。Webページに近い文書、既存のCSS資産、フリーレイアウトの長文には強い。いっぽう帳票で欲しくなるもの(ピクセル固定の枠、改ページをまたぐ表ヘッダ、面付け、記入マス、縦書きの禁則)はCSSの外か、実装依存の隅にあります。出力バイトの決定性も保証されません。ブラウザエンジンは描画のたびに揺れる余地があり、回帰テストがスクリーンショット比較になりがちです。
Shojikuはレイアウトツリーからの描画で、同じ入力なら同じバイト列です。CIは全same例をバイト比較でゲートしています。
テンプレートPDFライブラリ(ReportLab, prawn, FPDF系)
座標とAPIで直接描く道具です。何でも描けますが、レイアウトはコードになり、デザイナ・PM・AIエージェントが読める形では残りません。フィールドの台帳もなく、データとの結線はコードレビューだけが守ります。
Shojikuのテンプレートは宣言的なYAMLで、definitions.yml が結線を検証します。未宣言キーへの参照はレンダリング前に診断コードで止まります。
pdfme
同じ「テンプレート+データ」の発想を持つ、良い道具です。ブラウザのデザイナもあります。違いは重心です。pdfmeはJSONテンプレート+TypeScriptで、Node/ブラウザが主戦場。Shojikuはエンジンがロケール非依存のRustで、CLI・Docker・7言語SDK・WASM・MCPの全部が同じバイト列を出し、縦書き・原稿用紙・和暦・ロケールパックのような紙の文化圏の機能を層で持ちます。署名と検証もエンジンの仕事です。
Typst / LaTeX
組版言語としては別格です。論文・書籍のような「文章が主役」の文書ならそちらへ。帳票(データが主役で、枠が1ptもずれてはいけない紙)は別の問題で、Shojikuはそちら専用です。
選び方
- Webページに近い文書、CSS資産がある → WeasyPrint / Prince
- コードで全部制御したい、1言語で完結 → ReportLab / prawn
- 文章主体の組版 → Typst
- 帳票を、人間とAIが両方編集できるファイルで、どこでも同じバイト列で、検証まで → Shojiku