您好,登錄后才能下訂單哦!
這篇文章主要介紹Python中如何實現(xiàn)markdown轉(zhuǎn)pdf,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
由于我們markdown編輯器比較特殊,一般情況下,我們不太好看,如果轉(zhuǎn)換成pdf的話,我們就不需要可以的去安裝各種編輯器才可以看了,所以我們有了md轉(zhuǎn)pdf或者是docx的需求。
資源地址
安裝后,本地查看版本,是否安裝成功:
出現(xiàn)如上圖表示安裝成功。
cd進入我們需要轉(zhuǎn)換的文件目錄下,輸入:
pandoc xxx.md -s -o xxxx.docx
-s:生成恰當?shù)奈募^部和底部。
-o:指定輸出的文件。
查看實際效果:
此時發(fā)現(xiàn)文件已經(jīng)生成好.我們打開看下,
整體轉(zhuǎn)換效果還是不錯的。
pandoc xxx.md -o xxxx.pdf --pdf-engine=xelatex
使用 Typora可以直接轉(zhuǎn)換
結(jié)合 wkhtmltopdf 使用 markdown 庫 和 pdfkit 庫
wkhtmltopdf 下載地址
pip install markdown pip install pdfkit
參考案例:
import pdfkit from markdown import markdown input = r"F:\csdn博客\pytorch\【Pytorch】pytorch安裝.md" output = r"【Pytorch】pytorch安裝.pdf" with open(input, encoding='utf-8') as f: text = f.read() html = markdown(text, output_format='html') # MarkDown轉(zhuǎn)HTML htmltopdf = r'D:\htmltopdf\wkhtmltopdf\bin\wkhtmltopdf.exe' configuration = pdfkit.configuration(wkhtmltopdf=htmltopdf) pdfkit.from_string(html, output_path=output, configuration=configuration, options={'encoding': 'utf-8'}) # HTML轉(zhuǎn)PDF
但是我們此時存在一個問題,如果我們的md中有表格的話,如圖:
那么轉(zhuǎn)換之后會發(fā)現(xiàn)是亂的:
我們此時需要設(shè)定參數(shù),修改為如下:
html = markdown(text, output_format='html',extensions=['tables'])
我們再看下效果:
pip install python-markdown-math
import pdfkit from markdown import markdown input_filename = 'xxxx.md' output_filename = 'xxxx.pdf' html = '<!DOCTYPE html><body><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex/dist/katex.min.css" rel="external nofollow" crossorigin="anonymous"><script src="https://cdn.jsdelivr.net/npm/katex/dist/katex.min.js" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/katex/dist/contrib/mathtex-script-type.min.js" defer></script>{}</body></html>' text = '$$E=mc^2$$' text = markdown(text, output_format='html', extensions=['mdx_math']) # MarkDown轉(zhuǎn)HTML html = html.format(text) pdfkit.from_string(html, output_filename, options={'encoding': 'utf-8'}) # HTML轉(zhuǎn)PDF
import pdfkit pdfkit.from_file('xxx.html', 'xxxx.pdf', options={'encoding': 'utf-8'}) # HTML轉(zhuǎn)PDF
pip install pymdown-extensions
progressbar.css
.progress-label { position: absolute; text-align: center; font-weight: 700; width: 100%; margin: 0; line-height: 1.2rem; white-space: nowrap; overflow: hidden; } .progress-bar { height: 1.2rem; float: left; background-color: #2979ff; } .progress { display: block; width: 100%; margin: 0.5rem 0; height: 1.2rem; background-color: #eeeeee; position: relative; } .progress.thin { margin-top: 0.9rem; height: 0.4rem; } .progress.thin .progress-label { margin-top: -0.4rem; } .progress.thin .progress-bar { height: 0.4rem; } .progress-100plus .progress-bar { background-color: #00e676; } .progress-80plus .progress-bar { background-color: #fbc02d; } .progress-60plus .progress-bar { background-color: #ff9100; } .progress-40plus .progress-bar { background-color: #ff5252; } .progress-20plus .progress-bar { background-color: #ff1744; } .progress-0plus .progress-bar { background-color: #f50057; }
progressbar.py
from markdown import markdown filename = 'progressbar.md' html = ''' <!DOCTYPE html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, minimal-ui"> <title>progressbar</title> <link rel="stylesheet" href="progressbar.css" rel="external nofollow" > </head> <body> {} </body> </html> ''' encoding = 'utf-8' with open(filename, encoding=encoding) as f: text = f.read() extensions = [ 'markdown.extensions.attr_list', 'pymdownx.progressbar' ] text = markdown(text, output_format='html', extensions=extensions) # MarkDown轉(zhuǎn)HTML html = html.format(text) print(html) with open(filename.replace('.md', '.html'), 'w', encoding=encoding) as f: f.write(html) # pdfkit.from_string(html, output, options={'encoding': 'utf-8'}) # HTML轉(zhuǎn)PDF print('完成')
progressbar.md
[=0% "0%"] [=5% "5%"] [=25% "25%"] [=45% "45%"] [=65% "65%"] [=85% "85%"] [=100% "100%"] [=85% "85%"]{: .candystripe} [=100% "100%"]{: .candystripe .candystripe-animate} [=0%]{: .thin} [=5%]{: .thin} [=25%]{: .thin} [=45%]{: .thin} [=65%]{: .thin} [=85%]{: .thin} [=100%]{: .thin}
我們看下最后的實際效果:
以上是“Python中如何實現(xiàn)markdown轉(zhuǎn)pdf”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。