54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import fitz
|
|
from pathlib import Path
|
|
import os
|
|
|
|
BASE_DIR = Path(r"u:\Dropbox\Ordinace\Dokumentace_ke_zpracování\EKGforProcessing")
|
|
|
|
FLAG = "rotated-by-script"
|
|
|
|
for pdf_path in BASE_DIR.glob("*.pdf"):
|
|
print(f"Processing: {pdf_path.name}")
|
|
|
|
doc = fitz.open(pdf_path)
|
|
|
|
meta = doc.metadata
|
|
keywords = meta.get("keywords", "") or meta.get("Keywords", "") or ""
|
|
|
|
# ---- Check if already processed ----
|
|
if FLAG in keywords:
|
|
print(" → Already rotated, skipping.")
|
|
doc.close()
|
|
continue
|
|
|
|
try:
|
|
# ---- Rotate first page ----
|
|
first = doc[0]
|
|
first.set_rotation((first.rotation + 90) % 360)
|
|
|
|
# ---- Delete page 2 (if exists) ----
|
|
if doc.page_count > 1:
|
|
doc.delete_page(1)
|
|
|
|
# ---- Update metadata Keywords ----
|
|
new_keywords = (keywords + " " + FLAG).strip()
|
|
meta["keywords"] = new_keywords
|
|
doc.set_metadata(meta)
|
|
|
|
# ---- Save via temporary file ----
|
|
tmp_path = pdf_path.with_suffix(".tmp.pdf")
|
|
doc.save(tmp_path, deflate=True, garbage=3)
|
|
doc.close()
|
|
|
|
os.replace(tmp_path, pdf_path)
|
|
|
|
print(" → Rotated & marked.")
|
|
|
|
except Exception as e:
|
|
print(f"❌ Error: {e}")
|
|
doc.close()
|
|
|
|
print("Done.")
|