首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >底部的PyMuPDF插入图像

底部的PyMuPDF插入图像
EN

Stack Overflow用户
提问于 2020-03-16 18:30:05
回答 3查看 3.9K关注 0票数 1

我试图读取一个PDF和插入一个图片在底部(页脚)的每一页PDF。我尝试过使用PyMuPDF库。

问题:无论我给出的Rect (高度,宽度),它没有出现在底部,图像一直只出现在页面的上半部分(PDF页面)。

我的代码:

代码语言:javascript
复制
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

请帮帮我!

请让我知道这是否可以通过使用任何其他图书馆。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-21 14:52:39

经过小小的尝试和错误之后,我终于解决了这个问题。我错过了Rect的适当尺寸,我必须给出0.85*h的第二个参数。以下是代码:

代码语言:javascript
复制
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')  
票数 2
EN

Stack Overflow用户

发布于 2020-06-11 13:27:18

一些页面内部将标准的PDF几何(它将左下角的页面点作为(0,0))更改为其他东西,,同时也不像它们应该做的那样正确地封装

如果您怀疑这一点,请使用PyMuPDF方法在插入项(文本、图像等)之前封装当前页/Contents

最简单的方法是Page._wrapContents(),这也是保持增量PDF存储小的友好方式。MuPDF提供了Page.cleanContents()这样做和更多的清洁用品,但是如果这是一个问题的话,它会使增量储蓄增量变得臃肿。

票数 2
EN

Stack Overflow用户

发布于 2022-04-25 06:04:54

用途:

wrapContents - Page.wrap_contents()

https://pymupdf.readthedocs.io/en/latest/znames.html?highlight=wrapContents

代码语言:javascript
复制
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') 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60711402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档