Skip to content

tsukurussyo/markdown-to-pdf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Markdown to PDF Converter (Docker)

Docker環境でMarkdownファイルをPDFに変換するツールです。Node.jsのmd-to-pdfパッケージを使用しています。

特徴

  • Dockerで環境構築が簡単
  • 日本語フォント対応(IPAフォント、Noto CJK)
  • GitHub風のMarkdownスタイル
  • カスタマイズ可能なPDFスタイル
  • Makefileで簡単操作

必要なもの

  • Docker
  • Docker Compose
  • Make

ディレクトリ構成

project/
├── Dockerfile         # Docker設定ファイル
├── compose.yml        # Docker Compose設定
├── Makefile           # 便利なコマンド集
├── .md-to-pdf.js      # md-to-pdf設定ファイル
└── markdown/          # Markdownファイルを配置
    └── sample.md

セットアップ

1. リポジトリのクローン

git clone <repository-url>
cd <project-directory>

2. markdownディレクトリの作成

mkdir -p markdown

3. Dockerイメージのビルド

make build

4. コンテナの起動

make up

基本的な使い方

単一ファイルの変換

make convert FILE=sample.md

markdown/sample.mdmarkdown/sample.pdf に変換されます。

ファイル一覧の確認

# Markdownファイル一覧
make list

# 生成されたPDF一覧
make list-pdf

PDFファイルの削除

make clean

コンテナに入る

make shell

コンテナ内で直接md-to-pdfコマンドを実行できます。

Makefileコマンド一覧

コマンド 説明
make build Dockerイメージをビルド
make up コンテナを起動
make down コンテナを停止
make restart コンテナを再起動
make shell コンテナに入る
make convert FILE=xxx.md 指定したファイルをPDF変換
make list Markdownファイル一覧を表示
make list-pdf PDFファイル一覧を表示
make clean 生成されたPDFを削除
make help ヘルプを表示

PDFのカスタマイズ

Markdownファイルの先頭にYAMLフロントマターを追加することで、PDFのスタイルをカスタマイズできます。

基本的な設定例

---
pdf_options:
  format: a4
  margin: 20mm 20mm
  printBackground: true
stylesheet: https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.2.0/github-markdown.min.css
body_class: markdown-body
css: |-
  .markdown-body { font-size: 16px; }
  .markdown-body pre > code { white-space: pre-wrap; }
---

# あなたのMarkdown文書

本文がここに入ります。

ヘッダー・フッター付きの設定例

---
pdf_options:
  format: a4
  margin: 20mm 20mm
  printBackground: true
  headerTemplate: |-
    <style>
      section {
        margin: 5mm 15mm;
        font-family: system-ui;
        font-size: 10px;
        color: silver;
      }
    </style>
    <section>
      <span class="title"></span>
      <span class="date"></span>
    </section>
  footerTemplate: |-
    <section style="margin: 0 auto;">
      <div>
        Page <span class="pageNumber"></span>
        of <span class="totalPages"></span>
      </div>
    </section>
stylesheet: https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.2.0/github-markdown.min.css
body_class: markdown-body
css: |-
  .page-break { page-break-after: always; }
  .markdown-body { font-size: 16px; }
  .markdown-body pre > code { white-space: pre-wrap; }
  .markdown-body pre { background: #eee; padding: 5px; }
---

# タイトル

本文

改ページの挿入

最初のページ

<div class="page-break"></div>

次のページ

トラブルシューティング

PDFが生成されない

  1. コンテナが起動しているか確認

    docker compose ps
  2. ファイルが存在するか確認

    make list
  3. コンテナ内で直接実行して詳細を確認

    make shell
    md-to-pdf your-file.md

日本語が文字化けする

このDockerイメージには日本語フォント(IPAフォント、Noto CJK)が含まれているため、通常は文字化けしません。もし問題がある場合は、CSSでフォントを指定してください:

css: |-
  .markdown-body { 
    font-family: 'IPAGothic', 'Noto Sans CJK JP', sans-serif;
  }

コンテナのビルドに失敗する

キャッシュをクリアして再ビルド:

docker compose down
docker system prune -a
make build

参考資料

貢献

バグ報告や機能提案は、Issueやプルリクエストでお願いします。

About

Markdownで作成した資料をA4縦向きのPDFに変換するツールです。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors