在pdf中加入文本内容(中文)(python 3.7)

Emm因为我最近在参与报账,想在电子发票下面加一行字,这样每次就可以直接打印电子发票,不想再一遍遍手写同样的话了。

*需求:在已有pdf中,加入自定义文本。

实现如下:

#-*- coding = utf-8 -*-
#@Time : 2020/12/13 18:13
#@Author :Anq1
#@File : add_text.py
#@Software : PyCharm
from PyPDF2 import PdfFileWriter, PdfFileReader
import io
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter,A4 #纸大小
from reportlab.pdfbase import pdfmetrics #可以写中文
from reportlab.pdfbase.ttfonts import TTFont


pdfmetrics.registerFont(TTFont("SimSun", "SimSun.ttf"))
# 应用注册的字体,github自己下一个,别忘了放在正确位置

packet = io.BytesIO()
# 使用Reportlab创建一个新的PDF
can = canvas.Canvas(packet, pagesize=A4)
can.setFont("SimSun", 18)
can.drawString(200, 50, "此发票票据实际粘贴附件          张,金额共          元。")
can.save()

#buffer从偏移0开始
packet.seek(0)
new_pdf = PdfFileReader(packet)
#读取已有的PDF
existing_pdf = PdfFileReader(open(r'C:\Users\user\Desktop\《软件体系结构》名词解释.pdf', "rb"))
output = PdfFileWriter()
#
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))
output.addPage(page)
# 最后,向目标的pdf写出
outputStream = open("destination.pdf", "wb")
output.write(outputStream)
outputStream.close()

(注:这里只实现了一页,多页pdf的话for循环pdf.getpage就好。)

因为这里放发票不太好。。所以读取的已有pdf是随便找的= =,效果如下。

在这里插入图片描述

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值