我试图读取一个PDF和插入一个图片在底部(页脚)的每一页PDF。我尝试过使用PyMuPDF库。
问题:无论我给出的Rect (高度,宽度),它没有出现在底部,图像一直只出现在页面的上半部分(PDF页面)。
我的代码:
from fitz import fitz, Rect
doc = fitz.open("test_pdf2.pdf")
def add_footer(pdf):
img = open("footer4.jpg", "rb").read()
rect = Rect(0, 0, 570, 1230)
for i in range(0, pdf.pageCount):
page = pdf[i]
if not page._isWrapped:
page._wrapContents()
page.insertImage(rect, stream=img)
add_footer(doc)
doc.save('test_pdf5.pdf')页中部有页脚图像的Processed_image:https://i.stack.imgur.com/HK9mm.png
页脚图像:https://i.stack.imgur.com/FRQYE.jpg
请帮帮我!
请让我知道这是否可以通过使用任何其他图书馆。
发布于 2020-06-21 14:52:39
经过小小的尝试和错误之后,我终于解决了这个问题。我错过了Rect的适当尺寸,我必须给出0.85*h的第二个参数。以下是代码:
from fitz import fitz, Rect
doc = fitz.open("test_pdf2.pdf")
w = 595
h = 842
def add_footer(pdf):
img = open("footer4.jpg", "rb").read()
rect = fitz.Rect(0, 0.85*h, w, h)
for i in range(0, pdf.pageCount):
page = pdf[i]
if not page._isWrapped:
page._wrapContents()
page.insertImage(rect, stream=img)
add_footer(doc)
doc.save('test_pdf5.pdf') 发布于 2020-06-11 13:27:18
一些页面内部将标准的PDF几何(它将左下角的页面点作为(0,0))更改为其他东西,,同时也不像它们应该做的那样正确地封装。
如果您怀疑这一点,请使用PyMuPDF方法在插入项(文本、图像等)之前封装当前页/Contents 。
最简单的方法是Page._wrapContents(),这也是保持增量PDF存储小的友好方式。MuPDF提供了Page.cleanContents()这样做和更多的清洁用品,但是如果这是一个问题的话,它会使增量储蓄增量变得臃肿。
发布于 2022-04-25 06:04:54
用途:
wrapContents - Page.wrap_contents()
https://pymupdf.readthedocs.io/en/latest/znames.html?highlight=wrapContents
from fitz import fitz, Rect
doc = fitz.open("example.pdf")
w = 250
h = 400
def add_footer(pdf):
img = open("firmaJG.png", "rb").read()
rect = fitz.Rect(0, 0.85*h, w, h)
for i in range(0, pdf.pageCount):
page = pdf[i]
if not page._isWrapped:
page.wrap_contents()
page.insertImage(rect, stream=img)
add_footer(doc)
doc.save('test_pdf5.pdf') https://stackoverflow.com/questions/60711402
复制相似问题