011c8fb0创建于 2024年8月6日历史提交
"""
* Insert same image with different rotations in two places of a page.
* Extract bboxes and transformation matrices
* Assert image locations are inside given rectangles
"""
import json
import os

import fitz

scriptdir = os.path.abspath(os.path.dirname(__file__))
imgfile = os.path.join(scriptdir, "resources", "nur-ruhig.jpg")


def test_insert():
    doc = fitz.open()
    page = doc.new_page()
    r1 = fitz.Rect(50, 50, 100, 100)
    r2 = fitz.Rect(50, 150, 200, 400)
    page.insert_image(r1, filename=imgfile)
    page.insert_image(r2, filename=imgfile, rotate=270)
    info_list = page.get_image_info()
    assert len(info_list) == 2
    bbox1 = fitz.Rect(info_list[0]["bbox"])
    bbox2 = fitz.Rect(info_list[1]["bbox"])
    assert bbox1 in r1
    assert bbox2 in r2

def test_compress():
    document = fitz.open(f'{scriptdir}/resources/2.pdf')
    document_new = fitz.open()
    for page in document:
        pixmap = page.get_pixmap(
                colorspace=fitz.csRGB,
                dpi=72,
                annots=False,
                )
        page_new = document_new.new_page(-1)
        page_new.insert_image(rect=page_new.bound(), pixmap=pixmap)
    document_new.save(
            f'{scriptdir}/resources/2.pdf.compress.pdf',
            garbage=3,
            deflate=True,
            deflate_images=True,
            deflate_fonts=True,
            pretty=True,
            )