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 可在此链接下下载

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

相关推荐
数据科学小丫7 分钟前
Python 数据存储操作_数据存储、补充知识点:Python 与 MySQL交互
数据库·python·mysql
Knight_AL10 分钟前
Nacos 启动问题 Failed to create database ’D:\nacos\nacos\data\derby-data’
开发语言·数据库·python
leiming634 分钟前
CAN 通信协议学习讲义(带图文 + C 语言代码)
c语言·开发语言·学习
xht08321 小时前
PHP vs C语言:核心差异全解析
c语言·开发语言·php
yoothey1 小时前
Java字节流与字符流核心笔记(问答+考点复盘)
java·开发语言·笔记
查古穆1 小时前
python进阶-Pydantic模型
开发语言·python
沐知全栈开发1 小时前
Bootstrap4 导航栏
开发语言
kyriewen112 小时前
异步编程:从“回调地狱”到“async/await”的救赎之路
开发语言·前端·javascript·chrome·typescript·ecmascript·html5
AI+程序员在路上2 小时前
嵌入式软件技术大全
linux·开发语言·arm开发·单片机
吴声子夜歌2 小时前
JavaScript——数据类型
开发语言·javascript·ecmascript