PDFへのMarkdown:いろいろなアプローチからの欠けている部分
私はこれを最初に言ってみましょう、MarkdownからPDFを作成する最良の方法は、WSYIWYG(何を参照してください何か)に最も近いですので、それは完璧ではありません.
これは現在、少なくとも1つのPDF固有の機能(そしておそらく可能性があります)ミス-テーブルの目次/ブックマーク.
機能要求:PDF出力のためにTOCを生成するオプションを加えてください
-φ1778
CSS 3 TargetRenner (-)は長い時間前に提案しました、そして、いくつかの特殊化されたツールだけがそれをします、私がそれが若干の日クロムで実行されると思うためにあきらめた正直であるために、(参照問題は現在)です:https://bugs.chromium.org/p/chromium/issues/detail?id=368053 ) 生成されたPDFから目次を抽出して、序文を生成するツールまたはツールを見つけてください.PDFファイルを元のPDFの前にマージしてください.With https://github.com/qpdf/qpdf 私は読みやすく検索可能な“PDFテキストファイル”を生成することができたので、理論的には、テキストファイル内のヘッダーを見つけることが可能であり、逆の検索を介して追加されたコメントは、それが等であるwichページを見つけることができました. すぐにこれを得るどんな機会?
感謝
オグニアン
View on GitHub
そして、あなたが使用方法を知っていれば、PDFを作成する最良のツールの一つは、Visual StudioのコードですMarkdown Preview Enhanced 適切に.(私はこれをAtomでも使えることに気がつきました)
トリックは、マークダウンをプレビューするときにプレビュースペースを右クリックしてください
実際には、いくつかのCSSの印刷に固有の、あなたはそれをカスタマイズすることができますマークダウンプレビュー強化(MPE).
現在推奨LESS .
Importing other file types も可能です.
これは、オープンダウンの後に少なくとも2つの新しい行を残すことによって、Markdownでそれをネイティブに可能です
https://shd101wyy.github.io/markdown-preview-enhanced/#/puppeteer?id=configure-puppeteer
それで、私はこれを作りました.
実は、私は既にHTMLを越える方法を考え出しました テンプレートエンジンによるMarkdownの拡張EJS vscodeの中でマークダウンの中で強調している素晴らしい構文があります 非Markdown/HTML -ラテックスまたはコンテキスト-パンドック、またはネイティブ PDF操作ライブラリいくつかの推奨事項は
pdfbox - ジャバJDKなしで実行することもできます
pdf-lib - ノード.js
PyPDF2 - Python (PyPDF4 , 今)
これは現在、少なくとも1つのPDF固有の機能(そしておそらく可能性があります)ミス-テーブルの目次/ブックマーク.
機能要求:PDF出力のためにTOCを生成するオプションを加えてください
-φ1778
Ognian
掲示される
今では、ヘッダーとフッターのページ番号の仕事では、私は必死にH 1 - H 7のヘッダーからのコンテンツのテーブルを生成するオプションを欠落してPDFファイルを生成する(すなわち、wkhtmltopdfのようにこれをやっている).TOCはPDFの開始時になければなりません、そして、それはクリック可能であるべきではありません(ページへのジャンプ)だけでなく、tocがどんなビューアのコンテンツビューでも表示されるように、アウトラインPDF要素を生成してください.この機能が適切な場所で実装されるなら、これは複雑に聞こえるかもしれませんが、それは複雑ではありません.
ここに投稿する前に、私はこれを達成するために、いくつかの回避策を試みました.
いくつかの行き止まり
感謝
オグニアン
View on GitHub
そして、あなたが使用方法を知っていれば、PDFを作成する最良のツールの一つは、Visual StudioのコードですMarkdown Preview Enhanced 適切に.(私はこれをAtomでも使えることに気がつきました)
トリックは、マークダウンをプレビューするときにプレビュースペースを右クリックしてください
Open in browser
, 微調整するInspect Element
Chrome (Puppeteer) >> PDF
, ショートカットのPDFにエクスポートします.(あなたも必要ですPuppeteer ) カスタムCSSを使用できます。
実際には、いくつかのCSSの印刷に固有の、あなたはそれをカスタマイズすることができますマークダウンプレビュー強化(MPE).
現在推奨LESS .
html, body {
box-sizing: border-box;
height: 100%;
width: 100%;
}
.markdown-preview {
box-sizing: border-box;
position: relative;
@media print, screen {
section {
display: flex;
flex-direction: column;
&[vertical-center] {
min-height: 100%;
justify-content: center;
}
&[horizontal-center] {
align-items: center;
text-align: center;
}
}
section + *, h1 {
page-break-before: always;
}
h1, h2, h3, h4, h5, h6 {
page-break-after: avoid;
}
article {
page-break-inside: avoid;
}
}
}
また、あなたはimport your own LESS .Importing other file types も可能です.
HTMLの中のマークダウン
これは、オープンダウンの後に少なくとも2つの新しい行を残すことによって、Markdownでそれをネイティブに可能です
<div class="center">
## Hello World
</div>
Yaml FrontMatterによる操り人形のカスタマイズ
https://shd101wyy.github.io/markdown-preview-enhanced/#/puppeteer?id=configure-puppeteer
それで、私はこれを作りました.
---
id: print
class: 'title'
puppeteer:
margin:
top: 2cm
bottom: 2cm
left: 2cm
right: 2cm
---
@import "/_styles/print.less"
HTMLを越える
実は、私は既にHTMLを越える方法を考え出しました
pdfbox - ジャバJDKなしで実行することもできます
java -jar pdfbox-app-2.y.z.jar
pdf-lib - ノード.js
PyPDF2 - Python (PyPDF4 , 今)
Reference
この問題について(PDFへのMarkdown:いろいろなアプローチからの欠けている部分), 我々は、より多くの情報をここで見つけました https://dev.to/patarapolw/markdown-to-pdf-missing-pieces-from-various-approaches-and-merging-together-2dp3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol