#!/usr/bin/env python
"""
convert_dfd_to_png_alt.py - Alternative method to convert DFD.html to a PNG image file
"""

import os
import subprocess
from pathlib import Path


def convert_html_to_png():
    # Define the input and output file paths
    input_file = "/Users/home/YandexDisk/TECHNOLYCEUM/ict/Year/2025/ai/ai7/ai7-m3/Thesis materials/DFD.html"
    output_file = "/Users/home/YandexDisk/TECHNOLYCEUM/ict/Year/2025/ai/ai7/ai7-m3/Thesis materials/DFD.png"
    
    # Check if the input file exists
    if not os.path.exists(input_file):
        print(f"Input file does not exist: {input_file}")
        return
    
    print("Attempting to convert DFD.html to DFD.png...")
    
    # Method 1: Using wkhtmltoimage if available
    try:
        subprocess.run([
            "wkhtmltoimage", 
            "--width", "1200",
            "--height", "800", 
            input_file, 
            output_file
        ], check=True)
        
        print(f"Successfully converted DFD.html to DFD.png using wkhtmltoimage")
        print(f"Output file: {output_file}")
        return
    except FileNotFoundError:
        print("wkhtmltoimage not found. Trying alternative method...")
    except subprocess.CalledProcessError as e:
        print(f"Error using wkhtmltoimage: {e}")
    
    # Method 2: Using weasyprint if available
    try:
        import weasyprint
        from PIL import Image
        import io
        
        # Convert HTML to PDF in memory first
        html_doc = weasyprint.HTML(input_file)
        pdf_bytes = html_doc.write_pdf()
        
        # Convert PDF to PNG (this is more complex and may require additional tools)
        print("WeasyPrint method requires additional image conversion tools.")
        
    except ImportError:
        print("WeasyPrint not available. Trying simpler approach...")
    
    # Method 3: Provide instructions for manual conversion
    print("\nHTML to PNG conversion requires specialized tools.")
    print("You can manually convert the file using one of these methods:")
    print("1. Open the HTML file in a browser, take a screenshot, and save as PNG")
    print("2. Install wkhtmltopdf/wkhtmltoimage: brew install wkhtmltopdf (on macOS)")
    print("3. Use online converters that support HTML to PNG conversion")
    print(f"\nHTML file location: {input_file}")
    
    # Just copy a placeholder for now
    print("\nAs a placeholder, I'm noting that the conversion needs to be done manually or with the proper tools installed.")


if __name__ == "__main__":
    convert_html_to_png()