Python制作PDF的一个库,效率非常高,比pypdf不知道快了多少。
我是完全照着官方文档的顺序来记录笔记,只是部分内容的顺序有调整,方便后续查看。
文档下载地址:https://www.reportlab.com/docs/reportlab-userguide.pdf
编程语言:Python3.8
pip install reportlab如果有缺失的依赖包(比如之前没有安装pillow),pip会自动进行安装
from reportlab.pdfgen import canvas
def hello(c):
    c.drawString(0, 0, "Hello World")
c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()  # 保存当前画布页面
c.save()  # 保存文件并关闭画布结果如下图:

pdfgen软件包是用于生成PDF文档的最低级别的接口,其本质相当于在一个画布上进行绘画的工具。
画布应被视为一张白纸,并且在纸上使用笛卡尔坐标确定点(X,Y)坐标,默认情况下在页面的左下角具有(0,0)起点。
此外默认情况下,第一个坐标x朝右,第二个坐标y朝上。
一张画布有很多属性可以进行配置。
首先这个是画布对象的初始属性:
def __init__(
            self, filename, pagesize=(595.27, 841.89), bottomup=1,
            pageCompression=0, encoding=rl_config.defaultEncoding,
            verbosity=0, encrypt=None
    ):from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter, A4
myCanvas = canvas.Canvas('myfile.pdf', pagesize=A4)如果打印文档时遇到问题,请确保使用正确的页面尺寸(通常为A4或Letter)。某些打印机无法处理太大或太小的页面。
可以使用width变量将右边距定义为width-inch,而不是使用常量。通过使用变量,即使页面大小发生变化,页边距仍然有意义。
encrypt
默认情况下,文档未加密。如果encrypt是字符串对象,则将其用作pdf的用户密码。如果encrypt是reportlab.lib.pdfencrypt.StandardEncryption的实例,则此对象用于加密pdf。
原文:https://www.cnblogs.com/quanquan616/p/11871591.html