どのように私はPDFにGithub風味のMarkdownを変換することができます

markdown pdf

私は最近、ドキュメントで使用するためにMarkdownを学び始めましたが、Markdownページのいくつかを印刷する必要があります。私はコマンドライン、ターミナルなどのユーティリティを使用して、Github風味のMarkdownをPDFに変換することを可能にしたいと思います。それは適切な構文のハイライトを持つ必要があり、ひどいものに見えないようにする必要があります。どんな助けもありがとうございます

  180  dillmo  2013-12-16


ベストアンサー

私はgripを使ってChromeでマークダウンを表示し、印刷ダイアログでChromeの「PDFとして保存」オプションを使って成功しました

pip install grip
grip your_markdown.md

gripはlocalhost:5000または同様のものでマークダウンをレンダリングします(例: http://localhost:5000/ に移動) – ただ編集してブラウザをリフレッシュしてください。準備ができたら印刷してください

これにより、pandocよりも信頼性の高い表現が得られ、ラテックスをインストールするよりも軽量になりました(pdf生成にはpandocが必要)

この回答では印刷はコマンドラインではありませんが、まだこれがより簡単/より信頼性の高いものであることがわかりました(比較的リンクされた画像やコードのハイライトを含む長い文書のために100%Githubのように見えました)

179  Josh Werts  2014-02-27


また、Node.jsベースのmarkdown-pdfを使用することもできます

npm install -g markdown-pdf
markdown-pdf /path/to/markdown

65  Quanlong  2015-04-16


pandoc を見てください。これにはシンタックスハイライトがあります。マークダウンには独自のフレーバーがあり、GitHub のフレーバーとどれだけ密接にマッチしているのかはわかりませんので、ドキュメントに変更を加える必要があるかもしれません

48  Magnus  2014-02-11


マークダウンファイルがgithubリポジトリでホストされていた場合、gitprintは、PDF / 印刷を作成するための興味深いオプションです

URLのgithub.comgitprint.comに置き換えるだけです。以下はgitprintのホームページにあるexampleです

残念ながら、マークダウンギストでは動作せず、リポジトリのマークダウンファイルでのみ動作します

13  rpattabi  2014-08-08


http://www.markdowntopdf.com にオンラインコンバータがあります。また、テーブルなどのGFMに特有の他の機能も正しく処理します

10  kevgathuku  2015-07-10


Linux の場合は pandoc を使用してください

Install:

sudo apt install pandoc texlive-latex-extra

はい、フォントの関係で-extraパッケージが必要です

Convert:

pandoc --from markdown -o output.pdf my-file.md

8  Andrejs Cainikovs  2018-08-22


コメントにも書きましたが、GithubではLinguistを使ってシンタックスハイライトを提供しています。Githubでは、これを使って以下のようにシンタックスハイライトを指定することができます

```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```

残念ながら、Markdownを直接構文の強調表示でPDFファイルに変換する良い方法はありません

Alternatives:

Vim:

vimがあれば、ターミナルから以下のように実行すれば、簡単に構文の強調表示を実現することができます

vim -c hardcopy -c quit /path/to/file.ps

もしくはvimの中

:hardcopy >/path/to/file.ps

これにより、例えばps2pdfなどを使ってpdfに変換できるPostScriptファイルが作成されます

ps2pdf /path/to/file.ps

Source-highlight:

代わりに HTML や LaTeX を使いたい場合は、Source-highlight を試してみてください。Source-highlight でサポートされている全ての言語のリストは こちら にあります

ソースハイライトコマンドの例としては、以下のようなものがあります

source-highlight -s java -f html -i Hello.java -o Hello1.html
source-highlight -s java -f html --input Hello.java --output Hello2.html --doc
source-highlight -s java -f html -i Hello.java -o Hello3.html --title "Happy Java with java2html :-)" --tab 3

この入力ファイルを使う

そして、それぞれがそれぞれのHTMLファイルを出力しています

Hello1.html Hello2.html Hello3.html

ソースハイライトの使用例は、こちらにもあります

Windows:

Vimps2pdf (Ghostscript)、Source-highlight はすべて Cygwin を経由して利用できます

6  DanteTheEgregore  2013-12-16


私は最近、マークダウン文書をPDFに変換するサービスを作成しました。これは、シンタックスハイライトと同様にGithub風味のマークダウンをサポートしています。サービスは以下の場所にあります。http://markdown2pdf.com にあります

3  Saurabh Garg  2015-08-27


私の解決策: markdownをpandocでhtmlに変換して(to use css for pandoc to show table bordersを忘れないでください)、libreofficeで開き、オプションexport as pdfを選択します

1) ブラウザベースのソリューション (つまり grip) はページ番号のような余分な情報を追加しています

1  Hi-Angel  2016-09-10


私はいくつかのクロームのプラグインとオンラインコンバータを試してみました。 MDtr2PDFが一番いいです。Github-flavoured-markdownとunicodeをサポートしています

1  doclin  2017-10-07


私はこのスニペットを私の個人的なニーズに合わせてリファインしました

# sudo apt install grip wkhtmltopdf

MD=${1:-README.md}
PDF=${2:-"$MD".pdf}
PORT=8971
DELAY=10

printf "Converting $MD to $PDF on port $PORT\n"
printf "Waiting $DELAY seconds for server to start...\n"

grip "$MD" localhost:$PORT &
sleep $DELAY
wkhtmltopdf http://localhost:$PORT "$PDF"
kill $(ps -eo pid,command | grep grip | grep -v grep | awk '{print $1}')

その後、/usr/local/bin/md2pdfsudo chmod +x /usr/local/bin/md2pdfとして保存します

Usage:

  • md2pdf README.mdをREADME.md.pdfに変換します

  • md2pdf foo.md foo.mdをfoo.md.pdfに変換します

  • md2pdf foo.md bar.pdf foo.mdをbar.pdfに変換します

1  fredoverflow  2018-05-15


私はVSCodeとMarkdown PDF拡張子で最も運が良かったです。オンラインコンバータは、ファイルのエンコーディングを台無しにしたり、ヘッダーに透かしを挿入したりしていました

Usage:

  1. 拡張機能をインストールします
  2. VSCodeでMDファイルを開き、Markdownのハイライトが有効になっていることを確認してください
  3. コマンドパレット(F1)を開き、exportと入力してmarkdown-pdf: Export (pdf)を選択します

注意: この拡張機能は、バックグラウンドでローカルバージョンの Chromium をインストールして使用します

フォーマットを制御するためのいくつかのオプションがありますが、それらはすべて上記のリンク先のウェブサイトで説明されています

1  Lennart  2020-01-17


私は代わりにHTMLから変換しています。これは私のニーズに合っています

GitHub - dompdf/dompdf: HTML to PDF converter for PHP
HTML to PDF converter for PHP. Contribute to dompdf/dompdf development by creating an account on GitHub.

一般的なMarkdownは、ネイティブCSSのサポートがないので、PDFに変換するのには適したフォーマットではないことがわかりました。以下は私が使用しているスクリプトです

<?php
require 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;

$dompdf = new Dompdf();
$dompdf->getOptions()->setIsFontSubsettingEnabled(true);
$s_in = file_get_contents('index.html');
$dompdf->loadHtml($s_in);

$dompdf->render();
$s_out = $dompdf->output();
file_put_contents('index.pdf', $s_out);

このソリューションは PHP (25 MB) と DomPdf (4 MB) を必要とするだけなので、他のオプションに比べてかなり軽量です

0  Steven Penny  2020-04-23


私はまだこのような高品質の結果を生成するコマンドラインソリューションを探しています[更新: 私は書式設定にCSSを使用して、かなり良い感じに見えるpandocコマンドを思いつきました。pandoc -f gfm -t html5 --metadata pagetitle="test.md" --css github.css test.md -o test.pdf–今ここで私の他の答えを見てください!

Chrome の Markdown Viewer プラグインはとてもよく機能し、GitHub のマークダウンに驚くほど似ています。このプラグインをインストールして有効にした状態でChromeでマークダウンファイルを開き、メニューを使ってChromeからPDFとして印刷したり保存したりするだけです

Markdownビューアは以下の機能を誇っています(強調表示)

タイプ検出 ✔ RegExp を使用した URL 検出 ✔ コンテンツセキュリティポリシー (CSP) の切り替え ✔ ページエンコーディングの上書き ✔ 設定の同期 ✔ 生およびレンダリングされたマークダウンビュー ✔ フリーおよびオープンソース

Markdownファイルの例です

ここでは、私のプロジェクトでの私のサンプルマークダウンデモファイルからのスニペットであるサンプルマークダウンファイルです

test.md:

## 1.1. Align images left, right, or centered, with NO WORD WRAP:

This:

```html
**Align left:**
<p align="left" width="100%">
<img width="33%" src="https://i.stack.imgur.com/RJj4x.png">
</p>

**Align center:**
<p align="center" width="100%">
<img width="33%" src="https://i.stack.imgur.com/RJj4x.png">
</p>

**Align right:**
<p align="right" width="100%">
<img width="33%" src="https://i.stack.imgur.com/RJj4x.png">
</p>
```

Produces this:

**Align left:**
<p align="left" width="100%">
<img width="33%" src="https://i.stack.imgur.com/RJj4x.png">
</p>

**Align center:**
<p align="center" width="100%">
<img width="33%" src="https://i.stack.imgur.com/RJj4x.png">
</p>

**Align right:**
<p align="right" width="100%">
<img width="33%" src="https://i.stack.imgur.com/RJj4x.png">
</p>

If you'd like to set the text itself to left, center, or right, you can include the text inside the `<p>` element as well, as regular HTML, like this:

```html
<p align="right" width="100%">
This text is also aligned to the right.<br>
<img width="33%" src="https://i.stack.imgur.com/RJj4x.png">
</p>
```

Markdownビューアの出力

上記のマークダウンファイルは、Markdown Viewer プラグインをインストールしてオンにした状態で見ると、私のChromeブラウザで直接この出力を生成します。コードブロックのための言語を意識したシンタックスハイライト、見栄えの良いグレーのコード背景、出力コンテンツのための合理的な列幅を持っていることに注目してください

その出力はとてもいい感じで、GitHubのmarkdown出力とほぼ同じです!

enter image description here

テーマにも対応しています。例えばここでは「GitHub」というテーマが選択されているのを見てください。Chromeブラウザの右上にある小さなmプラグインのアイコンをクリックして、お好みのMarkdown Viewerの設定を選択するだけです

enter image description here


grip output:

これをグリップからの出力と比較してみてください。grip には、コードブロックのシンタックスハイライト、コードのグレーの背景、出力内容の適切なカラム幅がありません。ワイドモニタでは、横幅全体を占めてしまいます

LinuxのUbuntuで

sudo apt update
sudo apt install grip
grip test.md

そして、Ctrl+クリックして表示されたURLをクリックして、ブラウザで出力を開きます。例: http://localhost:6419/。これがChromeで表示されるgripレンダリングされた出力です

enter image description here

See also:

  1. 私の答え] How to convert Markdown + CSS -> PDF?

0  Gabriel Staples  2020-10-07


タイトルとURLをコピーしました