python:reportlab 生成pdf:基本用法。

1.首先,打开cmd,安装reportlab

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple reportlab #从清华镜像安装更快

然后就可以使用其基本用法。

复制代码
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

def generate_pdf(filename):
    c = canvas.Canvas(filename, pagesize=letter)
    c.drawString(100, 750, "Hello, World!")
    c.save()
    print(f"PDF 文件 {filename} 已成功生成!")

if __name__ == "__main__":
    generate_pdf("D:/reportlab/hello_world.pdf")
   

#但上面的代码有一个问题,就是不能识别中文。

#接下来进行改正

复制代码
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics

def generate_pdf(filename):
    # 添加中文字体
    pdfmetrics.registerFont(TTFont('SimSun', 'D:/reportlab/simsun/simsun.ttf'))
 # 这里的 'simsun.ttf' 是中文字体文件名,需提前下载并放置在正确的路径下

    c = canvas.Canvas(filename, pagesize=letter)
    c.setFont('SimSun', 12)  # 设置字体为中文字体,大小为12
    c.drawString(100, 750, "你好,世界!")  # 中文字符
    c.save()
    print(f"PDF 文件 {filename} 已成功生成!")

if __name__ == "__main__":
    generate_pdf("D:/reportlab/hello_world1111111111.pdf")

#这个需要下载宋体文件,并保存在固定的路径中。Simsun - Free Fonts 可在此链接下下载

保存在特定路径下,解压缩即可。

相关推荐
思茂信息38 分钟前
CST电动车EMC仿真(二)——电机控制器MCU的EMC仿真
开发语言·javascript·单片机·嵌入式硬件·cst·电磁仿真
Ace_317508877642 分钟前
京东关键字搜索接口逆向:从动态签名破解到分布式请求调度
分布式·python
开始了码1 小时前
关于qt运行程序点击几下未响应的原因
开发语言·qt
QT 小鲜肉1 小时前
【QT/C++】Qt样式设置之CSS知识(系统性概括)
linux·开发语言·css·c++·笔记·qt
yachuan_qiao1 小时前
专业的建筑设备监控管理系统选哪家
大数据·运维·python
洛克希德马丁1 小时前
Qt配置安卓开发环境
android·开发语言·qt
我要升天!1 小时前
QT-- 理解项目文件
开发语言·数据库·qt
l1t1 小时前
DeepSeek辅助编写转换DuckDB json格式执行计划到PostgreSQL格式的Python程序
数据库·python·postgresql·json·执行计划
q***82912 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
froginwe112 小时前
Ruby 范围(Range)
开发语言