1. 程式人生 > >markdown轉為html及pdf

markdown轉為html及pdf

markdown轉為html

markdown轉html比較容易些,有很多方法都可以做到。

1. 通過markdown編輯器匯出

linux下常用的markdown編輯器有retext,haroopad等,這些軟體都支援自定義css並匯出html。以上軟體的安裝詳見linux環境下Markdown編輯器彙總

2. 使用github上的開源專案

github上有許多優秀的開源專案都可以將markdown轉為各種樣式的html頁面。

3. 使用pandoc

pandoc是進行檔案型別轉換的瑞士軍刀,初次接觸的同學可以體驗下 Pandoc Demos。更多資訊請檢視

Pandoc User’s Guide

將markdown轉為html很簡單,直接執行以下命令即可。其中,”template.css”是自定義的模板。
pandoc README.md -c template.css -o README.html

markdown轉為pdf

1. markdown->html->pdf

可以先將markdown轉為html,具體方式見上小節。之後在瀏覽器中開啟html並列印為pdf即可,不過這樣得到的pdf總是有點模糊。

為知筆記支援自定義markdown格式(即自定義css),並支援匯出html及pdf,效果堪稱完美。見下圖。更多markdown樣式的模板詳見

markdown-css

wiz-m2p

2. 使用pandoc

使用pandoc將markdown轉為pdf需要首先安裝LaTex,linux下建議安裝TexLive,具體安裝過程見Fedora21安裝TexLive2015及Texstudio

之後使用如下命令進行轉換,
pandoc test.md -o test.pdf --latex-engine=xelatex

開啟輸出檔案卻發現中文沒有顯示,那是因為Latex預設不支援中文,所以新增引數來指定字型為宋體,如下所示。更多引數詳見Variables for LaTeX
pandoc test.md -o test.pdf --latex-engine=xelatex -V mainfont=SimSun

這次的輸出檔案沒有斷行,此時必須使用模板了,首先輸入一下命令匯出預設模板
pandoc -D latex > template.tex

參考pm-template.latex,將”template.tex“檔案中\else % if luatex or xelatex$if(mainfont)$的部分修改為如下所示:

\else % if luatex or xelatex
    % SUPPORT for Chinese  
  \usepackage{fontspec}  % 允許設定字型
  \usepackage{xeCJK}    % 分開設定中英文字型
  \setCJKmainfont{SimSun}  % 設定中文字型
  \setmainfont{SimSun}   % 設定英文字型
  \setromanfont{SimSun}  % 字型
  \setmonofont{SimSun}
  \linespread{1.2}\selectfont   % 行距
  \XeTeXlinebreaklocale "zh"  % 針對中文自動換行
  \XeTeXlinebreakskip = 0pt plus 1pt % 字與字之間加入0pt至1pt的間距,確保左右對整齊
  \parindent 0em    % 段落縮排
  \setlength{\parskip}{20pt}  % 段落之間的距離
  \ifxetex
    \usepackage{xltxtra,xunicode}
  \fi
  \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
  \newcommand{\euro}{}
$if(mainfont)$

之後,執行如下命令,即可得到比較完美的pdf了。
pandoc test.md -o test.pdf --latex-engine=xelatex --template=template.tex

可能會出現問題”pandoc “cannot parse yaml header” when converting md to pdf“,參考stackoverflow上的解決辦法,在執行命令時,加上引數--from markdown-yaml_metadata_block即可,不過最好還是將markdown中的”—“去掉。

補充

在上面的基礎之上,可以進行適當修改以形成不同的模板,我將我的幾個模板放在了github上,地址–·pandoc-m2p-template

樸素型:
m2p_plain

Style1:
m2p-style1

參考文件

相關推薦

markdown轉為htmlpdf

markdown轉為html markdown轉html比較容易些,有很多方法都可以做到。 1. 通過markdown編輯器匯出 linux下常用的markdown編輯器有retext,haroopad等,這些軟體都支援自定義css並匯出h

python 爬取資訊文章並儲存htmlpdf格式

一、需求 研究生學長讓我把一個植物表型資訊系列文章的一系列文章爬下來儲存為pdf或者html格式。 首頁網址: https://mp.weixin.qq.com/s?__biz=MzI0Mjg5ODI1Ng==&mid=2247486022&idx=1&sn=

Laravel框架內實現api文件:markdown轉為html

前後端分離的工作模式於今是非常流行了,前後端工作的對接,就離開不了API文件的輔助。   根據自己以往的工作經歷,以及瞭解的一些資訊,API文件的建立,無非以下幾種方式: 1. word文件模板 2. 第三方平臺,類如postman、showdoc等 3. 框架內單獨自定義一套繫結路由的結構,再解析

使用pdfdom將pdf轉為html

name com from rtp ava iter pub output tree pdfbox自帶的轉換html的方法效果不是太好,pdfdom是基於pdfbox的,在此之上加強了轉換html的能力。 maven <dependency>

pdf轉為html查看pdf.js

name log hub script error 頁面 promise sync reason       <!DOCTYPE html> <html lang="en"> <head> <meta charset="

Markdownhtml or word or pdf

Markdown轉html or word or pdf Makrdown轉html Markdown轉word Markdown轉pdf markdown轉html 需要藉助開發編輯工具 Sublime Text 3 來轉換,Sublime安裝方法在此不做介紹,開啟Sublime軟體,按住

使用Python3將Markdown(.md)文字轉換成 htmlpdf

一、Markdown中不同的文字內容會分成不同的文字塊,並通過markdown的語法控制進行文字的拼接,組成新的檔案。   二、利用Python3實現(.md)檔案轉換成(.html)檔案   在cmd命令列下進入(.py)檔案目錄下,使用命令進行執行   >python md2htm

使用Python3將Markdown(.md)文本轉換成 htmlpdf

isp break 段落 close all ict ddr tran 有序 一、Markdown中不同的文本內容會分成不同的文本塊,並通過markdown的語法控制進行文本的拼接,組成新的文件。 二、利用Python3實現(.md)文件轉換成(.html)文件

Mac上使用pdf2htmlex將pdf轉為html

首先,該文章的大部分內容是借鑑的以下網址的內容,大家也可以直接訪問以下網址檢視 無論在使用win還是linux還是在mac上做開發,程式碼都是一樣的(就今天的需求而言),不一樣的地方就是pdf2htmlex的安裝不一樣,比如說你使用的是linux系統或者使用mac做

pandoc將含有中文的markdown檔案轉成pdf時的問題思考

1 問題 我寫了一個markdown檔案,裡面含有中文字元,我想利用pandoc將其轉換為pdf格式,採用下面命令: pandoc -f markdown_github my.md -o test.pdf --latex-engine=xelatex

通過swagger2markup+asciidoctorj生成htmlpdf文件並解決asciidoctorj生成的pdf檔案中文顯示不全問題(maven方式java程式碼方式)

通過swagger2markup+asciidoctorj生成html和pdf文件(maven方式及java程式碼方式) 任務:通過同事的json檔案生成相應的html和pdf文件 前言 開始時swagger2markup和asciidocto

JS實現HTMLpdf(支援高清放大分頁)詳解

在這裡我主要講述實現思路及方法,原理大家可以自行百度,寫此文章主要是網上的很多實現方案都不能很好的支援高清放大及分頁。首先:引入三個js外掛,請自行上網百度下載,注意html2canvas.js版本太高會出現Promise未定義,本人猜測ES6高版本中可能用到ES6語法,請注

史上最強php生成pdf文件,htmlpdf文件方法

是不是 下載地址 註意 pdflib min views 開發者 lan 輸入 之前有個客戶需要把一些html頁面生成pdf文件,然後我就找一些用php把html頁面圍成pdf文件的類。方法是可謂是找了很多很多,什麽html2pdf,pdflib,FPDF這些都試過了,但是

discuz代碼轉為html代碼

onos ges 解析 示例代碼 sel before php com tle 解析BBCode代碼類 BBCode.class.php: <?php class BBCode { private static $simple_search = ar

Razor TagHelper實現MarkdownHTML

set mar comment ctu 流行 更強 import 編寫 normal Markdown是一種可以使用普通文本編輯器編寫的標記語言,通過簡單的標記語法,它可以使普通文本內容具有一定的格式。 用途 Markdown的語法簡潔明了、學習容易,而且功能比純文本更

Converting HTML to PDF with pdfHTML

tag add sta leo spec gin html4 padding pos https://itextpdf.com/itext7/pdfHTML pdfHTML 的一個例子 一個基本的例子將顯示使用 pdfHTML。為此, 我

數據處理(html to pdf

tor nbsp info from 完成 esp init alt 安裝路徑 爬取網站內容並保存為PDF格式 1、安裝pdf依賴包 pip install pdfkit 但是使用pdfkit時,還是會報錯 Traceback (most recent call la

實現word轉pdfHTMLpdf(探索篇)

ner ase node eth ack line prope fin -o 筆者找依賴的jar包,找的好辛苦。 ITextRenderer、ITextFontResolver這兩個類依賴的jar包到底是哪個,還有怎麽下載?苦苦糾結了3個小時。終於找到你了!記錄個網址:ht

[收藏]總有一天會用上的PDF合並PDF拆分方法

效率 選擇 www png title 介紹 頂部菜單欄 mage edi 日常的工作中,許多PDF文件都需要按章節和部分來拆分,又有一些內容相近的PDF文件需要合並,這就避免不了要用到PDF合並及PDF拆分這兩大功能。今天給大家介紹一下用PDF編輯器實現PDF合並及PDF

markdownhtml之間轉換引發的問題

引入 結果 com markdown 渲染 深入 baidu 一個 scrip https://www.hackersb.cn/hacker/235.html 看了這位師傅的文章有感而發 前言 對於支持markdown語法的網站,一般都是在後端將markdown語法渲染