PyMuPDF | вставленное изображение находится не в том месте страницы pdf

Мне нужно вставить изображение на несколько страниц PDF- файла, и я использую insertImage. Следуя приведенному мной примеруfitz.Rect(0, 0, 50, 50)так как я хочу разместить изображение в верхнем левом углу страницы. Отлично работает для всех PDF-файлов, кроме одного - отсканированного документа, изображение которого появляется где-то в центре страницы, и изображение также повернуто на 90. Что может вызвать разницу в результате для этого конкретного PDF-файла и как я могу это решить?

2 ответа

Решение

Согласно документации PyMuPDF здесь, из-за несоответствий в том, как был создан PDF-файл, возможно, источник этого конкретного документа не является стандартным глобальным источником в верхнем левом углу.

Следующий фрагмент сбрасывает геометрию страницы:

if not(page._isWrapped):
    page._wrapContents()

Если этот обходной путь не работает наилучшим образом, на сайте перечислены другие возможные решения.

Я тестирую Python 3.7.3; PyMuPDF 1.20.2
нет необходимости проверять page._isWrapped (на самом деле это покажет:
AttributeError: объект «Страница» не имеет атрибута «_isWrapped»
)

достаточно только следующих строк:

      import fitz

def test_func():
    doc = fitz.open('test.pdf')
    for page in doc:
        page.wrap_contents()
        # do some other stuff
    doc.save('test-new.pdf')
Другие вопросы по тегам