这里面主要是利用了fitz的组件Widget
来实现,在实现过程中主要遇到的问题是设置的中文默认值部分显示不全的问题.
安装模块
pip install PyMuPDF
实现
第一版代码
import fitz
pdf_document = fitz.open()
page = pdf_document.new_page()
rect = fitz.Rect(0, 0, 800, 50)
widget = fitz.Widget()
widget.rect = rect
widget.field_name = 'input'
widget.field_type = 7
widget.text_fontsize = 40
widget.field_value = '测试123你好'
annot = page.add_widget(widget)
annot.update()
# 保存修改后的PDF
pdf_document.save("tmp.pdf")
# 关闭PDF
pdf_document.close()
保存下来的文件如下图,其中中文测试
未展示出来
经过查看源码,发现有个pdf_set_document_language
函数,测试能解决上述问题
第二版
import fitz
pdf_document = fitz.open()
page = pdf_document.new_page()
# 设置字体
fitz.mupdf.pdf_set_document_language(fitz._as_pdf_document(pdf_document), fitz.mupdf.FZ_LANG_zh_Hans)
rect = fitz.Rect(0, 0, 800, 50)
widget = fitz.Widget()
widget.rect = rect
widget.field_name = 'input'
widget.field_type = 7
widget.text_fontsize = 40
widget.field_value = '测试123你好'
annot = page.add_widget(widget)
annot.update()
# 保存修改后的PDF
pdf_document.save("tmp.pdf")
# 关闭PDF
pdf_document.close()
结果如下