Markdown 转 PDF

Markdown 转 PDF

使用潘多克喜欢:

pandoc -o output.pdf input.md 

没有给我带有自动换行的结果。

例如,三行 input.md 如下所示:

# Introduction

Lorem ipsum dolor sit amet, scelerisque natoque, in etiam erat nibh lacus, porta quam penatibus, at metus, purus leo est. Sed faucibus odio in amet, in sapien ut sapien eu, vehicula pede vel pellentesque, ut hac lacinia mauris ridiculus rhoncus ligula. Sit congue, ac montes, lorem ligula etiam ac fusce ipsum, lacus dolor in suscipit aliquet vitae. Blandit neque aliquam, amet vel, ante nullam neque. Adipiscing nullam, neque elit, nunc non mauris libero vivamus tortor.

运行上述命令将生成一个 PDF 文档,其内容如下:

Introduction
    Lorem ipsum dolor sit amet, scelerisque natoque, in etiam erat nibh lacus,

有没有一种快速的方法可以将 markdown(.md) 文件转换为带有自动换行功能的 pdf 文件(类似于这里)?

答案1

Markdown 转 PDF

潘多克

在我的 Ubuntu 20.04 上:

pandoc Manual.md --latex-engine=xelatex -o Manual.pdf

如果你收到错误

pandoc:未找到 xelatex。pdf 输出需要 xelatex。

安装巨大的(~600 MB)包裹

sudo apt install texlive-xetex

从/到剪贴板 Markdown 到 HTML

你也可以

thisOutputMarkdown | pandoc -s -f markdown -t html | xclip -selection clipboard -t text/html

将格式化的 HTML 发送到剪贴板。如果剪贴板上有 Markdown 文本,请将 thisOutputMarkdown 替换为xsel -b

markdown-pdfNodeJS 包

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

答案2

我只是从 HTML 转换。这满足了我的需求:

https://github.com/dompdf/dompdf

我发现 Markdown 总体来说不是一种适合转换为 PDF 的格式,因为它没有原生的 CSS 支持。下面是我使用的脚本:

<?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),因此与其他选项相比非常轻量。

相关内容