Files
PrintAuftrag-Portfolio/image_generator/SvgCreatorModel.py
Andreas Wilms f12cc8b2ce init
2025-09-08 18:30:35 +02:00

99 lines
3.1 KiB
Python

from modules.svgcreator import SvgCreator
import pandas as pd
class SvgCreatorModel:
arr_errors = []
def __init__(self, svg_path, excel_path, output_path):
self.svg_path = svg_path
self.excel_path = excel_path
self.output_path = output_path
def extract_excel(self):
df = pd.read_excel(self.excel_path)
# Iterate over rows and columns to print each cell
for index, row in df.iterrows():
svg = row["motiv"]
tx1 = row["tx1"]
num = str(row["num"]).split('.')[0]
tx2 = row["tx2"]
tx3 = row["tx3"]
tx4 = row["tx4"]
# Check for NaN values and replace them with None
svg = svg if pd.notna(row["motiv"]) else None
tx1 = tx1 if pd.notna(row["tx1"]) else None
num = num if pd.notna(row["num"]) else None
tx2 = tx2 if pd.notna(row["tx2"]) else None
tx3 = tx3 if pd.notna(row["tx3"]) else None
tx4 = tx4 if pd.notna(row["tx4"]) else None
if(svg == None):
continue
self.create_svg(svg, tx1, tx2, tx3, tx4, num)
self.write_error_excel()
self.arr_errors = []
def write_error_excel(self):
df = pd.DataFrame(self.arr_errors)
df.to_excel(self.output_path+"/errors.xlsx")
def create_svg(self, svg, tx1, tx2, tx3, tx4, num):
obj = SvgCreator(self.svg_path+"/"+svg+".svg")
if obj.svg_path == 0:
print("Pfad existiert nicht")
print(self.svg_path+"/"+svg+".svg")
tuple_error = [svg, "Pfad existiert nicht"]
self.arr_errors.append(tuple_error)
allow_exp = True
try:
if not None == tx1:
tx1 = tx1.split("(")[0]
if tx1[-1] == " ":
tx1 = tx1[:-1]
obj.update_text("tx1", tx1)
if not None == tx2:
tx2 = tx2.split("(")[0]
if tx2[-1] == " ":
tx2 = tx2[:-1]
obj.update_text("tx2", tx2)
if not None == tx3:
tx3 = tx3.split("(")[0]
if tx3[-1] == " ":
tx3 = tx3[:-1]
obj.update_text("tx3", tx3)
if not None == tx4:
tx4 = tx4.split("(")[0]
if tx4[-1] == " ":
tx4 = tx4[:-1]
obj.update_text("tx4", tx4)
if not None == num:
num = num.split("(")[0]
if num[-1] == " ":
num = num[:-1]
obj.update_text("num", num)
except Exception as e:
tuple_error = [svg, e]
self.arr_errors.append(tuple_error)
allow_exp = False
if allow_exp:
try:
obj.export_svg(self.output_path+"/", svg+" "+tx1, 300)
except Exception as e:
tuple_error = [svg, "Export fehlgeschlagen"]
self.arr_errors.append(tuple_error)
allow_exp = False