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

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

相关推荐
LNN20227 分钟前
Qt 5.8.0 下实现触摸屏热插拔功能的探索与实践(3)
开发语言·qt
移远通信10 分钟前
配网-复杂场景
服务器·开发语言·php
Dr.Kun14 分钟前
【鲲码园Python】基于pytorch的鸟品种分类系统(25类)
pytorch·python·分类
一只小bit24 分钟前
Qt 快速开始:安装配置并创建简单标签展示
开发语言·前端·c++·qt·cpp
wadesir25 分钟前
深入理解Rust静态生命周期(从零开始掌握‘static的奥秘)
开发语言·后端·rust
是有头发的程序猿35 分钟前
Python爬虫实战:面向对象编程在淘宝商品数据抓取中的应用
开发语言·爬虫·python
Query*1 小时前
杭州2024.08 Java开发岗面试题分类整理【附面试技巧】
java·开发语言·面试
萑澈1 小时前
Windows系统Anaconda/Miniconda的安装、配置、基础使用、清理缓存空间和Pycharm/VSCode配置指南
python
Onebound_Ed1 小时前
Python爬虫进阶:面向对象设计构建高可维护的1688商品数据采集系统
开发语言·爬虫·python