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

您所在的位置:网站首页 pdf加文字 在pdf中加入文本内容(中文)(python 3.7)

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

2023-07-21 04:52| 来源: 网络整理| 查看: 265

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是随便找的= =,效果如下。

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3