RPA经验分享--使用 python 往已有内容的 PDF 文件写入数据

131 篇文章 9 订阅
4 篇文章 0 订阅
这篇博客介绍了如何利用RPA(Robotic Process Automation)结合pdfrw库在已有内容的PDF文件上写入数据。作者通过示例代码展示了如何设置字体、字号,并在PDF的特定位置插入文本,从而实现对PDF的编辑操作。这个过程涉及到对PDF页面的读取、内容的插入以及保存等步骤。
摘要由CSDN通过智能技术生成

了解RPA:
www.i-search.com.cn

学习RPA
https://support.i-search.com.cn/

只使用reportlab库好像没法在已经有内容的 PDF 页面中写入数据,只能生成一个空的 PDF 文件再写入。所以这里我是配合pdfrw库来实现的。具体见示例

from reportlab.pdfgen.canvas import Canvas
from pdfrw import PdfReader
from pdfrw.buildxobj import pagexobj
from pdfrw.toreportlab import makerl
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase.pdfmetrics import registerFont

def pdf_write(input_file, output_file=None):

text_dic = [
    ["ABCDEFG HIJKLMN", 90, 757, 12],
    ["123456789123456789", 90, 738, 10]
]

if not output_file:
    output_file = f'{os.path.splitext(input_file)[0]}_new.pdf'
registerFont(TTFont('yh', 'msyh.ttf'))  # 设置文字字体

template = PdfReader(input_file)
canvas = Canvas(output_file)

template_obj0 = pagexobj(template.pages[0])
obj0_name = makerl(canvas, template_obj0)
canvas.doForm(obj0_name)

for value in text_dic:
    canvas.setFont("yh", value[3])  # 设置字号
    canvas.drawString(value[1], value[2], value[0])

canvas.showPage()  # 关闭当前页,开始新页
template_obj1 = pagexobj(template.pages[1])
obj1_name = makerl(canvas, template_obj1)
canvas.doForm(obj1_name)

canvas.save()

效果:

写入前

在这里插入图片描述

写入后

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值