美文网首页
在python中使用pymypdf(fitz)创建一个可编辑的P

在python中使用pymypdf(fitz)创建一个可编辑的P

作者: 愤愤的有痣青年 | 来源:发表于2024-08-19 15:34 被阅读0次

这里面主要是利用了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()

结果如下


image.png

相关文章

网友评论

      本文标题:在python中使用pymypdf(fitz)创建一个可编辑的P

      本文链接:https://www.haomeiwen.com/subject/qvbmkjtx.html