zoukankan      html  css  js  c++  java
  • 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)wkhtmltopdfinwkhtmltopdf.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
    

     

  • 相关阅读:
    常见协议基础知识总结--FTP协议
    DG增量恢复
    DG备库无法接受主库归档日志之密码文件
    Oracle密码概要文件,密码过期时间180天修改为3天,相关用户密码是否过期
    ORA-15025 搭建DG环境,restore controlfile报错,提示oracle无法使用ASM存储
    Deinstall卸载RAC之Oracle软件及数据库+GI集群软件
    增加临时表空间组Oracle11g单实例
    安装12C小问题及pdb表空间配置
    判断子表外键约束参数类型
    创建small表空间size32G报错ORA-01144
  • 原文地址:https://www.cnblogs.com/Wshile/p/13194019.html
Copyright © 2011-2022 走看看