本文将介绍一种将多条信息组合成 HTML 模板,然后使用 Jinja 模板和 WeasyPrint 将其转换为独立 PDF 文档的方法,一起来看看吧~ 总体流程 如报告文章所示,使用 Pandas 将数据输出到 我觉得目前还没有非常好的解决方案,我这里选择了 WeasyPrint,大家也可以尝试一下其他的工具 数据处理 导入模块,读取销售信息 from __future__ import print_function 创建引擎 html_out = template.render(template_vars) 生成 PDF PDF 创建部分也相对简单,我们需要做一些导入并将一个字符串传递给 PDF 生成器 from weasyprint pandas as pd import numpy as np import argparse from jinja2 import Environment, FileSystemLoader from weasyprint
文章目录 方法一:使用 `WeasyPrint` 方法二:使用 `pdfkit` 和 `wkhtmltopdf` 方法三:使用 `md2pdf` 方法四:使用 `pandoc` 和 `wkhtmltopdf ` 效果对比 方法一:使用 WeasyPrint 需要安装 WeasyPrint 和 markdown 包: pip install weasyprint markdown import markdown from weasyprint import HTML, CSS # 读取Markdown文件 with open('example.md', 'r', encoding='utf-8') as f = markdown.markdown(text, output_format='html5') # 将HTML转换为PDF HTML(string=html).write_pdf("output_weasyprint.pdf 'output_pdfkit.pdf', options={'enable-local-file-access': None}) 方法三:使用 md2pdf pip install md2pdf weasyprint
WeasyPrint WeasyPrint 是一个开源的智能WEB报告生成服务,用它可以方便地在WEB应用中制作生成PDF报告,它能把简单的HTML标记转变成华丽的**、票据、统计报告等,用户在相应的HTML 模板或URL链接中填写好要求的字段后就能自动生成PDF报告,如用以下命令就能把一个填写好的HTML模板生成PDF报告: $> weasyprint input.html output.pdf 所以,接下来我们就把研究点放到了 WeasyPrint服务上,经过分析,我们发现WeasyPrint的具体工作机制如下: 允许嵌入短小数字作为HTML标记 不允许执行Javascript脚本 不允许执行iframe或类似标记 通过对WeasyPrint 开源代码的分析查看之后,我们在html.py中发现了一些有意思的地方,如WeasyPrint对img、embed和object等标签集都进行了重定义,由于其不支持Javascript脚本,所以当时我们对 但是,后来,我们在WeasyPrint开源代码的 pdf.py文件中发现了属性,该属性允许向PDF报告插入任意的网页形式或本地文件内容,如: <link rel=attachment href=”file
以下是其中几个常见的类似库:WeasyPrint:WeasyPrint是一个流行的Python库,用于将HTML和CSS转换为PDF。 与pdfkit不同,WeasyPrint是纯Python实现的,因此不需要外部依赖。同时,它支持更高级的CSS布局和样式处理。 然而,由于它是纯Python实现的,相对于pdfkit,WeasyPrint在处理大量HTML时可能会更慢。 以上提到的WeasyPrint、PyPDF2和ReportLab是pdfkit的一些替代选择,它们都有各自的优点和适用场景。
一个免费的替代方案是WeasyPrint,它不像上面的工具那么全面,但很有可能已经满足你的需求。它没有完全实现所有分页媒体规范,但是,它实现的比浏览器引擎更多。当然,你可以试试! 如果你想要更多的页面媒体支持,但又无法获得商业产品,也许可以看看WeasyPrint。 希望这是一个有用的工具总结,可用帮你的web应用程序创建pdf。 工具 wkhtmltopdf paged.js Vivliostyle Prince Antenna House PDFReactor DocRaptor WeasyPrint PDFCrowd mPDF
使用WeasyPrint库将报告生成PDF:from weasyprint import HTMLdef save\_report\_as\_pdf(report, filename='report.pdf
安装他们使用: sudo apt-get install -y nmap (或你的安装包) pip3 install -r requirements.txt Weasyprint有一套子要求。
Pandoc通用、强大不识别飞书自定义HTML标签;表格内图片处理差Typora导出PDF所见即所得无法批量处理;需要手动安装Python-docx转Word再转PDF可控Word对图片排版天生弱势;多一步转换WeasyPrint 原样保留6.Markdown文本按空行分块处理,