#!/usr/bin/env python3
"""
BEX Express - Overlay PDF adresnica
Spaja vise PDF adresnica (svaka na drugoj poziciji A4)
u jedan PDF gde su 4 adresnice na jednom A4 listu.

Koristimo PyPDF2 merge_page da overlay-ujemo PDF stranice.

Upotreba: python3 bex-merge-labels.py output.pdf file1.pdf file2.pdf file3.pdf file4.pdf
"""

import sys
import os

try:
    import PyPDF2
except ImportError:
    print("ERROR: PyPDF2 nije instaliran", file=sys.stderr)
    sys.exit(1)

def merge_labels(output_path, input_files):
    """
    Overlay-uje vise PDF fajlova (svaki sa adresnicom na drugoj poziciji)
    u jedan PDF fajl.
    """
    if len(input_files) == 0:
        print("ERROR: Nema ulaznih fajlova", file=sys.stderr)
        sys.exit(1)

    # Ucitaj prvi PDF kao bazu
    with open(input_files[0], 'rb') as f:
        base_reader = PyPDF2.PdfFileReader(f, strict=False)
        base_page = base_reader.getPage(0)

        # Overlay svih ostalih PDF-ova na bazu
        for i in range(1, len(input_files)):
            if not os.path.exists(input_files[i]):
                continue
            with open(input_files[i], 'rb') as f2:
                overlay_reader = PyPDF2.PdfFileReader(f2, strict=False)
                overlay_page = overlay_reader.getPage(0)
                base_page.mergePage(overlay_page)

        # Sacuvaj rezultat
        writer = PyPDF2.PdfFileWriter()
        writer.addPage(base_page)

        with open(output_path, 'wb') as out:
            writer.write(out)

    return True

if __name__ == '__main__':
    if len(sys.argv) < 3:
        print("Upotreba: python3 bex-merge-labels.py output.pdf file1.pdf [file2.pdf ...]")
        sys.exit(1)

    output_path = sys.argv[1]
    input_files = sys.argv[2:]

    try:
        merge_labels(output_path, input_files)
        print("OK:" + output_path)
    except Exception as e:
        print("ERROR: " + str(e), file=sys.stderr)
        sys.exit(1)
