rufiqcavadov adlı üyeden alıntı: mesajı görüntüle
from PyPDF2 import PdfReader, PdfWriter
# Input PDF file
input_pdf = "File.pdf"
# Output PDF files
a3_pdf = "A3_pages.pdf"
a4_pdf = "A4_pages.pdf"
# A3 and A4 standard sizes in points
MM_TO_PT = 2.83465
A4_WIDTH = 210 * MM_TO_PT
A4_HEIGHT = 297 * MM_TO_PT
A3_WIDTH = 297 * MM_TO_PT
A3_HEIGHT = 420 * MM_TO_PT
# Tolerance in points to account for scanned or resized pages
TOLERANCE = 100  # increase if needed
# Open PDF
reader = PdfReader(input_pdf)
a3_writer = PdfWriter()
a4_writer = PdfWriter()
# Iterate through pages
for i, page in enumerate(reader.pages):
    width = float(page.mediabox.width)
    height = float(page.mediabox.height)
    # Use approximate size matching with tolerance
    if ((abs(width - A4_WIDTH) < TOLERANCE and abs(height - A4_HEIGHT) < TOLERANCE) or
        (abs(width - A4_HEIGHT) < TOLERANCE and abs(height - A4_WIDTH) < TOLERANCE)):
        a4_writer.add_page(page)
        print(f"Page {i+1} -> A4")
    
    elif ((abs(width - A3_WIDTH) < TOLERANCE and abs(height - A3_HEIGHT) < TOLERANCE) or
          (abs(width - A3_HEIGHT) < TOLERANCE and abs(height - A3_WIDTH) < TOLERANCE)):
        a3_writer.add_page(page)
        print(f"Page {i+1} -> A3")
    
    # Fallback for unusual sizes
    elif width > height:
        a3_writer.add_page(page)
        print(f"Page {i+1} -> A3 (approximate)")
    else:
        a4_writer.add_page(page)
        print(f"Page {i+1} -> A4 (approximate)")
# Save new PDFs
with open(a3_pdf, "wb") as f:
    a3_writer.write(f)
with open(a4_pdf, "wb") as f:
    a4_writer.write(f)
print("PDF separation complete!")
Mantıklı mı hocam bu kod. Sıkıntısız ayırdı.

Mesela bunun ölçüsünü bulamayınca A4 olarak algılamış ayıramamış gibi.


pdf dosyasında a4 ve a3leri ayrımını basit kodla pek yapılacak gibi değil. en iyisi elle manuel ayarlamak.
https://www.ilovepdf.com/split_pdf
bu sitenin ayırma, birleştirme gibi hizmetleri iyi çalışıyor.