#1 楼
我已经成功使用握把在Chrome中显示降价,然后在“打印”对话框中使用Chrome的“另存为PDF”选项。pip install grip
grip your_markdown.md
grip
会在localhost:5000或类似位置(例如:转到http:// localhost:5000 /)-只需编辑一下并刷新浏览器即可。准备就绪后可以打印。比
pandoc
更可靠的表示形式,并且比安装乳胶更轻(pandoc要求生成pdf)。此答案中的打印不是命令行,但仍然可以找到这样更容易/更可靠(对于一个较长的文档,包括相对链接的图像和代码突出显示,看起来就像Github一样100%)。
评论
这很容易。
– s2t2
2015年9月5日下午0:21
请在此处抓紧your_markdown.md --export your_markdown.html是有用的选项。将其导出到html文件,然后可以使用wkhtmltopdf之类的命令从命令行中进行打印。
–卢克·埃克斯顿(Luke Exton)
2015年9月12日,下午1:27
或者,您可以下载(免费!)Atom(atom.io),在Atom中打开文件,使用Control + shift + M在预览中查看文件,另存为html,然后在Chrome浏览器中打开html并另存为pdf。
–安德鲁·卡特(Andrew Carter)
16年1月4日在19:54
确实带有类似Github的框架。有没有一种方法可以打印为PDF,去掉边框/标题栏(即打印框架中的所有内容)?
– Joost
16 Mar 7 '16 at 14:05
您可以将Pandoc与重量轻的wkhtmltopdf一起使用,而不是像乳胶那样使用:pandoc README-Template.md --from = gfm --pdf-engine = wkhtmltopdf --output README.pdf
– Asme Just
18年4月13日在19:15
#2 楼
您还可以使用基于Node.js的markdown-pdfnpm install -g markdown-pdf
markdown-pdf /path/to/markdown
评论
这非常棒而且非常容易。链接问题来自html5样板的打印CSS,您可以将其注释掉或在自己的样式表中覆盖。
– Robert Went
2015年11月8日,凌晨3:14
要补充一点,它具有现成的Unicode支持,这非常好。
–尼克
17年3月13日19:00
如果要使用GitHub的CSS文件,也可以安装github-markdown-css。
– jpmc26
17年6月9日在23:07
@ jpmc26如何使用它,我不了解javascript或npm?
– Abhishek Bhatia
17年8月16日在18:16
@AbhishekBhatia这是我在Google上搜索“ npm简介”时的第一个结果:smalljs.org/package-managers/npm。安装后,它只是埋在node_modules中的文件。
– jpmc26
17年8月16日在18:51
#3 楼
看看pandoc。它确实具有语法突出显示。它可能需要您对文档进行(较小的)更改,因为它具有自己的markdown风格,而且我不知道它与GitHub风格的匹配程度如何。评论
谢谢。运行pandoc -h确实返回了对GitHub Flavored Markdown的支持,所以我将此问题标记为已解决。
–迪尔莫
2014年2月11日,23:49
我试图在Fedora Linux上安装pandoc并遇到了依赖梦night-主要与LaTex有关。我的建议是先跳过pandoc,然后先尝试其他选项
– IanB
15年8月13日在1:13
对于那些使用非ASCII字母并使其丢失的用户:向pandoc添加字体选项,如下所示:--variable mainfont =“ Liberation Serif” --variable sansfont =“ Liberation Sans”
– gluk47
16-09-13在20:18
如果有人只是在寻找命令:sudo apt install pandoc texlive-latex-recommended texlive-xetex texlive-luatex pandoc-citeproc etoolbox wkhtmltopdf(在Ubuntu上,可能不是全部都是必要的),然后pandoc --variable urlcolor = cyan myfile.md -o myfile.pdf
– Tor Klingberg
17-6-5在15:31
这是唯一可以完整使用锚点和其他附加功能的东西:pandoc -f markdown -t html5 on-premise-admin-guide.md -o test.pdf通过自制程序安装并安装了wkhtml2pdf后可以正常工作。
–詹姆斯·坎贝尔
19-10-30在3:10
#4 楼
如果markdown文件托管在github仓库中,则gitprint是创建pdf /打印的有趣选择。您需要做的就是用URL中的
github.com
替换gitprint.com
。这是gitprint主页上的示例。不幸的是,它不适用于markdown要点,仅适用于存储库中的markdown文件。
评论
它也不适用于图像。 :(
–亚当·阿罗德(Adam Arold)
2014年9月2日下午13:12
...并且格式不正确:(
– Moebius
16年4月22日在19:20
有趣的选择。优点:可以维护外部链接,并可以从输出中访问它们。缺点:输出是黑白的,锚链接被删除,外部链接因为是黑白而没有在视觉上显示。
–罗迪
18年10月10日在14:49
#5 楼
http://www.markdowntopdf.com上有一个在线转换器,它提供了现成的语法高亮显示,这是我到目前为止所见过的最简单的解决方案。它还可以正确处理GFM特有的其他功能,例如表。
评论
不处理单独文件中的图像。
–拉里K
17-10-16在19:11
做工精美
– shadi
17-10-20在15:22
#6 楼
对于使用Linux的用户,请使用pandoc。安装:
sudo apt install pandoc texlive-latex-extra
是的,由于字体,您需要
-extra
软件包。< br转换:
pandoc --from markdown -o output.pdf my-file.md
评论
虽然没有包含任何图像,链接和诸如之类的被忽略的东西
– derHugo
19年1月11日在13:08
#7 楼
正如我在评论中所述,Github使用Linguist来突出显示语法。在Github上,您可以像这样使用它来指定语法高亮显示:```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```
不幸的是,没有很好的方法将Markdown直接转换为具有语法高亮显示的PDF文件。
替代方法:
Vim:
如果您有vim,则可以通过在终端上运行以下命令轻松实现语法高亮显示:
vim -c hardcopy -c quit /path/to/file.ps
或在vim内部:
:hardcopy >/path/to/file.ps
此将会产生一个PostScript文件,该文件可以使用ps2pdf转换为pdf:
ps2pdf /path/to/file.ps
Source-highlight:
如果您想改用HTML或LaTeX的路线,您可以尝试使用Source-highlight。可以在此处找到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.htmlHello2.htmlHello3.html
可以在此处找到更多有关Source-highlight用法的示例
Windows:
Vim,ps2pdf(由Ghostscript提供)和Source -highlight都可以通过Cygwin获得。
#8 楼
我最近创建了一项服务,可将降价文件转换为PDF。它支持Github风格的markdown以及语法突出显示。该服务位于:http://markdown2pdf.com评论
不适用于zip文件:存在压缩文件时,无法在存档中找到降价文件。
– Moebius
16年4月22日在19:26
收到“转换为pdf时出错”。改用kevgathuku的markdowntopdf.com
– shadi
17-10-20在15:22
#9 楼
矿山解决方案:将带有pandoc
的markdown转换为html(不要忘了使用css来显示pandoc的表格边框),然后使用libreoffice
打开它,选择一个选项export as pdf
。NB:这里都没有提到并在Internet上为我工作的解决方案:1)基于浏览器的解决方案(例如,抓地力)正在添加多余的信息,例如页面编号,而我没有设法将其删除; 2)pandoc转换为pdf的过程中断了,对我来说,它生成了一个空表(可能是因为Unicode,是的,我将其配置为使用xetex),3)基于站点的解决方案(即gitprint.com)也添加了多余的内容,例如类似github的边距,而我只需要一个简单的表我用awk生成了!
评论
pandoc应该为您工作,例如--variable mainfont =“ Liberation Serif” --variable sansfont =“ Liberation Sans”
– gluk47
16年9月13日在20:17
@ gluk47很酷,可以!
– Hi-Angel
16-09-19在14:10
我可以推荐此页面将markdown转换为PDF(或用于打印)markdownprint.com。
–约翰·奥(Johan O)
18年4月21日在13:56
@JohanO markdownprint.com似乎已关闭
– derHugo
19年1月11日在13:10
#10 楼
我尝试了几种chrome插件和在线转换器。MDtr2PDF是最好的。它支持Github-flavored-markdown和unicode。评论
它是否支持存储在其他文件中的图像?
–拉里K
17-10-16在19:12
似乎不再起作用,并且不受TLS保护。
–大卫·奥利弗(David Oliver)
19年5月16日在14:47
该链接已死
–亚当·拉塞克(Adam Lassek)
20年1月30日在17:24
#11 楼
我根据个人需要优化了此代码段:# 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 }')
之后另存为
/usr/local/bin/md2pdf
和sudo chmod +x /usr/local/bin/md2pdf
。用法:
md2pdf
将README.md转换为README.md.pdf md2pdf foo.md
将foo.md转换为foo.md.pdf md2pdf foo.md bar.pdf
将foo.md转换为bar.pdf #12 楼
我最幸运的是VSCode和Markdown PDF扩展。在线转换器将我的文件的编码搞砸了,或者在标头中插入了水印。用法:
安装扩展名
打开您的MD文件使用VSCode,确保启用了Markdown高亮显示功能。
打开命令面板(F1),键入
export
并选择markdown-pdf: Export (pdf)
NB:该扩展程序安装并使用本地版本的Chromium在后台。
有几种控制格式的选项,所有这些都在上面链接的网站上进行了说明
#13 楼
我只是从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),因此与其他选项相比非常轻巧。
#14 楼
我仍在寻找能够产生高质量结果的命令行解决方案[更新:我想出了一个pandoc
命令,该命令使用CSS进行格式化,并且看起来非常不错:pandoc -f gfm -t html5 --metadata pagetitle="test.md" --css github.css test.md -o test.pdf
-现在在这里查看我的其他答案!] ,但是:Chrome中的Markdown Viewer插件工作得很好,并且看起来与GitHub markdown惊人地相似!只需在安装并激活此插件的Chrome中打开markdown文件,然后使用菜单直接从Chrome中打印并另存为PDF。
Markdown Viewer具有以下功能(添加了重点):
✔呈现本地和远程URL
✔对远程源的细粒度访问
✔多个降价解析器
✔完全控制编译器选项
✔主题(包括GitHub主题)
✔GitHub标记的Markdown(GFM)
✔在文件更改时自动重新加载
✔语法突出显示的代码块
✔目录(TOC)
✔MathJax和Emoji支持
/>✔记住滚动位置
✔标记内容类型检测
✔使用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 Viewer输出:
上面的markdown文件产生在安装了Markdown Viewer插件后,直接在我的Chrome浏览器中显示此输出。请注意,它具有针对代码块的语言感知语法突出显示,漂亮的灰色代码背景以及用于输出内容的合理列宽。
其输出看起来确实不错,并且几乎与GitHub的markdown输出相同!
它也支持主题。例如,请参见此处选择的“ GitHub”主题。只需单击Chrome浏览器右上角的小m插件图标,即可选择所需的Markdown Viewer设置:
grip
输出:将此与抓地力的输出,我认为效果不佳。
grip
没有针对代码块的语法突出显示,针对代码的灰色背景,也不具有用于输出内容的合理的列宽。在宽显示器上,它占据了整个宽度。在Linux Ubuntu上:
sudo apt update
sudo apt install grip
grip test.md
然后Ctrl +单击它提供的URL,以在浏览器中打开输出。例如:http:// localhost:6419 /。这是我在Chrome中看到的
grip
渲染的输出:另请参见:
[我的回答]如何转换Markdown + CSS-> PDF?
评论
GitHub上的语法着色不是GitHub Flavored Markdown的一部分。至少据我所知。@OliverSalzburg Github使用Linguist来突出显示语法。
@dillmo,先转换为HTML,然后使用Chrome浏览器将其打印为pdf。