Files
2026-05-06 13:24:43 +02:00

42 lines
1.1 KiB
Python

from pathlib import Path
from pypdf import PdfReader, PdfWriter, Transformation, PageObject
INPUT_PDF = Path(r"2009-05-04 Puzzle SudokuKiller 376 [difficulty 4 of 10] [average solving time 30 min].pdf")
OUTPUT_PDF = Path(r"sudoku_50pct_A4.pdf")
# A4 v bodech, 72 dpi
A4_WIDTH = 595.2756
A4_HEIGHT = 841.8898
SCALE = 0.5
reader = PdfReader(str(INPUT_PDF))
source_page = reader.pages[0]
source_width = float(source_page.mediabox.width)
source_height = float(source_page.mediabox.height)
# Nová prázdná A4 stránka
new_page = PageObject.create_blank_page(
width=A4_WIDTH,
height=A4_HEIGHT
)
# Výpočet pozice pro vycentrování
target_width = source_width * SCALE
target_height = source_height * SCALE
x = (A4_WIDTH - target_width) / 2
y = (A4_HEIGHT - target_height) / 2
# Vložit původní PDF stránku jako vektorový objekt, zmenšený na 50 %
transform = Transformation().scale(SCALE).translate(x, y)
new_page.merge_transformed_page(source_page, transform, expand=False)
writer = PdfWriter()
writer.add_page(new_page)
with OUTPUT_PDF.open("wb") as f:
writer.write(f)
print(f"Hotovo: {OUTPUT_PDF}")