#!/usr/bin/env python3
"""
Script om de inhoud van een DOCX bestand te lezen met uitgebreide foutafhandeling
"""

import sys
import os
from docx import Document

def read_docx(file_path):
    """Lees de tekstinhoud van een DOCX bestand"""
    try:
        # Controleren of het bestand bestaat en leesbaar is
        if not os.path.exists(file_path):
            raise FileNotFoundError(f"Bestand niet gevonden: {file_path}")
        
        if not os.access(file_path, os.R_OK):
            raise PermissionError(f"Geen leestoegang tot bestand: {file_path}")
        
        print(f"Lezen van bestand: {file_path}")
        
        doc = Document(file_path)
        full_text = []
        
        # Lees alle paragrafen
        for i, para in enumerate(doc.paragraphs):
            if para.text.strip():
                full_text.append(para.text)
        
        # Lees tabellen als tekst
        for i, table in enumerate(doc.tables):
            for row in table.rows:
                row_text = []
                for cell in row.cells:
                    if cell.text.strip():
                        row_text.append(cell.text.strip())
                if row_text:
                    full_text.append(" | ".join(row_text))
        
        print(f"Gevonden {len(doc.paragraphs)} paragrafen en {len(doc.tables)} tabellen")
        return "\n".join(full_text)
    
    except Exception as e:
        print(f"Fout bij lezen van DOCX {file_path}: {e}")
        import traceback
        traceback.print_exc()
        return None

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Gebruik: python3 read_docx_v2.py <docx_bestand>")
        sys.exit(1)
    
    file_path = sys.argv[1]
    content = read_docx(file_path)
    
    if content:
        print("\n" + "="*50)
        print("INHOUD DOCX BESTAND:")
        print("="*50)
        print(content)
    else:
        print("Kon DOCX bestand niet lezen")
        sys.exit(1)