From aa524d8cbd1c9a1f4733583a506030e6c5b6311c Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Tue, 3 Jun 2025 22:53:57 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Added=20IHK=20Project=20Document?= =?UTF-8?q?ation=20(IHK=5FProjektdokumentation/IHK=5FProjektdokumentation?= =?UTF-8?q?=5FFinal.docx)=20and=20conversion=20script=20(IHK=5FProjektdoku?= =?UTF-8?q?mentation/convert=5Fto=5Fword.py)=20=F0=9F=93=9A=20for=20projec?= =?UTF-8?q?t=20management=20purposes=20=F0=9F=92=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IHK_Projektdokumentation_Final.docx | Bin 0 -> 55676 bytes IHK_Projektdokumentation/convert_to_word.py | 305 ++++++++++++++++++ 2 files changed, 305 insertions(+) create mode 100644 IHK_Projektdokumentation/IHK_Projektdokumentation_Final.docx create mode 100644 IHK_Projektdokumentation/convert_to_word.py diff --git a/IHK_Projektdokumentation/IHK_Projektdokumentation_Final.docx b/IHK_Projektdokumentation/IHK_Projektdokumentation_Final.docx new file mode 100644 index 0000000000000000000000000000000000000000..2b8eb0f316d99c69ea9e32f7e092ff15a96c24d4 GIT binary patch literal 55676 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 literal 0 HcmV?d00001 diff --git a/IHK_Projektdokumentation/convert_to_word.py b/IHK_Projektdokumentation/convert_to_word.py new file mode 100644 index 000000000..b98e66248 --- /dev/null +++ b/IHK_Projektdokumentation/convert_to_word.py @@ -0,0 +1,305 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Konvertiert die IHK-Projektdokumentation von Markdown nach Word (DOCX) +mit IHK-konformen Formatierungen. +""" + +import os +import re +from docx import Document +from docx.shared import Pt, Inches, RGBColor +from docx.enum.text import WD_ALIGN_PARAGRAPH, WD_LINE_SPACING +from docx.enum.style import WD_STYLE_TYPE +from markdown import markdown +from bs4 import BeautifulSoup +import html2text + +def create_ihk_styles(doc): + """Erstellt IHK-konforme Formatvorlagen""" + + # Normaler Text + normal_style = doc.styles['Normal'] + normal_style.font.name = 'Arial' + normal_style.font.size = Pt(11) + normal_style.paragraph_format.line_spacing_rule = WD_LINE_SPACING.ONE_POINT_FIVE + normal_style.paragraph_format.space_after = Pt(6) + normal_style.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.JUSTIFY + + # Überschrift 1 + h1_style = doc.styles['Heading 1'] + h1_style.font.name = 'Arial' + h1_style.font.size = Pt(16) + h1_style.font.bold = True + h1_style.paragraph_format.space_before = Pt(12) + h1_style.paragraph_format.space_after = Pt(12) + h1_style.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.LEFT + + # Überschrift 2 + h2_style = doc.styles['Heading 2'] + h2_style.font.name = 'Arial' + h2_style.font.size = Pt(14) + h2_style.font.bold = True + h2_style.paragraph_format.space_before = Pt(12) + h2_style.paragraph_format.space_after = Pt(6) + h2_style.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.LEFT + + # Überschrift 3 + h3_style = doc.styles['Heading 3'] + h3_style.font.name = 'Arial' + h3_style.font.size = Pt(12) + h3_style.font.bold = True + h3_style.paragraph_format.space_before = Pt(6) + h3_style.paragraph_format.space_after = Pt(6) + h3_style.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.LEFT + + # Code-Style + try: + code_style = doc.styles.add_style('Code', WD_STYLE_TYPE.CHARACTER) + code_style.font.name = 'Courier New' + code_style.font.size = Pt(10) + except: + code_style = doc.styles['Code'] + + return doc + +def setup_document_layout(doc): + """Richtet das Dokumentlayout nach IHK-Vorgaben ein""" + sections = doc.sections + for section in sections: + # Seitenränder (IHK-Standard) + section.top_margin = Inches(1.0) + section.bottom_margin = Inches(1.0) + section.left_margin = Inches(1.25) + section.right_margin = Inches(1.0) + + # Seitengröße A4 + section.page_height = Inches(11.69) + section.page_width = Inches(8.27) + +def add_title_page(doc): + """Fügt die Titelseite hinzu""" + # Titel + p = doc.add_paragraph() + p.alignment = WD_ALIGN_PARAGRAPH.CENTER + p.add_run('Abschlussprüfung - Sommer 2025\n').bold = True + p.add_run('\n') + + p = doc.add_paragraph() + p.alignment = WD_ALIGN_PARAGRAPH.CENTER + p.add_run('Fachinformatiker für digitale Vernetzung\n').font.size = Pt(14) + + doc.add_paragraph() + + p = doc.add_paragraph() + p.alignment = WD_ALIGN_PARAGRAPH.CENTER + p.add_run('Dokumentation der betrieblichen Projektarbeit\n').font.size = Pt(16) + + doc.add_paragraph() + + # Projekttitel + p = doc.add_paragraph() + p.alignment = WD_ALIGN_PARAGRAPH.CENTER + run = p.add_run('MYP – Manage Your Printer\n') + run.font.size = Pt(18) + run.font.bold = True + + p = doc.add_paragraph() + p.alignment = WD_ALIGN_PARAGRAPH.CENTER + p.add_run('Digitalisierung des 3D-Drucker-Reservierungsprozesses durch Etablierung\n') + p.add_run('der cyberphysischen Kommunikation mit relevanten Hardwarekomponenten') + + # Mehrere Leerzeilen + for _ in range(5): + doc.add_paragraph() + + # Abgabedatum + p = doc.add_paragraph() + p.alignment = WD_ALIGN_PARAGRAPH.CENTER + p.add_run('Abgabedatum: 5. Juni 2025').bold = True + + doc.add_paragraph() + doc.add_paragraph() + + # Ausbildungsbetrieb + p = doc.add_paragraph() + p.alignment = WD_ALIGN_PARAGRAPH.LEFT + p.add_run('Ausbildungsbetrieb\n').bold = True + p.add_run('\n') + p.add_run('Mercedes-Benz AG\n') + p.add_run('Daimlerstraße 143\n') + p.add_run('D-12277 Berlin') + + doc.add_paragraph() + + # Prüfungsbewerber + p = doc.add_paragraph() + p.alignment = WD_ALIGN_PARAGRAPH.LEFT + p.add_run('Prüfungsbewerber\n').bold = True + p.add_run('\n') + p.add_run('Till Tomczak\n') + p.add_run('Hainbuchenstraße 19\n') + p.add_run('D-16761 Hennigsdorf') + + # Seitenumbruch nach Titelseite + doc.add_page_break() + +def process_markdown_content(content): + """Verarbeitet Markdown-Inhalt und strukturiert ihn für Word""" + # Entferne Bilder vorerst + content = re.sub(r']*>', '', content) + + # Teile den Inhalt in Abschnitte + lines = content.split('\n') + processed_content = [] + + skip_until_content = False + for line in lines: + # Skip Titelbereich + if line.strip().startswith('# Inhaltsverzeichnis'): + skip_until_content = True + continue + + if skip_until_content and line.strip().startswith('# 1. Einleitung'): + skip_until_content = False + + if not skip_until_content and not line.strip().startswith('Mercedes-Benz') and \ + not line.strip().startswith('Till Tomczak') and \ + not line.strip().startswith('Abgabedatum:'): + processed_content.append(line) + + return '\n'.join(processed_content) + +def add_content_to_document(doc, content): + """Fügt den Inhalt zum Word-Dokument hinzu""" + lines = content.split('\n') + current_paragraph = None + in_code_block = False + + for line in lines: + # Überschrift 1 + if line.startswith('# '): + heading = line[2:].strip() + doc.add_heading(heading, level=1) + current_paragraph = None + + # Überschrift 2 + elif line.startswith('## '): + heading = line[3:].strip() + doc.add_heading(heading, level=2) + current_paragraph = None + + # Überschrift 3 + elif line.startswith('### '): + heading = line[4:].strip() + doc.add_heading(heading, level=3) + current_paragraph = None + + # Überschrift 4 + elif line.startswith('#### '): + heading = line[5:].strip() + # Word hat standardmäßig nur 3 Heading-Ebenen, nutze fetten Text + p = doc.add_paragraph() + p.add_run(heading).bold = True + current_paragraph = None + + # Aufzählungen + elif line.strip().startswith('- '): + text = line.strip()[2:] + p = doc.add_paragraph(text, style='List Bullet') + current_paragraph = None + + # Normaler Text + elif line.strip(): + if current_paragraph is None: + current_paragraph = doc.add_paragraph() + else: + current_paragraph.add_run(' ') + + # Verarbeite Inline-Formatierungen + process_inline_formatting(current_paragraph, line) + + # Leerzeile + else: + current_paragraph = None + +def process_inline_formatting(paragraph, text): + """Verarbeitet Inline-Formatierungen wie fett und kursiv""" + # Ersetze Markdown-Formatierungen + parts = re.split(r'(\*\*[^*]+\*\*|\*[^*]+\*|`[^`]+`)', text) + + for part in parts: + if part.startswith('**') and part.endswith('**'): + # Fett + paragraph.add_run(part[2:-2]).bold = True + elif part.startswith('*') and part.endswith('*') and not part.startswith('**'): + # Kursiv + paragraph.add_run(part[1:-1]).italic = True + elif part.startswith('`') and part.endswith('`'): + # Code + run = paragraph.add_run(part[1:-1]) + run.font.name = 'Courier New' + run.font.size = Pt(10) + else: + # Normaler Text + paragraph.add_run(part) + +def add_table_of_contents(doc): + """Fügt ein Inhaltsverzeichnis hinzu""" + doc.add_heading('Inhaltsverzeichnis', level=1) + + # Platzhalter für automatisches Inhaltsverzeichnis + p = doc.add_paragraph() + p.add_run('[Das Inhaltsverzeichnis wird in Word automatisch generiert.\n') + p.add_run('Verwenden Sie: Verweise → Inhaltsverzeichnis → Automatisches Verzeichnis]') + p.italic = True + + doc.add_page_break() + +def main(): + """Hauptfunktion""" + # Pfade + input_file = 'Dokumentation_Final_Markdown/Dokumentation.md' + output_file = 'IHK_Projektdokumentation_Final.docx' + + # Lese Markdown-Datei + print("Lese Markdown-Datei...") + with open(input_file, 'r', encoding='utf-8') as f: + content = f.read() + + # Erstelle Word-Dokument + print("Erstelle Word-Dokument...") + doc = Document() + + # Richte Styles und Layout ein + print("Konfiguriere IHK-konforme Formatierung...") + create_ihk_styles(doc) + setup_document_layout(doc) + + # Füge Titelseite hinzu + print("Erstelle Titelseite...") + add_title_page(doc) + + # Füge Inhaltsverzeichnis hinzu + print("Füge Inhaltsverzeichnis hinzu...") + add_table_of_contents(doc) + + # Verarbeite und füge Hauptinhalt hinzu + print("Verarbeite Dokumentinhalt...") + processed_content = process_markdown_content(content) + add_content_to_document(doc, processed_content) + + # Speichere Dokument + print(f"Speichere Dokument als {output_file}...") + doc.save(output_file) + + print("Konvertierung abgeschlossen!") + print("\nHinweise zur Nachbearbeitung:") + print("1. Überprüfen Sie die Formatierung und passen Sie sie ggf. an") + print("2. Generieren Sie das Inhaltsverzeichnis neu (Verweise → Inhaltsverzeichnis aktualisieren)") + print("3. Fügen Sie Kopf- und Fußzeilen mit Seitenzahlen hinzu") + print("4. Überprüfen Sie die Seitenumbrüche") + print("5. Fügen Sie ggf. Abbildungen und Diagramme ein") + +if __name__ == "__main__": + main() \ No newline at end of file