-
首先确认中文字体:
- 如黑体(https://us-logger1.oss-cn-beijing.aliyuncs.com/SimHei.ttf)
- 或进入windows的字体库寻找字体
C:\Windows\Fonts
-
进入
reportlab
的安装目录:C:\xxxxx\Lib\site-packages\reportlab\fonts
-
最后,使用python程序,比如在一个已有的PDF上使用ReportLab添加一个字符串:
import io from PyPDF2 import PdfWriter, PdfReader, Transformation from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfgen.canvas import Canvas template_pdf = PdfReader(open("test.pdf", "rb")) # 读取PDF packet = io.BytesIO() # 添加额外的文字 pdfmetrics.registerFont(TTFont("SimHei", "SimHei.ttf")) # 步骤1 canvas_draw = Canvas(packet, pagesize=(template_pdf.pages[0].mediabox.width, template_pdf.pages[0].mediabox.height)) canvas_draw.setFont("SimHei", 14) # 支持中文 canvas_draw.drawString(100, 200, "这是额外添加的中文") # 添加内容 canvas_draw.save() # 修改原始PDF文件 output = PdfWriter() outputStream = open("test_output.pdf", "wb") template_pdf.pages[0].add_transformation(Transformation().rotate(0).translate(tx=0, ty=0)) template_pdf.pages[0].merge_page(PdfReader(packet).pages[0]) output.add_page(template_pdf.pages[0]) output.write(outputStream) outputStream.close()
解决python使用ReportLab添加中文黑色方块的问题
最新推荐文章于 2024-07-27 12:20:46 发布