Files
ai7-m3/scheduler_bots/convert_dfd_to_png.py
2026-02-05 10:15:09 +03:00

87 lines
3.1 KiB
Python

#!/usr/bin/env python
"""
convert_dfd_to_png.py - Converts DFD.html to a PNG image file
"""
import os
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("Converting DFD.html to DFD.png...")
# Since we need to convert HTML to PNG, this requires special tools
# First, let's check if we have the required libraries
try:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Setup Chrome options for headless browsing
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
# Create a temporary HTML file to ensure proper formatting
driver = webdriver.Chrome(options=chrome_options)
# Load the HTML file
file_url = f"file://{os.path.abspath(input_file)}"
driver.get(file_url)
# Take a screenshot of the entire page
driver.set_window_size(1200, 800) # Set window size
driver.save_screenshot(output_file)
driver.quit()
print(f"Successfully converted DFD.html to DFD.png")
print(f"Output file: {output_file}")
except ImportError:
# If selenium is not available, try using playwright
try:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
# Load the HTML file
file_path = os.path.abspath(input_file)
page.goto(f"file://{file_path}")
# Set viewport size
page.set_viewport_size({"width": 1200, "height": 800})
# Take screenshot
page.screenshot(path=output_file, full_page=True)
browser.close()
print(f"Successfully converted DFD.html to DFD.png using Playwright")
print(f"Output file: {output_file}")
except ImportError:
# If neither selenium nor playwright is available, inform the user
print("Required libraries not available for HTML to PNG conversion.")
print("To convert HTML to PNG, you need to install one of these packages:")
print(" pip install selenium")
print(" OR")
print(" pip install playwright")
print(" OR")
print(" Use a web browser to manually export the HTML as PDF/PNG")
return
if __name__ == "__main__":
convert_html_to_png()