Initial commit

This commit is contained in:
michaela.buzalkova
2025-09-30 08:22:44 +02:00
commit b45a8b2d00
29 changed files with 1486 additions and 0 deletions

42
A4.py Normal file
View File

@@ -0,0 +1,42 @@
from PyPDF2 import PdfReader, PdfWriter
# A4 dimensions in points (1mm = 2.83465 points)
A4_WIDTH = 210 * 2.83465 # ≈ 595.276 pts (width)
A4_HEIGHT = 297 * 2.83465 # ≈ 841.89 pts (height)
def fit_to_a4(input_pdf_path, output_pdf_path):
reader = PdfReader(input_pdf_path)
writer = PdfWriter()
for page in reader.pages:
# Get original page dimensions
orig_width = float(page.mediabox.width)
orig_height = float(page.mediabox.height)
# Calculate scaling factor to fit A4 (preserve aspect ratio)
scale = min(A4_WIDTH / orig_width, A4_HEIGHT / orig_height)
# Scale the page content
page.scale_by(scale)
# Calculate offsets to center on A4
new_width = orig_width * scale
new_height = orig_height * scale
x_offset = (A4_WIDTH - new_width) / 2
y_offset = (A4_HEIGHT - new_height) / 2
# Set A4 mediabox and shift content
page.mediabox.lower_left = (x_offset, y_offset)
page.mediabox.upper_right = (x_offset + new_width, y_offset + new_height)
writer.add_page(page)
# Save the output PDF
with open(output_pdf_path, "wb") as out_file:
writer.write(out_file)
# Example usage
fit_to_a4(r"z:\Dropbox\Ordinace\Dokumentace_ke_zpracování\untitled.pdf", r"z:\Dropbox\Ordinace\Dokumentace_ke_zpracování\output_a4.pdf")
print("PDF adjusted to A4 portrait successfully!")