我试图通过打开pdf,添加一个文本框,然后保存来向pdf添加文本。当我运行代码时,什么也没发生。在桌面上,它显示文件已更新,但没有显示任何文本
代码如下:
import fitz
doc = fitz.open("/Users/khaylablack/Desktop/participant_certificate.pdf")
page = doc[0] # choose some page
rect = fitz.Rect(50, 100, 200, 200) # rectangle (left, top, right, bottom) in pixels
text = "absolutely not"
rc = page.insertTextbox(rect, text, fontsize = 48, # choose fontsize (float)
fontname = "Times-Roman", # a PDF standard font
fontfile = None, # could be a file on your system
align = 1) # 0 = left, 1 = center, 2 = right
#doc.saveIncr() # update file. Save to new instead by doc.save("new.pdf",...)
doc.save("/Users/khaylablack/Desktop/watermarked_participant_cert.pdf")
您是否同时安装了pymupdf和fitz?如果没有,请尝试在命令提示符下运行这些命令
pip安装pymupdf
pip安装fitz
使用insertTextbox()方法时,必须确保创建的rect可以包含文本,因为如果不包含文本,则最终将不会显示任何文本。 一种方法是为实现检查文本的长度,如下所示:
文本长度为270.67
但是矩形的宽度只有150(200-50)。此外,即使更改矩形的宽度也不起作用,因为它仍然太短,所以还需要增加它的高度。你可以做的另一件事就是改变你正在使用的字体大小。 这两个备选方案如下所示:
备选方案2,较小的字体尺寸:
注意:rc是未使用的矩形高度,也可以是负数,在您的例子中为-5.59,这意味着文本超过了rect的高度
相关问题 更多 >
编程相关推荐