You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python在带运单布局的PDF文件上添加字符串?

保留原PDF布局添加文本的解决方案

Python 方案(最适合你的情况)

推荐使用 PyMuPDF(fitz) 库,它能直接在原PDF文件上叠加文本,完全保留原文档的布局、字体和格式,操作比PdfMiner更直观,适合新手快速实现需求。

步骤:

  1. 安装库:
pip install pymupdf
  1. 示例代码(在指定位置添加文本):
import fitz  # 导入PyMuPDF

# 打开原PDF文件
doc = fitz.open("你的运单文件.pdf")
# 获取第一页(如需处理多页可循环)
page = doc[0]

# 设置文本样式(可匹配原PDF的字体、字号,先通过文本提取获取原属性)
text = "需要添加的字符串"
font_size = 12
font = fitz.Font("helv")  # 可替换为原PDF使用的字体,比如"simhei"对应黑体
color = (0, 0, 0)  # 黑色,RGB格式

# 指定添加位置(x,y坐标,可通过PyMuPDF提取原文本位置来精准对应)
# 比如获取原运单中某个文本块的位置:
# words = page.get_text("words")  # 返回所有文本块的(x0,y0,x1,y1,text,...)
# 取第一个文本块的位置作为参考:x, y = words[0][0], words[0][1] + 20
x, y = 100, 200  # 自行调整坐标

# 在页面上插入文本
page.insert_text((x, y), text, fontsize=font_size, font=font, color=color)

# 保存修改后的PDF
doc.save("修改后的运单.pdf")
doc.close()

如果需要精准匹配原PDF的段落和布局来添加文本,可以先用page.get_text("dict")提取原文档的所有文本布局信息(包括每个文本块的坐标、字体、字号、间距等),再根据这些信息计算新文本的插入位置,完全复刻原布局。

其他语言方案

  • Java:使用iText 7库,它是PDF处理的专业工具,能精准控制PDF内容的位置和格式,支持直接在原PDF上编辑或基于原布局重新生成文档。
  • C#:使用iTextSharp(iText的.NET版本),功能和iText类似,适合.NET生态的开发者。

内容的提问来源于stack exchange,提问作者Dongwon Kang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 13:36:05