python 將markdown轉換為pdf


Python實現markdown轉換為pdf

概述

公司最近需求,是將線上集群信息收集起來,並使用markdown展示,但是為避免人為修改數據所以需要轉換成pdf格式,花上端午節空閑時間找了一些資料,做了一些匯總。

 

貼上markdown生成腳本示例

    #!/use/bin/python

    from mdutils import MdUtils
    
    result = """
    ```
    NAME                                                    READY     STATUS    RESTARTS   AGE
    coredns-55c6679897-48lf7                                1/1       Running   0          12d
    coredns-55c6679897-ftzzj                                1/1       Running   0          12d
    etcd-bj-idc1-10-53-5-99-10.53.5.99                      1/1       Running   0          12d
    kube-apiserver-bj-idc1-10-53-5-99-10.53.5.99            1/1       Running   0          12d
    kube-controller-manager-bj-idc1-10-53-5-99-10.53.5.99   1/1       Running   0          12d
    kube-flannel-ds-amd64-8t4pp                             1/1       Running   0          12d
    kube-flannel-ds-amd64-frcwm                             1/1       Running   0          12d
    kube-flannel-ds-amd64-gnwjx                             1/1       Running   0          12d
    kube-flannel-ds-amd64-jqkrv                             1/1       Running   0          16h
    kube-proxy-7ztqf                                        1/1       Running   0          12d
    kube-proxy-d5ql6                                        1/1       Running   0          16h
    kube-proxy-g9lq5                                        1/1       Running   0          12d
    kube-proxy-jsvmg                                        1/1       Running   0          12d
    kube-scheduler-bj-idc1-10-53-5-99-10.53.5.99            1/1       Running   0          12d
    nginx-ingress-25ppz                                     1/1       Running   0          12d
    nginx-ingress-6wjgm                                     1/1       Running   0          16h
    nginx-ingress-nm7cg                                     1/1       Running   0          12d
    nginx-ingress-wdzm4                                     1/1       Running   0          12d
    tiller-deploy-64fb6b8f56-2g2dx                          1/1       Running   0          12d
    ```
    """
    
    mdFile = MdUtils(file_name='wsl',title='Markdown File Example')
    mdFile.write(result)
    mdFile.create_md_file()

 

方式一

將markdown文檔轉換為html然后轉換為pdf

不論是windows還是linux都需要安裝wkhtmltopdf,但是這個方式有缺陷,代碼格式顯示很是不友好,所以在這只是展示出來,不接受的人可以避免踩坑。

    #!/use/bin/python

    from markdown import markdown
    import pdfkit
    
    path_wk = r'C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe' #安裝位置
    config = pdfkit.configuration(wkhtmltopdf = path_wk)
    
    input_filename = './wsl.md'
    output_filename = 'wsl.pdf'
    
    with open(input_filename, 'r') as f:
        html_text = markdown(f.read(), output_format='html4')
    
    pdfkit.from_string(html_text, output_filename, configuration = config)

 

方法二

使用md2pdf模塊方式轉換,md2pdf

優點:這種方式優於上面,可以保存原樣並生成目錄

缺點:將多個md生成一個pdf中,使用docker鏡像方式,雖然方便但是鏡像太大,2G

vi mkdocs.yml # 需要一個配置文件 

files_order:
- 'wsl.md'

docker run --rm -v /root/python/md_pdf:/md2pdf 887219aa9010 -i /md2pdf/mkdocs.yml -o /md2pdf/documentation.pdf

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM