151 lines
5.1 KiB
Python
151 lines
5.1 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Preview the new Matrix message format
|
|
"""
|
|
|
|
def preview_message():
|
|
# Sample data
|
|
name = "Anna Schmidt"
|
|
comment = "Bitte auf mattem Papier drucken. Danke!"
|
|
analysis = {
|
|
'filename': 'presentation.pdf',
|
|
'grand_total': 12.50,
|
|
'total_area_black': 1.5,
|
|
'total_cost_black': 6.0,
|
|
'total_area_color': 1.3,
|
|
'total_cost_color': 6.5,
|
|
'pages': [
|
|
{'page': 1, 'width_m': 0.21, 'height_m': 0.297, 'is_color': False, 'cost': 2.0},
|
|
{'page': 2, 'width_m': 0.21, 'height_m': 0.297, 'is_color': True, 'cost': 2.5},
|
|
{'page': 3, 'width_m': 0.21, 'height_m': 0.297, 'is_color': False, 'cost': 2.0},
|
|
{'page': 4, 'width_m': 0.21, 'height_m': 0.297, 'is_color': True, 'cost': 2.5},
|
|
{'page': 5, 'width_m': 0.21, 'height_m': 0.297, 'is_color': False, 'cost': 2.0},
|
|
{'page': 6, 'width_m': 0.21, 'height_m': 0.297, 'is_color': True, 'cost': 1.5},
|
|
]
|
|
}
|
|
|
|
# Generate filename preview
|
|
from datetime import datetime
|
|
timestamp = datetime.now().strftime("%Y-%m-%dT%H%M")
|
|
safe_name = "".join(c for c in name if c.isalnum() or c in (' ', '-', '_')).strip()
|
|
safe_name = safe_name.replace(' ', '_')[:30]
|
|
has_color = analysis['total_area_color'] > 0
|
|
color_marker = "Farbe" if has_color else "SW"
|
|
price_str = f"{analysis['grand_total']:.2f}".replace('.', '_')
|
|
new_filename = f"{timestamp}_{safe_name}_{price_str}EUR_{color_marker}.pdf"
|
|
|
|
# Generate message
|
|
summary_lines = [
|
|
"=== NEUER DRUCKAUFTRAG ===",
|
|
"",
|
|
f"Name: {name}",
|
|
f"Preis: {analysis['grand_total']:.2f} EUR",
|
|
]
|
|
|
|
if comment.strip():
|
|
summary_lines.extend([
|
|
"",
|
|
f"Kommentar:",
|
|
f"{comment.strip()}",
|
|
])
|
|
|
|
summary_lines.extend([
|
|
"",
|
|
"Details:",
|
|
])
|
|
|
|
if analysis['total_area_black'] > 0:
|
|
summary_lines.append(
|
|
f" - S/W: {analysis['total_area_black']:.2f} m2 -> {analysis['total_cost_black']:.2f} EUR"
|
|
)
|
|
|
|
if analysis['total_area_color'] > 0:
|
|
summary_lines.append(
|
|
f" - Farbe: {analysis['total_area_color']:.2f} m2 -> {analysis['total_cost_color']:.2f} EUR"
|
|
)
|
|
|
|
total_pages = len(analysis['pages'])
|
|
color_pages = sum(1 for p in analysis['pages'] if p['is_color'])
|
|
bw_pages = total_pages - color_pages
|
|
summary_lines.append(f" - Seiten: {total_pages} gesamt ({bw_pages} S/W, {color_pages} Farbe)")
|
|
|
|
# Only show page details for <= 5 pages
|
|
if total_pages <= 5:
|
|
summary_lines.append("")
|
|
summary_lines.append("Seiten:")
|
|
for page in analysis["pages"]:
|
|
seitenart = "Farbe" if page["is_color"] else "S/W"
|
|
summary_lines.append(
|
|
f" - S.{page['page']}: {page['width_m']*1000:.0f}x{page['height_m']*1000:.0f}mm, {seitenart}, {page['cost']:.2f} EUR"
|
|
)
|
|
|
|
print("=" * 60)
|
|
print("NEW FILENAME:")
|
|
print("=" * 60)
|
|
print(new_filename)
|
|
print()
|
|
print("=" * 60)
|
|
print("MESSAGE PREVIEW:")
|
|
print("=" * 60)
|
|
print("\n".join(summary_lines))
|
|
print()
|
|
print("=" * 60)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print("\n📝 SMALL DOCUMENT EXAMPLE (5 pages, with details):\n")
|
|
preview_message()
|
|
|
|
print("\n\n📚 LARGE DOCUMENT EXAMPLE (6+ pages, no details):\n")
|
|
# Simulate larger document
|
|
import random
|
|
name = "Max Mustermann"
|
|
comment = ""
|
|
analysis = {
|
|
'filename': 'thesis.pdf',
|
|
'grand_total': 45.80,
|
|
'total_area_black': 8.5,
|
|
'total_cost_black': 34.0,
|
|
'total_area_color': 2.36,
|
|
'total_cost_color': 11.8,
|
|
'pages': [{'page': i, 'width_m': 0.21, 'height_m': 0.297,
|
|
'is_color': i % 3 == 0, 'cost': 5.0 if i % 3 == 0 else 4.0}
|
|
for i in range(1, 11)]
|
|
}
|
|
|
|
from datetime import datetime
|
|
timestamp = datetime.now().strftime("%Y-%m-%dT%H%M")
|
|
safe_name = "Max_Mustermann"
|
|
has_color = analysis['total_area_color'] > 0
|
|
color_marker = "Farbe" if has_color else "SW"
|
|
price_str = f"{analysis['grand_total']:.2f}".replace('.', '_')
|
|
new_filename = f"{timestamp}_{safe_name}_{price_str}EUR_{color_marker}.pdf"
|
|
|
|
summary_lines = [
|
|
"=== NEUER DRUCKAUFTRAG ===",
|
|
"",
|
|
f"Name: {name}",
|
|
f"Preis: {analysis['grand_total']:.2f} EUR",
|
|
"",
|
|
"Details:",
|
|
f" - S/W: {analysis['total_area_black']:.2f} m2 -> {analysis['total_cost_black']:.2f} EUR",
|
|
f" - Farbe: {analysis['total_area_color']:.2f} m2 -> {analysis['total_cost_color']:.2f} EUR",
|
|
]
|
|
|
|
total_pages = len(analysis['pages'])
|
|
color_pages = sum(1 for p in analysis['pages'] if p['is_color'])
|
|
bw_pages = total_pages - color_pages
|
|
summary_lines.append(f" - Seiten: {total_pages} gesamt ({bw_pages} S/W, {color_pages} Farbe)")
|
|
|
|
print("=" * 60)
|
|
print("NEW FILENAME:")
|
|
print("=" * 60)
|
|
print(new_filename)
|
|
print()
|
|
print("=" * 60)
|
|
print("MESSAGE PREVIEW:")
|
|
print("=" * 60)
|
|
print("\n".join(summary_lines))
|
|
print("\n(Page details omitted for documents > 5 pages)")
|
|
print()
|
|
print("=" * 60)
|