這里面主要是利用了fitz的組件Widget
來實(shí)現(xiàn),在實(shí)現(xiàn)過程中主要遇到的問題是設(shè)置的中文默認(rèn)值部分顯示不全的問題.
安裝模塊
pip install PyMuPDF
實(shí)現(xiàn)
第一版代碼
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")
# 關(guān)閉PDF
pdf_document.close()
保存下來的文件如下圖,其中中文測試
未展示出來
中文顯示不全
經(jīng)過查看源碼,發(fā)現(xiàn)有個(gè)pdf_set_document_language
函數(shù),測試能解決上述問題
第二版
import fitz
pdf_document = fitz.open()
page = pdf_document.new_page()
# 設(shè)置字體
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")
# 關(guān)閉PDF
pdf_document.close()
結(jié)果如下
image.png