{% if divid == ''%}
<div class="info-radio link">
    <i class='fas fa-external-link-alt'></i>
    <p><a id='{{pdfid}}' href='javascript:startPrintPDF_{{pdfid}}()'>{{title}}</a></p>
</div>
{% else %}
<script>
    jQuery(document).ready(function(){
        jQuery('#{{divid}}').append("<i class='fas fa-external-link-alt'></i><p><a id='{{pdfid}}' href='javascript:startPrintPDF_{{pdfid}}()'>{{title}}</a></p>");
    });
</script>
{% endif %}

<script>

    function startPrintPDF_{{pdfid}}(){
        if(jQuery('.coach_output_gbu_chart_accordion').length){
            jQuery('.coach_output_gbu_chart_accordion').collapse();
            var tOut = setTimeout(function(){
                generatePDF_{{pdfid}}();
            }, 2000);
        }
        else{
            generatePDF_{{pdfid}}();
        }

    }

    function generatePDF_{{pdfid}}(){

        var content = {{content | raw}};
        
        // Angaben zur PDF
        var pdfOrientation = '{{format}}';
        var pdfFormat = 'a4';
        // Font
        var pdfFont = 'helvetica';
        var currentFontSize = 12;
        var currentFontStyle = "normal";
        // Seitenränder (Werte jeweils in mm)
		var pdfMarginTop = 25;
		var pdfMarginLeft = 25;
		var pdfMarginRight = 25;
        var pdfMarginBottom = 20;
        // Erstellen der PDF-Instanz
        var doc = new jspdf.jsPDF({orientation: pdfOrientation, format: pdfFormat});
        // Höhe/Breite/Mitte der PDF (Werte jeweils in mm)
        var maxHeight = doc.internal.pageSize.height;
		var maxWidth = doc.internal.pageSize.width;
        var pdfCenter = maxWidth/2;
        // Deklaration von Variable für Listen-Stil
        var listStyle = "";
        // Deklaration von Array für Tabellenzellen
        var trCellArray = [];
        // Seitenzahl
        doc.page = 1;
        var pageNumberFontSize = 11;
        var pageNumberFontStyle = "normal"
        // Schreiben der Seitenzahl auf der ersten Seite
        doc = pdfWritePageNumber(doc, pdfFont, currentFontSize, currentFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginBottom, maxHeight);

        // Maximal erlaubte Breite für Inhalt in der PDF (Wert in mm)
        var maxContentWidth = maxWidth - pdfMarginLeft - pdfMarginRight;
		// Aktuelle Position in y-Richtung im Dokument
        var currentHeightPosition = pdfMarginTop;
        
        // Schreibe Überschrift für Dokument, sofern verfügbar 
        var docHeadline = '{{docheadline}}';
        if(docHeadline.trim() != ""){
            // Schriftfarbe und -größe für Überschrift im Dokument festlegen
            var docHeadlineTextColor = "rgb(0,0,0)"
            var docHeadlineFontSize = pdfGetHeadlineSize("h1");
            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
            var currentTextColor = doc.getTextColor();
            var currentFontSize = doc.getFontSize();
            // Schriftfarbe für Überschrift setzen
            doc.setTextColor(docHeadlineTextColor);
            doc.setFontSize(docHeadlineFontSize);

            // Ersetze Sonderzeichen in Überschrift
            docHeadline = docHeadline.trim();
            docHeadline = pdfReplaceSpecialCharacters(docHeadline);
            var docHeadlineArray = doc.splitTextToSize(docHeadline, maxContentWidth);
            for(var docH=0; docH< docHeadlineArray.length; docH++){
                // Zeile passt nicht mehr auf Seite
                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                    var docFontSize = doc.getFontSize();
                    var docFontStyle = "normal";
                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                    doc = result[0]; 
                    currentHeightPosition = result[1];
                }
                var writeResult = pdfWriteContent(doc, docHeadlineArray[docH], pdfMarginLeft, currentHeightPosition);
                doc = writeResult[0];
                currentHeightPosition = writeResult[1];
            }
            
            // Zurücksetzen der Schriftfarbe und -größe
            doc.setTextColor(currentTextColor);
            doc.setFontSize(currentFontSize);
            currentHeightPosition += 3;
        }

        var pdfIgnoreFlag = 0;
        var pdfIgnoreHTMLCommentFlag = 0;

        // Schreiben des eingeschlossenen Inhalts
        for(var c=0; c<content.length; c++){
            var currentLine = content[c];
            currentLine = currentLine.trim();
            // Falls die aktuelle Zeile nicht ignoriert werden soll
            if(pdfIgnoreFlag == 0 && pdfIgnoreHTMLCommentFlag == 0){
                // Shortcode Accordionmd. title wird als h4-Überschrift behandelt
                if(currentLine.startsWith("[accordionmd") || currentLine.startsWith("[tspv2_accordionmd") || currentLine.startsWith("[tspv2_accordion")){
                    var accordionTitle = pdfGetTitleAttribute(currentLine);
                    accordionTitle = pdfReplaceSpecialCharacters(accordionTitle);
                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                    var currentTextColor = doc.getTextColor();
                    var currentFontSize = doc.getFontSize();
                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                    var headlineTextColor = jQuery(".accordiontitle").css("color");
                    var headlineFontSize = pdfGetHeadlineSize("h4");
                    // Schriftfarbe für Überschrift setzen
                    doc.setTextColor(headlineTextColor);
                    doc.setFontSize(headlineFontSize);

                    var accordionTitleArray = doc.splitTextToSize(accordionTitle, maxContentWidth);
                    for(var i=0; i< accordionTitleArray.length; i++){
                        // Zeile passt nicht mehr auf Seite
                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                            var docFontSize = doc.getFontSize();
                            var docFontStyle = "normal";
                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                            doc = result[0];
                            currentHeightPosition = result[1];
                        }
                        var writeResult = pdfWriteContent(doc, accordionTitleArray[i], pdfMarginLeft, currentHeightPosition);
                        doc = writeResult[0];
                        currentHeightPosition = writeResult[1];
                    }
                    
                    // Zurücksetzen der Schriftfarbe und -größe
                    doc.setTextColor(currentTextColor);
                    doc.setFontSize(currentFontSize);

                }
                // div TODO
                else if(currentLine.startsWith("<div")){
                    var divClass = jQuery(currentLine).attr("class");
                    divClass = divClass.trim();
                    divClass = divClass.replace(/ /g, ",");
                    if(jQuery("."+divClass).hasClass("exer")){
                        doc.setFont(pdfFont, "bold");
                        // Hintergrundfarbe für exer-Klasse
                        var exerBackground = jQuery(".exer").css("background-color");
                        // Abstand zwischen Inhalt und Rahmen in X-Richtung
                        var fieldMarginX = 5;
                        // Abstand zwischen Inhalt und Rahmen in Y-Richtung
                        var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                        // maximale Breite für Inhalt
                        var maxDivContentWidth = maxContentWidth - 2*fieldMarginX
                        // Position für den Rahmen
                        var currentRectPosition = currentHeightPosition;
                        // Zusätzlicher Abstand nach Zeichnen des Rahmens
                        var offsetYDir = 1.5;

                        var divContent = jQuery(currentLine).text();
                        divContent = pdfReplaceSpecialCharacters(divContent);
                        var divContentArray = doc.splitTextToSize(divContent, maxDivContentWidth);
                        var linesToDraw = divContentArray.length;

                        // Drucke Rahmen und Text
                        while(linesToDraw > 0){
                            // Berechne übrigen Platz auf Seite
                            var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                            // Anzahl an freien Zeilen für Inhalt auf Seite
                            var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                            // Es kann mindestens eine Zeile gezeichnet werden
                            if(linesAvailable > 0){
                                // Zeilen, die auf dieser Seite gezeichnet werden können
                                var linesThisPage = 0
                                if(linesAvailable >= linesToDraw){
                                    linesThisPage = linesToDraw;
                                }
                                else{
                                    linesThisPage = linesAvailable;
                                }
                                // Zeichne Rahmen
                                var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                doc = pdfDrawRectangle(doc, pdfMarginLeft, currentRectPosition, maxContentWidth, heightThisRect+2*fieldMarginY, exerBackground);
                                currentRectPosition += heightThisRect+2*fieldMarginY;

                                while(linesThisPage > 0){
                                    // Inhalt schreiben, sofern vorhanden
                                    if(divContentArray.length > 0){
                                        doc.setFont(pdfFont, "bold");
                                        doc.setTextColor(255,255,255);
                                        var result = pdfWriteContent(doc, divContentArray[0], pdfMarginLeft+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                        doc = result[0];
                                        currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                        divContentArray.shift();
                                        doc.setTextColor(0,0,0);
                                        doc.setFont(pdfFont, "normal");
                                    }
                                    // Zählvariable innere Schleife anpassen
                                    linesThisPage--;
                                    // Zählvariable äußere Schleife anpassen
                                    linesToDraw--;
                                }
                            }
                            // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                            else{
                                var docFontSize = doc.getFontSize();
                                var docFontStyle = "normal";
                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                doc = result[0];
                                currentHeightPosition = result[1];
                                currentRectPosition = currentHeightPosition;
                            }
                        }
                        currentHeightPosition = currentRectPosition;
                        currentHeightPosition += 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                        doc.setFont(pdfFont, "normal");
                    }


                    
                }
                //else if(currentLine.includes("<p>")||currentLine.includes("</p>")){
                else if(currentLine.startsWith("<p")){
                    //currentLineText = currentLine.
                    var currentLineText = jQuery(currentLine).text();
                    currentLineText = pdfReplaceSpecialCharacters(currentLineText);
                    var currentLineTextArray = doc.splitTextToSize(currentLineText, maxContentWidth);
                    for(var i=0; i< currentLineTextArray.length; i++){
                        // Zeile passt nicht mehr auf Seite
                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                            var docFontSize = doc.getFontSize();
                            var docFontStyle = "normal";
                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                            doc = result[0]; 
                            currentHeightPosition = result[1];
                        }
                        var writeResult = pdfWriteContent(doc, currentLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                        doc = writeResult[0];
                        currentHeightPosition = writeResult[1];
                    }
                }
                // Ungeordnete Liste
                else if(currentLine.startsWith("<ul")){
                    listStyle = "ul";
                }
                // Geordnete Liste
                else if(currentLine.startsWith("<ol")){
                    listStyle = "ol"
                    var bulletpointCount = 0;
                }
                // Zurücksetzen des Listentyps
                else if(currentLine.startsWith("</ul") || currentLine.startsWith("</ol")){
                    listStyle = "";
                }
                // Listenelement
                else if(currentLine.startsWith("<li")){
                    var bulletpoint = "";
                    // Definiere die Darstellung des Bulletpoints anhand der Art der Liste
                    if(listStyle == "ul" || listStyle == ""){
                        bulletpoint = "- ";
                    } 
                    else if(listStyle == "ol"){
                        bulletpointCount++;
                        if(bulletpointCount < 10){
                            bulletpoint = " "+bulletpointCount+". ";
                        }
                        else{
                            bulletpoint = bulletpointCount+". ";
                        }
                    }
                    var liContent = jQuery(currentLine).contents();
                    var bulletpointLength = (doc.getStringUnitWidth(bulletpoint)*doc.getFontSize())/(72/25.6);

                    for(var liIndex = 0; liIndex < liContent.length; liIndex++){

                        // Fallunterscheidung nach Elementtyp im Listenelement
                        // Paragraph
                        if(jQuery(liContent[liIndex]).is("p")){
                            var thisContent = jQuery(liContent[liIndex]).text();
                            thisContent = pdfReplaceSpecialCharacters(thisContent);
                            var contentArray = doc.splitTextToSize(thisContent, maxContentWidth-bulletpointLength);
                            for(var contentIndex = 0; contentIndex < contentArray.length; contentIndex++){
                                // Zeile passt nicht mehr auf Seite
                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                    var docFontSize = doc.getFontSize();
                                    var docFontStyle = "normal";
                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                    doc = result[0]; 
                                    currentHeightPosition = result[1];
                                }
                                // Zeichne Bulletpoint
                                if(liIndex == 0 && contentIndex == 0){
                                    var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                    doc = writeResult[0]
                                }
                                var writeResult = pdfWriteContent(doc, contentArray[contentIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                doc = writeResult[0];
                                currentHeightPosition = writeResult[1];
                            }
                        }
                        // (un-)geordnete Liste
                        else if(jQuery(liContent[liIndex]).is("ul") || jQuery(liContent[liIndex]).is("ol")){
                            var innerListStyle = "";

                            if(jQuery(liContent[liIndex]).is("ul")){
                                innerListStyle = "ul";
                            }
                            else if(jQuery(liContent[liIndex]).is("ol")){
                                innerListStyle = "ol";
                            }


                            var innerListContent = jQuery(liContent[liIndex]).contents();
                            // Ab hier in Schleife abarbeiten. Erst machen, wenn es für normale Liste gemacht wurde
                            for(var innerListIndex = 0; innerListIndex < innerListContent.length; innerListIndex++){
                                // Bulletpoint-Typ bestimmen
                                var innerBulletpoint = "";
                                if(innerListStyle == "ul"){
                                    innerBulletpoint = "- ";
                                }
                                else if(innerListStyle == "ol"){
                                    if(innerListIndex < 9){
                                        var listCounter = innerListIndex+1;
                                        innerBulletpoint = " "+listCounter+". ";
                                    }
                                    else{
                                        var listCounter = innerListIndex+1;
                                        innerBulletpoint = listCounter+". ";
                                    }
                                }

                                var innerBulletpointLength = (doc.getStringUnitWidth(innerBulletpoint)*doc.getFontSize())/(72/25.6);

                                var innerListElement = jQuery(innerListContent[innerListIndex]).contents();

                                if(jQuery(innerListElement).is("p")){
                                    var innerListElementContent = jQuery(innerListElement).text();
                                    innerListElementContent = pdfReplaceSpecialCharacters(innerListElementContent);
                                    var innerListElementContentArray = doc.splitTextToSize(innerListElementContent, maxContentWidth-bulletpointLength-innerBulletpointLength);
                                    for(var innerListElementIndex = 0; innerListElementIndex < innerListElementContentArray.length; innerListElementIndex++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        // Zeichne Bulletpoint
                                        if(liIndex == 0 && innerListIndex == 0 && innerListElementIndex == 0){
                                            var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0]
                                        }
                                        if(innerListElementIndex == 0){
                                            var writeResult = pdfWriteContent(doc, innerBulletpoint, pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                            doc = writeResult[0]
                                        }
                                        var writeResult = pdfWriteContent(doc, innerListElementContentArray[innerListElementIndex], pdfMarginLeft+bulletpointLength+innerBulletpointLength, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }

                                }
                                else{
                                    var innerListElementContent = jQuery(innerListElement).text();
                                    if(innerListElementContent.startsWith("[ts_forms")){
                                        // TODO
                                    }
                                    else if(innerListElementContent.startsWith("[coach_output_format_data")){
                                        // TODO
                                    }
                                    else{
                                        // Text
                                        innerListElementContent = pdfReplaceSpecialCharacters(innerListElementContent);
                                        var innerListElementContentArray = doc.splitTextToSize(innerListElementContent, maxContentWidth-bulletpointLength-innerBulletpointLength);
                                        for(var innerListElementIndex = 0; innerListElementIndex < innerListElementContentArray.length; innerListElementIndex++){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                            }
                                            // Zeichne Bulletpoint
                                            if(liIndex == 0 && innerListIndex == 0 && innerListElementIndex == 0){
                                                var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0]
                                            }
                                            if(innerListElementIndex == 0){
                                                var writeResult = pdfWriteContent(doc, innerBulletpoint, pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                                doc = writeResult[0]
                                            }
                                            var writeResult = pdfWriteContent(doc, innerListElementContentArray[innerListElementIndex], pdfMarginLeft+bulletpointLength+innerBulletpointLength, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];
                                        }
                                    }
                                }
                                
                            }
                        }
                        // Keines der vorherigen Elemente/ Text
                        else{
                            var thisContent = jQuery(liContent[liIndex]).text();
                            thisContent = thisContent.trim();
                            // Weitere Fallunterscheidung, um Shortcodes zu identifizieren
                            // Shortcode ts_forms
                            if(thisContent.startsWith("[ts_forms")){
                                var formId = pdfGetIdAttribute(thisContent);
                                // MultiForm
                                if(jQuery("button[data-formid='"+formId+"']").hasClass("ts-forms-multiformbutton")){
                                    // bisher nicht unterstützt
                                }
                                // Kein MultiForm
                                else{
                                    var tsFormGroups = jQuery("[data-formid='"+formId+"']").find(".form-group");
                                    // Flag, welches anzeigt, ob der Bulletpoint bereits beim Label geschrieben wurde
                                    var labelFlag = 0;
                                    
                                    for(var listFormGroup = 0; listFormGroup < tsFormGroups.length; listFormGroup++){
                                        var labelText = pdfGetTsFormLabel(tsFormGroups[listFormGroup]);
                                        labelText = pdfReplaceSpecialCharacters(labelText);

                                        if(labelText != ""){
                                            doc.setFont(pdfFont, "bold");
                                            var labelTextArray = doc.splitTextToSize(labelText, maxContentWidth);
                                            for(var labelIndex=0; labelIndex<labelTextArray.length; labelIndex++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "bold";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0]; 
                                                    currentHeightPosition = result[1];
                                                }
                                                if(labelIndex == 0 && liIndex == 0 && listFormGroup == 0){
                                                    var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                                    doc = writeResult[0];
                                                    labelFlag = 1;
                                                }
                                                var writeResult = pdfWriteContent(doc, labelTextArray[labelIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            doc.setFont(pdfFont, "normal");
                                        }
                                        var tsFormField = pdfGetTsFormField(jQuery(tsFormGroups[listFormGroup]));
                                        var fieldContent = tsFormField[0];
                                        var contentSize = tsFormField[1];
                                        var contentStyle = tsFormField[2];
                                        var contentColor = tsFormField[3];

                                        fieldContent = pdfReplaceSpecialCharacters(fieldContent);
                                        // Schreibe nur Inhalt, der nicht leer ist
                                        if(fieldContent != ""){
                                            // Ergänze bei Checkboxen einen Spiegelstrich
                                            if(jQuery(tsFormGroups[listFormGroup]).find("input[type='checkbox']").is("input[type='checkbox']")){
                                                var checkboxBulletpointLength = (doc.getStringUnitWidth("- ")*doc.getFontSize())/(72/25.6);
                                                var fieldContentArray = doc.splitTextToSize(fieldContent, maxContentWidth-bulletpointLength-checkboxBulletpointLength);
                                                for(var fieldContentIndex=0; fieldContentIndex<fieldContentArray.length; fieldContentIndex++){
                                                    // Zeile passt nicht mehr auf Seite
                                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                        var docFontSize = doc.getFontSize();
                                                        var docFontStyle = "normal";
                                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                        doc = result[0]; 
                                                        currentHeightPosition = result[1];
                                                    }
                                                    
                                                    if(fieldContentIndex == 0){
                                                        // Zeichne den äußeren Bulletpoint
                                                        if(liIndex == 0 && listFormGroup == 0 && labelFlag == 0){
                                                            var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                                            doc = writeResult[0];
                                                        }
                                                        // Zeichne den inneren Bulletpoint
                                                        var writeResult = pdfWriteContent(doc, "- ", pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                                        doc = writeResult[0];
                                                    }
                                                    var writeResult = pdfWriteContent(doc, fieldContentArray[fieldContentIndex], pdfMarginLeft+bulletpointLength+checkboxBulletpointLength, currentHeightPosition);
                                                    doc = writeResult[0];
                                                    currentHeightPosition = writeResult[1];
                                                }
                                            }
                                            else{
                                                var fieldContentArray = doc.splitTextToSize(fieldContent, maxContentWidth-bulletpointLength);
                                                for(var fieldContentIndex=0; fieldContentIndex<fieldContentArray.length; fieldContentIndex++){
                                                    // Zeile passt nicht mehr auf Seite
                                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                        var docFontSize = doc.getFontSize();
                                                        var docFontStyle = "normal";
                                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                        doc = result[0]; 
                                                        currentHeightPosition = result[1];
                                                    }
                                                    // Zeichnet den Bulletpoint
                                                    if(fieldContentIndex == 0 && liIndex == 0 && listFormGroup == 0 && labelFlag == 0){
                                                        var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                    }
                                                    var writeResult = pdfWriteContent(doc, fieldContentArray[fieldContentIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                                    doc = writeResult[0];
                                                    currentHeightPosition = writeResult[1];
                                                }
                                            } 
                                        }
                                    }
                                }
                            }
                            // Shortcode coach_output_format_data
                            else if(thisContent.startsWith("[coach_output_format_data")){
                                var outputId = pdfGetIdAttribute(thisContent);
                                var outputTitle = pdfGetTitleAttribute(thisContent);
                                var thisOutputId = "coach_output_format_data_"+outputId;
                                var thisOutputElement = jQuery('#'+thisOutputId);
                                var labelFlag = 0;
                                // text = 1
                                if(jQuery(thisOutputElement).is("p")){
                                    var thisTitle = pdfReplaceSpecialCharacters(outputTitle);
                                    // Schreiben des Titels sofern vorhanden
                                    if(thisTitle != ""){
                                        doc.setFont(pdfFont, "bold");
                                        var thisTitleArray = doc.splitTextToSize(thisTitle, maxContentWidth-bulletpointLength);
                                        for(var titleIndex = 0; titleIndex < thisTitleArray.length; titleIndex++){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "bold";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                            }

                                            if(titleIndex == 0 && liIndex == 0){
                                                var writeResult = pdfWriteContent(doc,bulletpoint,pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                labelFlag = 1;
                                            }
                                            var writeResult = pdfWriteContent(doc, thisTitleArray[titleIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];

                                        }
                                        doc.setFont(pdfFont, "normal");
                                    }
                                    // Schreiben des Inhalts
                                    var thisContent = pdfGetCoachOutputFormatDataContent(thisOutputElement,"text");
                                    thisContent = pdfReplaceSpecialCharacters(thisContent);
                                    var thisContentArray = doc.splitTextToSize(thisContent, maxContentWidth-bulletpointLength);

                                    for(var contentIndex = 0; contentIndex < thisContentArray.length; contentIndex++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                        }
                                        if(contentIndex == 0 && liIndex == 0 && labelFlag == 0){
                                            var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0];
                                        }
                                        var writeResult = pdfWriteContent(doc, thisContentArray[contentIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                }
                                // list = 1
                                else if(jQuery(thisOutputElement).is("ul")){
                                    var thisTitle = pdfReplaceSpecialCharacters(outputTitle);
                                    // Schreiben des Titels sofern vorhanden
                                    if(thisTitle != ""){
                                        doc.setFont(pdfFont, "bold");
                                        var thisTitleArray = doc.splitTextToSize(thisTitle, maxContentWidth-bulletpointLength);
                                        for(var titleIndex = 0; titleIndex < thisTitleArray.length; titleIndex++){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "bold";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                            }

                                            if(titleIndex == 0 && liIndex == 0){
                                                var writeResult = pdfWriteContent(doc,bulletpoint,pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                labelFlag = 1;
                                            }
                                            var writeResult = pdfWriteContent(doc, thisTitleArray[titleIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];

                                        }
                                        doc.setFont(pdfFont, "normal");
                                    }
                                    // Schreiben des Inhalts
                                    var innerBulletpoint = "- ";
                                    var innerBulletpointLength = (doc.getStringUnitWidth(innerBulletpoint)*doc.getFontSize())/(72/25.6);
                                    var listElements = pdfGetCoachOutputFormatDataContent(thisOutputElement, "list");
                                    for(var listElementIndex = 0; listElementIndex < listElements.length; listElementIndex++){
                                        var el = listElements[listElementIndex];
                                        el = pdfReplaceSpecialCharacters(el);
                                        var elArray = doc.splitTextToSize(el, maxContentWidth-bulletpointLength-innerBulletpointLength);
                                        for(var elIndex = 0; elIndex < elArray.length; elIndex++){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                            }

                                            // Zeichne Bulletpoint
                                            if(liIndex == 0 && elIndex == 0 && listElementIndex == 0 && labelFlag == 0){
                                                var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                            }
                                            if(elIndex == 0){
                                                var writeResult = pdfWriteContent(doc, innerBulletpoint, pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                                doc = writeResult[0];
                                            }
                                            var writeResult = pdfWriteContent(doc, elArray[elIndex], pdfMarginLeft+bulletpointLength+innerBulletpointLength, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];

                                        }
                                    }

                                }
                                // table = 1
                                else if(jQuery(thisOutputElement).is("table")){
                                    // TODO
                                }
                            }
                            // Kein Shortcode, sondern normaler Text
                            else{
                                var thisContent = jQuery(liContent[liIndex]).text();
                                thisContent = pdfReplaceSpecialCharacters(thisContent);
                                var contentArray = doc.splitTextToSize(thisContent, maxContentWidth-bulletpointLength);
                                for(var contentIndex = 0; contentIndex < contentArray.length; contentIndex++){
                                    // Zeile passt nicht mehr auf Seite
                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                        var docFontSize = doc.getFontSize();
                                        var docFontStyle = "normal";
                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                        doc = result[0]; 
                                        currentHeightPosition = result[1];
                                    }
                                    // Zeichne Bulletpoint
                                    if(liIndex == 0 && contentIndex == 0){
                                        var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0]
                                    }
                                    var writeResult = pdfWriteContent(doc, contentArray[contentIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                    doc = writeResult[0];
                                    currentHeightPosition = writeResult[1];
                                }
                            }
                        }
                    }
     
                }
                // Bilder
                else if(currentLine.startsWith("<img")){
                    var imgSource = pdfGetImgSource(currentLine);
                    
                    if(imgSource != ""){
                        var imgProperties = doc.getImageProperties(imgSource);
                        var imgClasses = pdfGetImgClass(currentLine);

                        // Bestimme Breite des Bildes
                        var imgWidth = maxContentWidth;
                        if(imgClasses.includes("tspdfdownload-small")){
                            imgWidth = maxContentWidth/4;
                        }
                        else if(imgClasses.includes("tspdfdownload-medium")){
                            imgWidth = maxContentWidth/2;
                        }
                        else if(imgClasses.includes("tspdfdownload-large")){
                            imgWidth = maxContentWidth;
                        }

                        var heightWidthRatio = imgProperties['height']/imgProperties['width'];
                        var imgHeight = imgWidth*heightWidthRatio;

                        // Überprüfe, ob die Höhe des Bildes die maximal mögliche Höhe des Dokuments überschreitet
                        if(imgHeight > maxHeight - pdfMarginBottom - pdfMarginTop){
                            imgHeight = maxHeight - pdfMarginBottom - pdfMarginTop;
                            imgWidth = imgHeight/heightWidthRatio;
                        }

                        // Das Bild passt nicht auf die aktuelle Seite -> Lege eine neue Seite an
                        if(imgHeight > maxHeight - pdfMarginBottom - currentHeightPosition){
                            var docFontSize = doc.getFontSize();
                            var docFontStyle = "normal";
                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                            doc = result[0]; 
                            currentHeightPosition = result[1];
                        }

                        // Bestimme die Positionierung des Bildes
                        var imgXPosition = pdfMarginLeft;
                        if(imgClasses.includes("tspdfdownload-left")){
                            imgXPosition = pdfMarginLeft;
                        }
                        else if(imgClasses.includes("tspdfdownload-center")){
                            imgXPosition = (maxContentWidth/2) - (imgWidth/2) + pdfMarginLeft;
                        }
                        else if(imgClasses.includes("tspdfdownload-right")){
                            imgXPosition = maxContentWidth - imgWidth + pdfMarginLeft;
                        }

                        doc.addImage(imgSource, imgProperties['fileType'], imgXPosition, currentHeightPosition, imgWidth, imgHeight);
                        // Füge einen Abstand unterhalb des Bildes hinzu
                        currentHeightPosition+= imgHeight + 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                    }

                }
                // Tabellen
                else if(currentLine.startsWith("<table")){
                    // TODO: Hier Klasse der Tabelle abrufen
                }
                else if(currentLine.startsWith("</table")){
                    // TODO: Hier Klasse der Tabelle zurücksetzen
                    currentHeightPosition += 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                }
                else if(currentLine.startsWith("<tr")){
                    var trCellArray = [];
                }
                else if(currentLine.startsWith("<th")){
                    trCellArray.push(currentLine);
                }
                else if(currentLine.startsWith("<td")){
                    trCellArray.push(currentLine);
                }
                else if(currentLine.startsWith("</tr")){
                    // Bestimme maximale Breite für eine Cell
                    var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, trCellArray);
                    // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                    var fieldMarginX = 5;
                    // Abstand (in Y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                    var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                    // Maximale Breite für den Inhalt eines Feldes
                    var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                    // Zwischenspeichern der aktuellen Position des Texts
					var tempCurrentHeightPosition = currentHeightPosition;
					// Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
				    var maxCurrentHeightPosition = currentHeightPosition;
					// Offset zwischen einzelnen Feldern in Y-Richtung
					var offsetYDir = 1.5;
					// Zwischenspeichern der aktuellen Seite(nzahl)
					var tempPage = doc.page; 
					// Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                    var maxPage = doc.page;

                    // Aktuelle Position des Rahmens 
                    var currentRectPosition = currentHeightPosition;
                    // Zwischenspeichern der aktuellen Position des Rahmens
                    var tempRectPosition = currentRectPosition;

                    // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zellen dieser Reihe
                    var maxLinesThisRow = 0;
                    for(var cellIndex1 = 0; cellIndex1 < trCellArray.length; cellIndex1++){

                        var numberLinesThisCell = pdfGetNumberLinesCell(doc,jQuery(trCellArray[cellIndex1]).contents(), maxFieldContentWidth, pdfFont);

                        if(numberLinesThisCell > maxLinesThisRow){
                            maxLinesThisRow = numberLinesThisCell;
                        }
                    }

                    // Drucke den Inhalt nur, wenn die Zellen der Tabelle eine positive Breite haben
                    if(maxFieldContentWidth > 0){
                        for(var cellIndex2 = 0; cellIndex2 < trCellArray.length; cellIndex2++){

                            // Zurücksetzen der Position
                            currentHeightPosition = tempCurrentHeightPosition;
                            doc.page = tempPage;
                            doc.setPage(tempPage);
                            // Position für Rahmen zurücksetzen
                            currentRectPosition = tempRectPosition;


                            var cellContentResult = pdfGetCellContent(doc, jQuery(trCellArray[cellIndex2]).contents(), maxFieldContentWidth);
                            var contentThisCell = cellContentResult[0];
                            var styleThisCell = cellContentResult[1];
                            // Zählvariable für Schleife
                            var linesToDraw = maxLinesThisRow;
                            // Drucke Rahmen und Inhalt
                            while(linesToDraw > 0){
                                // Berechne übrigen Platz auf Seite
                                var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                // Anzahl an freien Zeilen für Inhalt auf Seite
                                var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                // Es kann mindestens eine Zeile gezeichnet werden
                                if(linesAvailable > 0){
                                    // Zeilen, die auf dieser Seite gezeichnet werden können
                                    var linesThisPage = 0
                                    if(linesAvailable >= linesToDraw){
                                        linesThisPage = linesToDraw;
                                    }
                                    else{
                                        linesThisPage = linesAvailable;
                                    }
                                    // Zeichne Rahmen
                                    var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                    // TODO: Farbe für Zelle abrufen
                                    doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*cellIndex2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, "rgb(255,255,255)");
                                    currentRectPosition += heightThisRect+2*fieldMarginY;
                                    
                                    while(linesThisPage > 0){
                                        // Inhalt schreiben, sofern vorhanden
                                        if(contentThisCell.length > 0){
                                            doc.setFont(pdfFont, styleThisCell[0]);
                                            var result = pdfWriteContent(doc, contentThisCell[0], pdfMarginLeft+cellIndex2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                            doc = result[0];
                                            currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                            contentThisCell.shift();
                                            styleThisCell.shift();
                                            doc.setFont(pdfFont, "normal");
                                        }
                                        // Zählvariable innere Schleife anpassen
                                        linesThisPage--;
                                        // Zählvariable äußere Schleife anpassen
                                        linesToDraw--;
                                    }
                                }
                                // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                else{
                                    var docFontSize = doc.getFontSize();
                                    var docFontStyle = "normal";
                                    var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                    doc = result[0];
                                    currentHeightPosition = result[1];
                                    maxPage = result[2];
                                    currentRectPosition = currentHeightPosition;
                                }
                            }
                        }
                        currentHeightPosition = currentRectPosition;
                    }


                }
                // Line Breaks
                else if(currentLine.includes("<br>")||currentLine.includes("</br>")){
                    // Zeile passt nicht mehr auf Seite
                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                            var docFontSize = doc.getFontSize();
                            var docFontStyle = "normal";
                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                            doc = result[0]; 
                            currentHeightPosition = result[1];
                        }
                    var writeResult = pdfWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                    doc = writeResult[0];
                    currentHeightPosition = writeResult[1];
                }
                // Überschriften
                else if(currentLine.startsWith("<h1")||currentLine.startsWith("<h2")|| currentLine.startsWith("<h3")||currentLine.startsWith("<h4")|| currentLine.startsWith("<h5")|| currentLine.startsWith("<h6")){

                    // Text der Überschrift abrufen
                    var headlineText = jQuery(currentLine).text();
                    
                    var headlineType = "";
                    if(currentLine.startsWith("<h1")){
                        headlineType = "h1";
                    }
                    else if(currentLine.startsWith("<h2")){
                        headlineType = "h2";
                    }
                    else if(currentLine.startsWith("<h3")){
                        headlineType = "h3";
                    }
                    else if(currentLine.startsWith("<h4")){
                        headlineType = "h4";
                    }
                    else if(currentLine.startsWith("<h5")){
                        headlineType = "h5";
                    }
                    else if(currentLine.startsWith("<h6")){
                        headlineType = "h6";
                    }

                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                    var headlineTextColor = pdfGetHeadlineColor(headlineType, headlineText);
                    var headlineFontSize = pdfGetHeadlineSize(headlineType);
                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                    var currentTextColor = doc.getTextColor();
                    var currentFontSize = doc.getFontSize();
                    // Schriftfarbe für Überschrift setzen
                    doc.setTextColor(headlineTextColor);
                    doc.setFontSize(headlineFontSize);

                    // Ersetze Sonderzeichen in Überschrift
                    headlineText = pdfReplaceSpecialCharacters(headlineText);
                    var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                    for(var i=0; i< headLineTextArray.length; i++){
                        // Zeile passt nicht mehr auf Seite
                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                            var docFontSize = doc.getFontSize();
                            var docFontStyle = "normal";
                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                            doc = result[0]; 
                            currentHeightPosition = result[1];
                        }
                        var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                        doc = writeResult[0];
                        currentHeightPosition = writeResult[1];
                    }

                    // Zurücksetzen der Schriftfarbe und -größe
                    doc.setTextColor(currentTextColor);
                    doc.setFontSize(currentFontSize);
                }
                // Shortcode ts_forms
                else if(currentLine.startsWith("[ts_forms")){
                    // Abrufen der ID des Forms
                    var formID = pdfGetIdAttribute(currentLine);
                    // zusätzlicher Abstand zwischen Feldern
                    var offsetYDir = 1.5;
                    // Multiform (wird wie Tabelle dargestellt)
                    if(jQuery("button[data-formid='"+formID+"']").hasClass("ts-forms-multiformbutton")){
                        // Rufe alle Reihen des MultiForms ab
                        var multiFormRows = jQuery("div[data-formid='"+formID+"']");
                        for(var mfRowIndex = 0; mfRowIndex < multiFormRows.length; mfRowIndex++){
                            var thisRowFormGroups = jQuery(multiFormRows[mfRowIndex]).find(".form-group");

                            // Rufe Label/Title der ersten Reihe ab
                            if(mfRowIndex == 0){
                                currentFontStyle = 'bold';
                                doc.setFont(pdfFont, currentFontStyle);
                                // Bestimme maximale Breite für eine Cell
                                var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, thisRowFormGroups);
                                // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                var fieldMarginX = 5;
                                // Abstand (in Y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                // Maximale Breite für den Inhalt eines Feldes
                                var maxFieldContentWidth = cellWidth - 2*fieldMarginX;
                                            
                                // Zwischenspeichern der aktuellen Position des Texts
								var tempCurrentHeightPosition = currentHeightPosition;
								// Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
							    var maxCurrentHeightPosition = currentHeightPosition;
								// Offset zwischen einzelnen Feldern in Y-Richtung
								var offsetYDir = 1.5;
								// Zwischenspeichern der aktuellen Seite(nzahl)
								var tempPage = doc.page; 
								// Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                var maxPage = doc.page;
                                
                                // Drucke die Überschriften nur, wenn die maximale Breite für den Inhalt in einer Cell größer als 0 ist
                                if(maxFieldContentWidth > 0){
                                    var mfLabelArray = [];
                                    var mfLabelSizeArray = [];
                                    var mfLabelStyleArray = [];
                                    // Rufe Labels der einzelnen Felder ab, sofern vorhanden
                                    for(var title1=0; title1< thisRowFormGroups.length; title1++){
                                        var labelText = pdfGetTsFormLabel(jQuery(thisRowFormGroups[title1]));
                                        labelText = pdfReplaceSpecialCharacters(labelText);
                                        mfLabelArray.push(labelText);
                                        mfLabelSizeArray.push(12);
                                        mfLabelStyleArray.push("bold");
                                    }
                                    // Bestimme die maximale Anzahl an Zeilen, die für das Drucken der Label benötigt wird
                                    var maxLabelLines = pdfGetMaxTableCellLines(doc, pdfFont, mfLabelArray, mfLabelSizeArray, mfLabelStyleArray, maxFieldContentWidth);

                                    for(var title2 = 0; title2 < mfLabelArray.length; title2++){
                                        // Zurücksetzen der Position
                                        doc.page = tempPage;
										doc.setPage(tempPage);
                                        currentHeightPosition = tempCurrentHeightPosition;
                                        
                                        var thisLabel = doc.splitTextToSize(mfLabelArray[title2], maxFieldContentWidth);
                                        for(var thisLabelIndex = 0; thisLabelIndex < thisLabel.length; thisLabelIndex++){
                                            // Falls die aktuelle Zeile nicht mehr auf die Seite passt
                                            if(currentHeightPosition+pdfMarginBottom>maxHeight){
                                                var docFontSize = mfLabelSizeArray[title2];
                                                var docFontStyle = mfLabelStyleArray[title2];
                                                var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                doc = result[0];
                                                currentHeightPosition = result[1];
                                                maxPage = result[2];

                                            }
                                            doc.text(thisLabel[thisLabelIndex], pdfMarginLeft+cellWidth*title2+fieldMarginX , currentHeightPosition);
											currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                        }
                                    }
                                    currentHeightPosition = tempCurrentHeightPosition;
                                    for(var pos=0; pos < maxLabelLines; pos++){
                                        if(currentHeightPosition+pdfMarginBottom>maxHeight){
                                            currentHeightPosition = pdfMarginTop;
                                        }
                                        currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                    }
                                    // Offset ergänzen
                                    currentHeightPosition += offsetYDir;
                                    doc.page = maxPage;
								    doc.setPage(maxPage);
                                }
                                doc.setFont(pdfFont, "normal");
                            }

                            // Bestimme maximale Breite für eine Cell
                            var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, thisRowFormGroups);
                            // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                            var fieldMarginX = 5;
                            // Abstand (in Y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                            var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                            // Maximale Breite für den Inhalt eines Feldes
                            var maxFieldContentWidth = cellWidth - 2*fieldMarginX;
                                            
                            // Zwischenspeichern der aktuellen Position des Texts
							var tempCurrentHeightPosition = currentHeightPosition;
							// Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
							var maxCurrentHeightPosition = currentHeightPosition;
							// Offset zwischen einzelnen Feldern in Y-Richtung
							var offsetYDir = 1.5;
							// Zwischenspeichern der aktuellen Seite(nzahl)
							var tempPage = doc.page; 
							// Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                            var maxPage = doc.page;

                            if(maxFieldContentWidth > 0){
                                var mfContentArray = [];
                                var mfSizeArray = [];
                                var mfStyleArray = [];
                                var mfColorArray = [];
                                for(var content1 = 0; content1 < thisRowFormGroups.length; content1++){
                                    var tsFormField = pdfGetTsFormField(jQuery(thisRowFormGroups[content1]));
                                    var contentText = tsFormField[0];
                                    var contentSize = tsFormField[1];
                                    var contentStyle = tsFormField[2];
                                    var contentColor = tsFormField[3];
                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                    mfContentArray.push(contentText);
                                    mfSizeArray.push(contentSize);
                                    mfStyleArray.push(contentStyle);
                                    mfColorArray.push(contentColor);
                                }
                                // Bestimme die maximale Anzahl an Zeilen, die für das Drucken des Content benötigt wird
                                var maxContentLines = pdfGetMaxTableCellLines(doc, pdfFont, mfContentArray, mfSizeArray, mfStyleArray, maxFieldContentWidth);

                                for(var content2 = 0; content2 < mfContentArray.length; content2++){
                                    // Zurücksetzen der Position
                                    doc.page = tempPage;
								    doc.setPage(tempPage);
                                    currentHeightPosition = tempCurrentHeightPosition;

                                    // Setzen der Schriftgröße, -farbe und -stil
                                    doc.setFontSize(mfSizeArray[content2]);
                                    doc.setFont(pdfFont, mfStyleArray[content2]);
                                    doc.setTextColor(mfColorArray[content2]);
                                        
                                    var thisContent = doc.splitTextToSize(mfContentArray[content2], maxFieldContentWidth);
                                    for(var thisContentIndex = 0; thisContentIndex < thisContent.length; thisContentIndex++){
                                        // Falls die aktuelle Zeile nicht mehr auf die Seite passt
                                        if(currentHeightPosition+pdfMarginBottom>maxHeight){
                                            var docFontSize = mfSizeArray[content2];
                                            var docFontStyle = mfStyleArray[content2];
                                            var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                            doc = result[0];
                                            currentHeightPosition = result[1];
                                            maxPage = result[2];

                                        }
                                        doc.text(thisContent[thisContentIndex], pdfMarginLeft+cellWidth*content2+fieldMarginX , currentHeightPosition);
									    currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                    }

                                }
                                currentHeightPosition = tempCurrentHeightPosition;
                                for(var pos=0; pos < maxContentLines; pos++){
                                    if(currentHeightPosition+pdfMarginBottom>maxHeight){
                                        currentHeightPosition = pdfMarginTop;
                                    }
                                    currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                }
                                // Offset ergänzen
                                currentHeightPosition += offsetYDir;
                                doc.page = maxPage;
							    doc.setPage(maxPage);
                            }
                            
                        }
                    }
                    // Kein Multiform
                    else{
                        var tsFormGroups = jQuery("[data-formid='"+formID+"']").find(".form-group");
                        // Zwischenspeichern der aktuellen Schriftfarbe, -größe und -stil
                        var currentTextColor = doc.getTextColor();
                        var currentFontSize = doc.getFontSize();
                        var currentFontStyle = "normal";
                        for(var i=0; i < tsFormGroups.length; i++){
                            var labelText = pdfGetTsFormLabel(jQuery(tsFormGroups[i]));
                            labelText = pdfReplaceSpecialCharacters(labelText);
                            // Schreibe nur nicht-leere Labels
                            if(labelText != ""){
                                doc.setFont(pdfFont, "bold");
                                var labelTextArray = doc.splitTextToSize(labelText, maxContentWidth);
                                for(var j=0; j<labelTextArray.length; j++){
                                    // Zeile passt nicht mehr auf Seite
                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                        var docFontSize = doc.getFontSize();
                                        var docFontStyle = "bold";
                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                        doc = result[0]; 
                                        currentHeightPosition = result[1];
                                    }
                                    var writeResult = pdfWriteContent(doc, labelTextArray[j], pdfMarginLeft, currentHeightPosition);
                                    doc = writeResult[0];
                                    currentHeightPosition = writeResult[1];
                                }
                                doc.setFont(pdfFont, "normal");
                            }
                            var tsFormField = pdfGetTsFormField(jQuery(tsFormGroups[i]));
                            var fieldContent = tsFormField[0];
                            var fieldFontSize = tsFormField[1];
                            var fieldFontStyle = tsFormField[2];
                            var fieldFontColor = tsFormField[3];
                            doc.setFontSize(fieldFontSize);
                            doc.setFont(pdfFont, fieldFontStyle);
                            doc.setTextColor(fieldFontColor);
                            
                            fieldContent = pdfReplaceSpecialCharacters(fieldContent);
                            // Schreibe nur Inhalt, der nicht leer ist
                            if(fieldContent != ""){
                                // Ergänze bei Checkboxen einen Spiegelstrich
                                if(jQuery(tsFormGroups[i]).find("input[type='checkbox']").is("input[type='checkbox']")){
                                    var bulletpointLength = (doc.getStringUnitWidth("- ")*doc.getFontSize())/(72/25.6);
                                    var fieldContentArray = doc.splitTextToSize(fieldContent, maxContentWidth-bulletpointLength);
                                    for(var k=0; k<fieldContentArray.length; k++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = fieldFontStyle;
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        // Zeichne Bulletpoint
                                        if(k == 0){
                                            var writeResult = pdfWriteContent(doc, "- ", pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0];
                                        }
                                        var writeResult = pdfWriteContent(doc, fieldContentArray[k], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                }
                                else{
                                    var fieldContentArray = doc.splitTextToSize(fieldContent, maxContentWidth);
                                    for(var k=0; k<fieldContentArray.length; k++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = fieldFontStyle;
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, fieldContentArray[k], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                }
                                
                            }
                            // Füge kleinen Abstand zwischen den einzelnen Feldern des Forms ein
                            if(i != tsFormGroups.length-1 && (fieldContent != "" || labelText != "")){
                                currentHeightPosition += offsetYDir;
                            }
                        }
                        // Zurücksetzen auf die vorherigen Werte
                        doc.setTextColor(currentTextColor);
                        doc.setFontSize(currentFontSize);
                        doc.setFont(pdfFont, currentFontStyle);
                    }
                }
                // Shortcode coach_output_format_data
                else if(currentLine.startsWith("[coach_output_format_data")){
                    var coachOutputFormatDataId = pdfGetIdAttribute(currentLine);
                    var coachOutputFormatDataTitle = pdfGetTitleAttribute(currentLine);
                    var thisOutputId = "coach_output_format_data_"+coachOutputFormatDataId;
                    var thisOutputElement = jQuery('#'+thisOutputId);

                    // text = 1 
                    if(jQuery(thisOutputElement).is("p")){
                        var thisTitle = pdfReplaceSpecialCharacters(coachOutputFormatDataTitle);
                        // Schreiben des Titels, sofern vorhanden
                        if(thisTitle != ""){
                            doc.setFont(pdfFont, "bold");
                            var thisTitleArray = doc.splitTextToSize(thisTitle, maxContentWidth);
                            for(var j=0; j < thisTitleArray.length; j++){
                                // Zeile passt nicht mehr auf Seite
                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                    var docFontSize = doc.getFontSize();
                                    var docFontStyle = "bold";
                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                    doc = result[0]; 
                                    currentHeightPosition = result[1];
                                }
                                var writeResult = pdfWriteContent(doc, thisTitleArray[j], pdfMarginLeft, currentHeightPosition);
                                doc = writeResult[0];
                                currentHeightPosition = writeResult[1];
                            }
                            doc.setFont(pdfFont, "normal");
                        }
                        // Schreiben des Inhalts
                        var thisContent = pdfGetCoachOutputFormatDataContent(thisOutputElement,"text");
                        thisContent = pdfReplaceSpecialCharacters(thisContent);
                        var thisContentArray = doc.splitTextToSize(thisContent, maxContentWidth);
                        for(var k=0; k < thisContentArray.length; k++){
                            // Zeile passt nicht mehr auf Seite
                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                var docFontSize = doc.getFontSize();
                                var docFontStyle = "normal";
                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                doc = result[0]; 
                                currentHeightPosition = result[1];
                            }
                            var writeResult = pdfWriteContent(doc, thisContentArray[k], pdfMarginLeft, currentHeightPosition);
                            doc = writeResult[0];
                            currentHeightPosition = writeResult[1];
                        }
                    }
                    // list = 1
                    else if(jQuery(thisOutputElement).is("ul")){
                        var thisTitle = pdfReplaceSpecialCharacters(coachOutputFormatDataTitle);
                        if(thisTitle != ""){
                            doc.setFont(pdfFont, "bold");
                            var thisTitleArray = doc.splitTextToSize(thisTitle, maxContentWidth);
                            for(var j=0; j < thisTitleArray.length; j++){
                                // Zeile passt nicht mehr auf Seite
                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                    var docFontSize = doc.getFontSize();
                                    var docFontStyle = "bold";
                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                    doc = result[0]; 
                                    currentHeightPosition = result[1];
                                }
                                var writeResult = pdfWriteContent(doc, thisTitleArray[j], pdfMarginLeft, currentHeightPosition);
                                doc = writeResult[0];
                                currentHeightPosition = writeResult[1];
                            }
                            doc.setFont(pdfFont, "normal");
                        }
                        var listBulletPoint = "- ";
                        var listbBulletpointLength = (doc.getStringUnitWidth(listBulletPoint)*doc.getFontSize())/(72/25.6);
                        var listElements = pdfGetCoachOutputFormatDataContent(thisOutputElement, "list");
                        for(var k=0; k<listElements.length; k++){
                            var el = listElements[k];
                            el = pdfReplaceSpecialCharacters(el);
                            var elArray = doc.splitTextToSize(el, maxContentWidth-listbBulletpointLength);

                            for(var l=0; l<elArray.length; l++){
                                // Die nächste Zeile passt nicht mehr auf die Seite
                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                    var docFontSize = doc.getFontSize();
                                    var docFontStyle = "normal";
                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                    doc = result[0]; 
                                    currentHeightPosition = result[1];
                                }
                                // Schreibe zusätzlich Bulletpoint, sofern es sich um die erste Zeile des Listenelements handelt
                                if(l==0){
                                    doc.text(listBulletPoint, pdfMarginLeft, currentHeightPosition);
									doc.text(elArray[l], pdfMarginLeft+listbBulletpointLength, currentHeightPosition);
                                }
                                // Rücke sonst den den Text um die Breite des Bulletpoints ein
                                else{
                                    doc.text(elArray[l], pdfMarginLeft+listbBulletpointLength, currentHeightPosition);
                                }
                                currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                            }
                        }
                    }
                    // table = 1
                    else if(jQuery(thisOutputElement).is("table")){
                        // Abrufen der Titel, sofern vorhanden
                        var thisTableHead = jQuery(thisOutputElement).find("thead");
                        if(jQuery(thisTableHead).is("thead")){
                            doc.setFont(pdfFont, "bold");
                            var thisTableHeadRow = jQuery(thisTableHead).find("tr");
                            var tableHeadCells = pdfGetCoachOutputFormatDataContent(thisTableHeadRow, "table");
                            var tableHeadCellsSize = [];
                            var tableHeadCellsStyle = [];
                            // Entfernen von Sonderzeichen
                            for(var headCell1 = 0; headCell1 < tableHeadCells.length; headCell1++){
                                tableHeadCells[headCell1] = pdfReplaceSpecialCharacters(tableHeadCells[headCell1]);
                                tableHeadCellsSize.push(12);
                                tableHeadCellsStyle.push("bold");
                            }
                            // Bestimme maximale Breite für eine Cell
                            var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, tableHeadCells);
                            // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                            var fieldMarginX = 5;
                            // Abstand (in Y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                            var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                            // Maximale Breite für den Inhalt eines Feldes
                            var maxFieldContentWidth = cellWidth - 2*fieldMarginX;
                                            
                            // Zwischenspeichern der aktuellen Position des Texts
							var tempCurrentHeightPosition = currentHeightPosition;
							// Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
							var maxCurrentHeightPosition = currentHeightPosition;
							// Offset zwischen einzelnen Feldern in Y-Richtung
							var offsetYDir = 1.5;
							// Zwischenspeichern der aktuellen Seite(nzahl)
							var tempPage = doc.page; 
							// Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                            var maxPage = doc.page;
                            // Bestimme die maximale Anzahl an Zeilen, die für das Drucken des Content benötigt wird
                            var maxContentLines = pdfGetMaxTableCellLines(doc, pdfFont, tableHeadCells, tableHeadCellsSize, tableHeadCellsStyle, maxFieldContentWidth);

                            // Aktuelle Position des Rahmens 
                            var currentRectPosition = currentHeightPosition;
                            // Zwischenspeichern der aktuellen Position des Rahmens
                            var tempRectPosition = currentRectPosition;
                            
                            // Drucke den Inhalt nur, wenn die Zellen der Tabelle eine positive Breite haben
                            if(maxFieldContentWidth > 0){
                                for(headCell2 = 0; headCell2 < tableHeadCells.length; headCell2++){
                                    // Zurücksetzen der Position
                                    currentHeightPosition = tempCurrentHeightPosition;
                                    doc.page = tempPage;
								    doc.setPage(tempPage);
                                    // Position für Rahmen zurücksetzen
                                    currentRectPosition = tempRectPosition;
                                    
                                    var cellContent = tableHeadCells[headCell2];
                                    var cellContentArray = doc.splitTextToSize(cellContent, maxFieldContentWidth);
                                    // Zählvariable für Schleife
                                    var linesToDraw = maxContentLines;

                                    // Drucke Rahmen und Inhalt
                                    while(linesToDraw > 0){
                                        // Berechne übrigen Platz auf Seite
                                        var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                        // Anzahl an freien Zeilen für Inhalt auf Seite
                                        var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));

                                        // Es kann mindestens eine Zeile gezeichnet werden
                                        if(linesAvailable > 0){
                                            // Zeilen, die auf dieser Seite gezeichnet werden können
                                            var linesThisPage = 0
                                            if(linesAvailable >= linesToDraw){
                                                linesThisPage = linesToDraw;
                                            }
                                            else{
                                                linesThisPage = linesAvailable;
                                            }
                                            // Zeichne Rahmen
                                            var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                            doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*headCell2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, "rgb(255,255,255)");
                                            currentRectPosition += heightThisRect+2*fieldMarginY;

                                            while(linesThisPage > 0){

                                                // Inhalt schreiben, sofern vorhanden
                                                if(cellContentArray.length > 0){
                                                    var result = pdfWriteContent(doc, cellContentArray[0], pdfMarginLeft+headCell2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                    doc = result[0];
                                                    currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                    cellContentArray.shift();
                                                }
                                                // Zählvariable innere Schleife anpassen
                                                linesThisPage--;
                                                // Zählvariable äußere Schleife anpassen
                                                linesToDraw--;
                                            }
                                        }
                                        // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                        else{
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "bold";
                                            var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                            doc = result[0];
                                            currentHeightPosition = result[1];
                                            maxPage = result[2];
                                            currentRectPosition = currentHeightPosition;
                                        }
                                    }

                                }                                
                                currentHeightPosition = currentRectPosition;
                            }
                            doc.setFont(pdfFont, "normal");
                        }

                        var thisTableBody = jQuery(thisOutputElement).find("tbody");
                        if(jQuery(thisTableBody).is("tbody")){
                            var thisTableBodyRows = jQuery(thisTableBody).find("tr");

                            for(var tableRowsIndex = 0; tableRowsIndex < thisTableBodyRows.length; tableRowsIndex++){
                                // Rufe Content ab
                                var thisRowContent = pdfGetCoachOutputFormatDataContent(thisTableBodyRows[tableRowsIndex], "table");
                                var thisRowContentSize = [];
                                var thisRowContentStyle = [];
                                // Ersetze Sonderzeichen
                                for(var rowCell1 = 0; rowCell1 < thisRowContent.length; rowCell1++){
                                    thisRowContent[rowCell1] = pdfReplaceSpecialCharacters(thisRowContent[rowCell1]);
                                    thisRowContentSize.push(12);
                                    thisRowContentStyle.push("normal");
                                }
                                // Bestimme maximale Breite für eine Cell
                                var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, thisRowContent);
                                // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                var fieldMarginX = 5;
                                // Abstand (in Y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                // Maximale Breite für den Inhalt eines Feldes
                                var maxFieldContentWidth = cellWidth - 2*fieldMarginX;
                                            
                                // Zwischenspeichern der aktuellen Position des Texts
							    var tempCurrentHeightPosition = currentHeightPosition;
							    // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
							    var maxCurrentHeightPosition = currentHeightPosition;
							    // Offset zwischen einzelnen Feldern in Y-Richtung
							    var offsetYDir = 1.5;
							    // Zwischenspeichern der aktuellen Seite(nzahl)
							    var tempPage = doc.page; 
							    // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                var maxPage = doc.page;
                                // Bestimme die maximale Anzahl an Zeilen, die für das Drucken des Content benötigt wird
                                var maxContentLines = pdfGetMaxTableCellLines(doc, pdfFont, thisRowContent, thisRowContentSize, thisRowContentStyle, maxFieldContentWidth);

                                // Aktuelle Position des Rahmens 
                                var currentRectPosition = currentHeightPosition;
                                // Zwischenspeichern der aktuellen Position des Rahmens
                                var tempRectPosition = currentRectPosition;

                                // Drucke den Inhalt nur, wenn die Zellen der Tabelle eine positive Breite haben
                                if(maxFieldContentWidth > 0){
                                    for(var rowCell2 = 0; rowCell2 < thisRowContent.length; rowCell2++){
                                        // Zurücksetzen der Position
                                        currentHeightPosition = tempCurrentHeightPosition;
                                        doc.page = tempPage;
								        doc.setPage(tempPage);
                                        // Position für Rahmen zurücksetzen
                                        currentRectPosition = tempRectPosition;
                                    
                                        var cellContent = thisRowContent[rowCell2];
                                        var cellContentArray = doc.splitTextToSize(cellContent, maxFieldContentWidth);
                                        // Zählvariable für Schleife
                                        var linesToDraw = maxContentLines;
                                        // Drucke Rahmen und Inhalt
                                        while(linesToDraw > 0){
                                            // Berechne übrigen Platz auf Seite
                                            var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                            // Anzahl an freien Zeilen für Inhalt auf Seite
                                            var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));

                                            // Es kann mindestens eine Zeile gezeichnet werden
                                            if(linesAvailable > 0){
                                                // Zeilen, die auf dieser Seite gezeichnet werden können
                                                var linesThisPage = 0
                                                if(linesAvailable >= linesToDraw){
                                                    linesThisPage = linesToDraw;
                                                }
                                                else{
                                                    linesThisPage = linesAvailable;
                                                }
                                                // Zeichne Rahmen
                                                var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*rowCell2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, "rgb(255,255,255)");
                                                currentRectPosition += heightThisRect+2*fieldMarginY;

                                                while(linesThisPage > 0){
                                                    // Inhalt schreiben, sofern vorhanden
                                                    if(cellContentArray.length > 0){
                                                        var result = pdfWriteContent(doc, cellContentArray[0], pdfMarginLeft+rowCell2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                        doc = result[0];
                                                        currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                        cellContentArray.shift();
                                                    }
                                                    // Zählvariable innere Schleife anpassen
                                                    linesThisPage--;
                                                    // Zählvariable äußere Schleife anpassen
                                                    linesToDraw--;
                                                }
                                            }
                                            // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                            else{
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                doc = result[0];
                                                currentHeightPosition = result[1];
                                                maxPage = result[2];
                                                currentRectPosition = currentHeightPosition;
                                            }
                                        }

                                    }

                                    currentHeightPosition = currentRectPosition;
                                }
                            }
                            currentHeightPosition += 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                        }
                        
                    }
                }
                // Shortcode coach_output_gbu
                else if(currentLine.startsWith("[coach_output_gbu ")){
                    var coachOutputGBUId = pdfGetIdAttribute(currentLine);
                    var thisGBUOutputMode = pdfGetGBUModeAttribute(currentLine);
                    if(thisGBUOutputMode == "einzel_pos_zu_neg" || thisGBUOutputMode == "einzel_neg_zu_pos"){
                        var thisGBUOutput = jQuery("#coach_output_gbu_"+coachOutputGBUId);
                        var thisGBUOutputRows = jQuery(thisGBUOutput).find("tbody tr");
                        
                        for(var gbuRow=0; gbuRow < thisGBUOutputRows.length; gbuRow++){
                            // Bestimme maximale Breite für eine Cell
                            var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, jQuery(thisGBUOutputRows[gbuRow]).find("td"));
                            // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                            var fieldMarginX = 5;
                            // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                            var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                            // Maximale Breite für den Inhalt eines Feldes
                            var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                            // Zwischenspeichern der aktuellen Position des Texts
                            var tempCurrentHeightPosition = currentHeightPosition;
                            // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Zeile)
                            var maxCurrentHeightPosition = currentHeightPosition;
                            // Zwischenspeichern der aktuellen Seite(nzahl)
                            var tempPage = doc.page;
                            // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                            var maxPage = doc.page;

                            // Aktuelle Position des Rahmens
                            var currentRectPosition = currentHeightPosition;
                            // Zwischenspeichern der aktuellen Position des Rahmens
                            var tempRectPosition = currentRectPosition;

                            // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zellen dieser Reihe
                            var maxLinesThisRow = 0;

                            var thisGBUOutputCells = jQuery(thisGBUOutputRows[gbuRow]).find("td");

                            for(var gbuCell1 = 0; gbuCell1 < thisGBUOutputCells.length; gbuCell1++){
                                var numberLinesThisCell = pdfGBUGetNumberLinesCell(doc,jQuery(thisGBUOutputCells[gbuCell1]).contents(), maxFieldContentWidth, pdfFont);

                                if(numberLinesThisCell > maxLinesThisRow){
                                    maxLinesThisRow = numberLinesThisCell;
                                }
                            }
                            
                            // Drucke den Inhalt nur, wenn die Zellen der Tabelle eine positive Breite haben
                            if(maxFieldContentWidth > 0){
                                for(var gbuCell2 = 0; gbuCell2 < thisGBUOutputCells.length; gbuCell2++){
                                    
                                    // Zurücksetzen der Position
                                    currentHeightPosition = tempCurrentHeightPosition;
                                    doc.page = tempPage;
                                    doc.setPage(tempPage);
                                    // Position für Rahmen zurücksetzen
                                    currentRectPosition = tempRectPosition;
                                    
                                    // Füllfarbe für Rahmen abrufen, sofern vorhanden
                                    var styleString = jQuery(thisGBUOutputCells[gbuCell2]).attr("style");
                                    var colorRGB = "rgb(255,255,255)";
                                    if(typeof styleString !== typeof undefined && styleString !== false){
                                        var colorHex = styleString.match(/background-color: ([0-9a-zA-Z#]+)/);
                                        var colorRGBTemp = pdfConvertHexToRGB(colorHex[1]);
                                        colorRGB = "rgb("+colorRGBTemp.r+","+colorRGBTemp.g+","+colorRGBTemp.b+")";
                                    }

                                    var cellContentResult = pdfGetGBUCellContent(doc, jQuery(thisGBUOutputCells[gbuCell2]).contents() ,maxFieldContentWidth, pdfFont);
                                    var contentThisCell = cellContentResult[0];
                                    var styleThisCell = cellContentResult[1];

                                    // Zählvariable für Schleife
                                    var linesToDraw = maxLinesThisRow;
                                    // Drucke Rahmen und Inhalt
                                    while(linesToDraw > 0){
                                        // Berechne übrigen Platz auf Seite
                                        var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                        // Anzahl an freien Zeilen für Inhalt auf Seite
                                        var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                        // Es kann mindestens eine Zeile gezeichnet werden
                                        if(linesAvailable > 0){
                                            // Zeilen, die auf dieser Seite gezeichnet werden können
                                            var linesThisPage = 0;
                                            if(linesAvailable >= linesToDraw){
                                                linesThisPage = linesToDraw;
                                            }
                                            else{
                                                linesThisPage = linesAvailable;
                                            }
                                            var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                            doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*gbuCell2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, colorRGB);
                                            currentRectPosition += heightThisRect+2*fieldMarginY;

                                            while(linesThisPage > 0){
                                                // Inhalt schreiben, sofern vorhanden
                                                if(contentThisCell.length > 0){
                                                    doc.setFont(pdfFont, styleThisCell[0]);
                                                    var result = pdfWriteContent(doc, contentThisCell[0], pdfMarginLeft+gbuCell2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                    doc = result[0];
                                                    currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                    contentThisCell.shift();
                                                    styleThisCell.shift();
                                                    doc.setFont(pdfFont, "normal");
                                                }
                                                // Zählvariable innere Schleife anpassen
                                                linesThisPage--;
                                                // Zählvariable äußere Schleife anpassen
                                                linesToDraw--;
                                            }

                                        }
                                        // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                        else{
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                            doc = result[0];
                                            currentHeightPosition = result[1];
                                            maxPage = result[2];
                                            currentRectPosition = currentHeightPosition;
                                        }
                                    }
                                }
                                currentHeightPosition = currentRectPosition;
                            }


                        }
                        currentHeightPosition += 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                    }
                    else if(thisGBUOutputMode == "ts1_ga_pos_zu_neg" ||thisGBUOutputMode == "ts1_ga_neg_zu_pos"){
                        var thisGBUOutput = jQuery("#coach_output_gbu_"+coachOutputGBUId);
                        if(jQuery(thisGBUOutput).is("p")){
                            var gbuOutputText = jQuery(thisGBUOutput).text();
                            gbuOutputText = gbuOutputText.trim();
                            gbuOutputText = pdfReplaceSpecialCharacters(gbuOutputText);
                            var gbuOutputTextArray = doc.splitTextToSize(gbuOutputText, maxContentWidth);
                            for(var gbuOutputTextIndex = 0; gbuOutputTextIndex < gbuOutputTextArray.length; gbuOutputTextIndex++){
                                // Zeile passt nicht mehr auf Seite
                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                    var docFontSize =  doc.getFontSize();
                                    var docFontStyle = "normal";
                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                    doc = result[0];
                                    currentHeightPosition = result[1];
                                }
                                var writeResult = pdfWriteContent(doc, gbuOutputTextArray[gbuOutputTextIndex], pdfMarginLeft, currentHeightPosition);
                                doc = writeResult[0];
                                currentHeightPosition = writeResult[1];
                            }
                        }
                        else if(jQuery(thisGBUOutput).is("table")){
                            var gbuOutputRows = [];
                            gbuOutputRows.push(jQuery(thisGBUOutput).find("thead tr"));
                            var gbuOutputBodyRows = jQuery(thisGBUOutput).find("tbody tr");
                            for(var gbuBodyRow = 0; gbuBodyRow < gbuOutputBodyRows.length; gbuBodyRow++){
                                gbuOutputRows.push(jQuery(gbuOutputBodyRows[gbuBodyRow]));
                            }
                            // Drucke die einzelnen Reihen der Tabelle
                            for(var gbuRow=0; gbuRow < gbuOutputRows.length; gbuRow++){
                                var gbuOutputCellsThisRow = jQuery(gbuOutputRows[gbuRow]).find("td");

                                // Bestimme Breiten für Zellen
                                // Setze Breite der ersten Zelle auf ein Fünftel der gesamten Breite fest
                                var firstCellWidth = maxContentWidth/5;
                                var remainingCellsWidth = (maxContentWidth-firstCellWidth)/(gbuOutputCellsThisRow.length-1);

                                // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                var fieldMarginX = 5;
                                // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                // Zwischenspeichern der aktuellen Position des Texts
                                var tempCurrentHeightPosition = currentHeightPosition;
                                // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Zeile)
                                var maxCurrentHeightPosition = currentHeightPosition;
                                // Zwischenspeichern der aktuellen Seite(nzahl)
                                var tempPage = doc.page;
                                // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                var maxPage = doc.page;
                                // Aktuelle Position des Rahmens
                                var currentRectPosition = currentHeightPosition;
                                // Zwischenspeichern der aktuellen Position des Rahmens
                                var tempRectPosition = currentRectPosition;

                                // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zellen dieser Reihe
                                var maxLinesThisRow = 0 
                                for(var gbuCell1 = 0; gbuCell1 < gbuOutputCellsThisRow.length; gbuCell1++){
                                    var numberLinesThisCell = 0;
                                    if(gbuCell1 == 0){
                                        numberLinesThisCell = pdfGBUGetNumberLinesCell(doc,jQuery(gbuOutputCellsThisRow[gbuCell1]).contents(), firstCellWidth-2*fieldMarginX, pdfFont);
                                    }
                                    else{
                                        numberLinesThisCell = pdfGBUGetNumberLinesCell(doc,jQuery(gbuOutputCellsThisRow[gbuCell1]).contents(), remainingCellsWidth-2*fieldMarginX, pdfFont);
                                    }

                                    if(numberLinesThisCell > maxLinesThisRow){
                                        maxLinesThisRow = numberLinesThisCell;
                                    }
                                }

                                for(var gbuCell2 = 0; gbuCell2 < gbuOutputCellsThisRow.length; gbuCell2++){
                                    // Zurücksetzen der Position
                                    currentHeightPosition = tempCurrentHeightPosition;
                                    doc.page = tempPage;
                                    doc.setPage(tempPage);
                                    // Position für Rahmen zurücksetzen
                                    currentRectPosition = tempRectPosition;

                                    // Füllfarbe für Rahmen abrufen, sofern vorhanden
                                    var styleString = jQuery(gbuOutputCellsThisRow[gbuCell2]).attr("style");
                                    var colorRGB = "rgb(255,255,255)";
                                    if(typeof styleString !== typeof undefined && styleString !== false){
                                        var colorHex = styleString.match(/background-color: ([0-9a-zA-Z#]+)/);
                                        var colorRGBTemp = pdfConvertHexToRGB(colorHex[1]);
                                        colorRGB = "rgb("+colorRGBTemp.r+","+colorRGBTemp.g+","+colorRGBTemp.b+")";
                                    }

                                    var cellContentResult;
                                    if(gbuCell2 == 0){
                                        cellContentResult = pdfGetGBUCellContent(doc, jQuery(gbuOutputCellsThisRow[gbuCell2]).contents() ,firstCellWidth-2*fieldMarginX, pdfFont);
                                    }
                                    else{
                                        cellContentResult = pdfGetGBUCellContent(doc, jQuery(gbuOutputCellsThisRow[gbuCell2]).contents() ,remainingCellsWidth-2*fieldMarginX, pdfFont);
                                    }
                                    var contentThisCell = cellContentResult[0];
                                    var styleThisCell = cellContentResult[1];
                                                                        
                                    // Zählvariable für Schleife
                                    var linesToDraw = maxLinesThisRow;
                                    // Drucke Rahmen und Inhalt
                                    while(linesToDraw > 0){
                                        // Berechne übrigen Platz auf Seite
                                        var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                        // Anzahl an freien Zeilen für Inhalt auf Seite
                                        var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                        // Es kann mindestens eine Zeile gezeichnet werden
                                        if(linesAvailable > 0){
                                            // Zeilen, die auf dieser Seite gezeichnet werden können
                                            var linesThisPage = 0;
                                            if(linesAvailable >= linesToDraw){
                                                linesThisPage = linesToDraw;
                                            }
                                            else{
                                                linesThisPage = linesAvailable;
                                            }
                                            var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                            var widthThisRect = 0;
                                            var leftPositionThisRect = 0;

                                            if(gbuCell2 == 0){
                                                widthThisRect = firstCellWidth;
                                                leftPositionThisRect = pdfMarginLeft;
                                            }
                                            else{
                                                widthThisRect = remainingCellsWidth;
                                                leftPositionThisRect = pdfMarginLeft+firstCellWidth+remainingCellsWidth*(gbuCell2-1);
                                            }
                                            doc = pdfDrawRectangle(doc, leftPositionThisRect, currentRectPosition, widthThisRect, heightThisRect+2*fieldMarginY, colorRGB);
                                            currentRectPosition += heightThisRect+2*fieldMarginY;

                                            while(linesThisPage > 0){
                                                // Inhalt schreiben, sofern vorhanden
                                                if(contentThisCell.length > 0){
                                                    doc.setFont(pdfFont, styleThisCell[0]);
                                                    var leftPositionThisContent = 0;
                                                    if(gbuCell2 == 0){
                                                        leftPositionThisContent = pdfMarginLeft+fieldMarginX;
                                                    }
                                                    else{
                                                        leftPositionThisContent = pdfMarginLeft+firstCellWidth+remainingCellsWidth*(gbuCell2-1)+fieldMarginX;
                                                    }
                                                    var result = pdfWriteContent(doc, contentThisCell[0], leftPositionThisContent, currentHeightPosition+2*fieldMarginY);
                                                    doc = result[0];
                                                    currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                    contentThisCell.shift();
                                                    styleThisCell.shift();
                                                    doc.setFont(pdfFont, "normal");
                                                }
                                                // Zählvariable innere Schleife anpassen
                                                linesThisPage--;
                                                // Zählvariable äußere Schleife anpassen
                                                linesToDraw--;
                                            }
                                        }
                                        // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                        else{
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                            doc = result[0];
                                            currentHeightPosition = result[1];
                                            maxPage = result[2];
                                            currentRectPosition = currentHeightPosition;
                                        }
                                    }
                                }
                                currentHeightPosition = currentRectPosition;
                            }
                            currentHeightPosition += 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                        }
                    }
                    else if(thisGBUOutputMode == "ts2_gs_pos_zu_neg" ||thisGBUOutputMode == "ts2_gs_neg_zu_pos"){
                        var thisGBUOutputID = "coach_output_gbu_"+coachOutputGBUId;
                        var thisGBUOutput = jQuery("[id^="+thisGBUOutputID+"]");
                        for(var thisGBUOutputIndex = 0; thisGBUOutputIndex < thisGBUOutput.length; thisGBUOutputIndex++){
                            var thisGBUOutputElement = jQuery(thisGBUOutput[thisGBUOutputIndex]);
                            if(jQuery(thisGBUOutputElement).is("p")){
                                var gbuOutputText = jQuery(thisGBUOutputElement).text();
                                gbuOutputText = gbuOutputText.trim();
                                gbuOutputText = pdfReplaceSpecialCharacters(gbuOutputText);
                                var gbuOutputTextArray = doc.splitTextToSize(gbuOutputText, maxContentWidth);
                                for(var gbuOutputTextIndex = 0; gbuOutputTextIndex < gbuOutputTextArray.length; gbuOutputTextIndex++){
                                    // Zeile passt nicht mehr auf Seite
                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                        var docFontSize =  doc.getFontSize();
                                        var docFontStyle = "normal";
                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                        doc = result[0];
                                        currentHeightPosition = result[1];
                                    }
                                    var writeResult = pdfWriteContent(doc, gbuOutputTextArray[gbuOutputTextIndex], pdfMarginLeft, currentHeightPosition);
                                    doc = writeResult[0];
                                    currentHeightPosition = writeResult[1];
                                }
                            }
                            else if(jQuery(thisGBUOutputElement).is("table")){
                                // Siehe Fall oben
                                var gbuOutputRows = [];
                                gbuOutputRows.push(jQuery(thisGBUOutputElement).find("thead tr"));
                                var gbuOutputBodyRows = jQuery(thisGBUOutputElement).find("tbody tr");
                                for(var gbuBodyRow = 0; gbuBodyRow < gbuOutputBodyRows.length; gbuBodyRow++){
                                    gbuOutputRows.push(jQuery(gbuOutputBodyRows[gbuBodyRow]));
                                }
                                // Drucke die einzelnen Reihen der Tabelle
                                for(var gbuRow=0; gbuRow < gbuOutputRows.length; gbuRow++){
                                    var gbuOutputCellsThisRow = jQuery(gbuOutputRows[gbuRow]).find("td");

                                    // Bestimme Breiten für Zellen
                                    // Setze Breite der ersten Zelle auf ein Fünftel der gesamten Breite fest
                                    var firstCellWidth = maxContentWidth/5;
                                    var remainingCellsWidth = (maxContentWidth-firstCellWidth)/(gbuOutputCellsThisRow.length-1);

                                    // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                    var fieldMarginX = 5;
                                    // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                    var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                    // Zwischenspeichern der aktuellen Position des Texts
                                    var tempCurrentHeightPosition = currentHeightPosition;
                                    // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Zeile)
                                    var maxCurrentHeightPosition = currentHeightPosition;
                                    // Zwischenspeichern der aktuellen Seite(nzahl)
                                    var tempPage = doc.page;
                                    // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                    var maxPage = doc.page;
                                    // Aktuelle Position des Rahmens
                                    var currentRectPosition = currentHeightPosition;
                                    // Zwischenspeichern der aktuellen Position des Rahmens
                                    var tempRectPosition = currentRectPosition;

                                    // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zellen dieser Reihe
                                    var maxLinesThisRow = 0 
                                    for(var gbuCell1 = 0; gbuCell1 < gbuOutputCellsThisRow.length; gbuCell1++){
                                        var numberLinesThisCell = 0;
                                        if(gbuCell1 == 0){
                                            numberLinesThisCell = pdfGBUGetNumberLinesCell(doc,jQuery(gbuOutputCellsThisRow[gbuCell1]).contents(), firstCellWidth-2*fieldMarginX, pdfFont);
                                        }
                                        else{
                                            numberLinesThisCell = pdfGBUGetNumberLinesCell(doc,jQuery(gbuOutputCellsThisRow[gbuCell1]).contents(), remainingCellsWidth-2*fieldMarginX, pdfFont);
                                        }

                                        if(numberLinesThisCell > maxLinesThisRow){
                                            maxLinesThisRow = numberLinesThisCell;
                                        }
                                    }

                                    for(var gbuCell2 = 0; gbuCell2 < gbuOutputCellsThisRow.length; gbuCell2++){
                                        // Zurücksetzen der Position
                                        currentHeightPosition = tempCurrentHeightPosition;
                                        doc.page = tempPage;
                                        doc.setPage(tempPage);
                                        // Position für Rahmen zurücksetzen
                                        currentRectPosition = tempRectPosition;

                                        // Füllfarbe für Rahmen abrufen, sofern vorhanden
                                        var styleString = jQuery(gbuOutputCellsThisRow[gbuCell2]).attr("style");
                                        var colorRGB = "rgb(255,255,255)";
                                        if(typeof styleString !== typeof undefined && styleString !== false){
                                            var colorHex = styleString.match(/background-color: ([0-9a-zA-Z#]+)/);
                                            var colorRGBTemp = pdfConvertHexToRGB(colorHex[1]);
                                            colorRGB = "rgb("+colorRGBTemp.r+","+colorRGBTemp.g+","+colorRGBTemp.b+")";
                                        }

                                        var cellContentResult;
                                        if(gbuCell2 == 0){
                                            cellContentResult = pdfGetGBUCellContent(doc, jQuery(gbuOutputCellsThisRow[gbuCell2]).contents() ,firstCellWidth-2*fieldMarginX, pdfFont);
                                        }
                                        else{
                                            cellContentResult = pdfGetGBUCellContent(doc, jQuery(gbuOutputCellsThisRow[gbuCell2]).contents() ,remainingCellsWidth-2*fieldMarginX, pdfFont);
                                        }
                                        var contentThisCell = cellContentResult[0];
                                        var styleThisCell = cellContentResult[1];
                                                                        
                                        // Zählvariable für Schleife
                                        var linesToDraw = maxLinesThisRow;
                                        // Drucke Rahmen und Inhalt
                                        while(linesToDraw > 0){
                                            // Berechne übrigen Platz auf Seite
                                            var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                            // Anzahl an freien Zeilen für Inhalt auf Seite
                                            var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                            // Es kann mindestens eine Zeile gezeichnet werden
                                            if(linesAvailable > 0){
                                                // Zeilen, die auf dieser Seite gezeichnet werden können
                                                var linesThisPage = 0;
                                                if(linesAvailable >= linesToDraw){
                                                    linesThisPage = linesToDraw;
                                                }
                                                else{
                                                    linesThisPage = linesAvailable;
                                                }
                                                var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                var widthThisRect = 0;
                                                var leftPositionThisRect = 0;

                                                if(gbuCell2 == 0){
                                                    widthThisRect = firstCellWidth;
                                                    leftPositionThisRect = pdfMarginLeft;
                                                }
                                                else{
                                                    widthThisRect = remainingCellsWidth;
                                                    leftPositionThisRect = pdfMarginLeft+firstCellWidth+remainingCellsWidth*(gbuCell2-1);
                                                }
                                                doc = pdfDrawRectangle(doc, leftPositionThisRect, currentRectPosition, widthThisRect, heightThisRect+2*fieldMarginY, colorRGB);
                                                currentRectPosition += heightThisRect+2*fieldMarginY;

                                                while(linesThisPage > 0){
                                                    // Inhalt schreiben, sofern vorhanden
                                                    if(contentThisCell.length > 0){
                                                        doc.setFont(pdfFont, styleThisCell[0]);
                                                        var leftPositionThisContent = 0;
                                                        if(gbuCell2 == 0){
                                                            leftPositionThisContent = pdfMarginLeft+fieldMarginX;
                                                        }
                                                        else{
                                                            leftPositionThisContent = pdfMarginLeft+firstCellWidth+remainingCellsWidth*(gbuCell2-1)+fieldMarginX;
                                                        }
                                                        var result = pdfWriteContent(doc, contentThisCell[0], leftPositionThisContent, currentHeightPosition+2*fieldMarginY);
                                                        doc = result[0];
                                                        currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                        contentThisCell.shift();
                                                        styleThisCell.shift();
                                                        doc.setFont(pdfFont, "normal");
                                                    }
                                                    // Zählvariable innere Schleife anpassen
                                                    linesThisPage--;
                                                    // Zählvariable äußere Schleife anpassen
                                                    linesToDraw--;
                                                }
                                            }
                                            // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                            else{
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                doc = result[0];
                                                currentHeightPosition = result[1];
                                                maxPage = result[2];
                                                currentRectPosition = currentHeightPosition;
                                            }
                                        }
                                    }
                                    currentHeightPosition = currentRectPosition;
                                }
                                currentHeightPosition += 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                            }
                        }
                    }
                    else if(thisGBUOutputMode == "ts3_gv_pos_zu_neg" ||thisGBUOutputMode == "ts3_gv_neg_zu_pos"){
                        var thisGBUOutput = jQuery("#coach_output_gbu_"+coachOutputGBUId);
                        if(jQuery(thisGBUOutput).is("p")){
                            var gbuOutputText = jQuery(thisGBUOutput).text();
                            gbuOutputText = gbuOutputText.trim();
                            gbuOutputText = pdfReplaceSpecialCharacters(gbuOutputText);
                            var gbuOutputTextArray = doc.splitTextToSize(gbuOutputText, maxContentWidth);
                            for(var gbuOutputTextIndex = 0; gbuOutputTextIndex < gbuOutputTextArray.length; gbuOutputTextIndex++){
                                // Zeile passt nicht mehr auf Seite
                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                    var docFontSize =  doc.getFontSize();
                                    var docFontStyle = "normal";
                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                    doc = result[0];
                                    currentHeightPosition = result[1];
                                }
                                var writeResult = pdfWriteContent(doc, gbuOutputTextArray[gbuOutputTextIndex], pdfMarginLeft, currentHeightPosition);
                                doc = writeResult[0];
                                currentHeightPosition = writeResult[1];
                            }
                        }
                        else if(jQuery(thisGBUOutput).is("table")){
                            var thisGBUOutputRows = jQuery(thisGBUOutput).find("tbody tr");
                            for(var gbuRow=0; gbuRow < thisGBUOutputRows.length; gbuRow++){
                                // Bestimme maximale Breite für eine Cell
                                var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, jQuery(thisGBUOutputRows[gbuRow]).find("td"));
                                // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                var fieldMarginX = 5;
                                // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                // Maximale Breite für den Inhalt eines Feldes
                                var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                                // Zwischenspeichern der aktuellen Position des Texts
                                var tempCurrentHeightPosition = currentHeightPosition;
                                // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Zeile)
                                var maxCurrentHeightPosition = currentHeightPosition;
                                // Zwischenspeichern der aktuellen Seite(nzahl)
                                var tempPage = doc.page;
                                // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                var maxPage = doc.page;

                                // Aktuelle Position des Rahmens
                                var currentRectPosition = currentHeightPosition;
                                // Zwischenspeichern der aktuellen Position des Rahmens
                                var tempRectPosition = currentRectPosition;

                                // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zellen dieser Reihe
                                var maxLinesThisRow = 0;

                                var thisGBUOutputCells = jQuery(thisGBUOutputRows[gbuRow]).find("td");

                                for(var gbuCell1 = 0; gbuCell1 < thisGBUOutputCells.length; gbuCell1++){
                                    var numberLinesThisCell = pdfGBUGetNumberLinesCell(doc,jQuery(thisGBUOutputCells[gbuCell1]).contents(), maxFieldContentWidth, pdfFont);

                                    if(numberLinesThisCell > maxLinesThisRow){
                                        maxLinesThisRow = numberLinesThisCell;
                                    }
                                }
                            
                                // Drucke den Inhalt nur, wenn die Zellen der Tabelle eine positive Breite haben
                                if(maxFieldContentWidth > 0){
                                    for(var gbuCell2 = 0; gbuCell2 < thisGBUOutputCells.length; gbuCell2++){
                                    
                                        // Zurücksetzen der Position
                                        currentHeightPosition = tempCurrentHeightPosition;
                                        doc.page = tempPage;
                                        doc.setPage(tempPage);
                                        // Position für Rahmen zurücksetzen
                                        currentRectPosition = tempRectPosition;
                                    
                                        // Füllfarbe für Rahmen abrufen, sofern vorhanden
                                        var styleString = jQuery(thisGBUOutputCells[gbuCell2]).attr("style");
                                        var colorRGB = "rgb(255,255,255)";
                                        if(typeof styleString !== typeof undefined && styleString !== false){
                                            var colorHex = styleString.match(/background-color:([0-9a-zA-Z#]+)/);
                                            var colorRGBTemp = pdfConvertHexToRGB(colorHex[1]);
                                            colorRGB = "rgb("+colorRGBTemp.r+","+colorRGBTemp.g+","+colorRGBTemp.b+")";
                                        }

                                        var cellContentResult = pdfGetGBUCellContent(doc, jQuery(thisGBUOutputCells[gbuCell2]).contents() ,maxFieldContentWidth, pdfFont);
                                        var contentThisCell = cellContentResult[0];
                                        var styleThisCell = cellContentResult[1];

                                        // Zählvariable für Schleife
                                        var linesToDraw = maxLinesThisRow;
                                        // Drucke Rahmen und Inhalt
                                        while(linesToDraw > 0){
                                            // Berechne übrigen Platz auf Seite
                                            var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                            // Anzahl an freien Zeilen für Inhalt auf Seite
                                            var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                            // Es kann mindestens eine Zeile gezeichnet werden
                                            if(linesAvailable > 0){
                                                // Zeilen, die auf dieser Seite gezeichnet werden können
                                                var linesThisPage = 0;
                                                if(linesAvailable >= linesToDraw){
                                                    linesThisPage = linesToDraw;
                                                }
                                                else{
                                                    linesThisPage = linesAvailable;
                                                }
                                                var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*gbuCell2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, colorRGB);
                                                currentRectPosition += heightThisRect+2*fieldMarginY;

                                                while(linesThisPage > 0){
                                                    // Inhalt schreiben, sofern vorhanden
                                                    if(contentThisCell.length > 0){
                                                        doc.setFont(pdfFont, styleThisCell[0]);
                                                        var result = pdfWriteContent(doc, contentThisCell[0], pdfMarginLeft+gbuCell2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                        doc = result[0];
                                                        currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                        contentThisCell.shift();
                                                        styleThisCell.shift();
                                                        doc.setFont(pdfFont, "normal");
                                                    }
                                                    // Zählvariable innere Schleife anpassen
                                                    linesThisPage--;
                                                    // Zählvariable äußere Schleife anpassen
                                                    linesToDraw--;
                                                }

                                            }
                                            // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                            else{
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                doc = result[0];
                                                currentHeightPosition = result[1];
                                                maxPage = result[2];
                                                currentRectPosition = currentHeightPosition;
                                            }
                                        }
                                    }
                                    currentHeightPosition = currentRectPosition;
                                }


                            }
                            currentHeightPosition += 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                        }
                    }
                    else if(thisGBUOutputMode == "text"){
                        var thisGBUOutput = jQuery("#coach_output_gbu_"+coachOutputGBUId);
                        if(jQuery(thisGBUOutput).is("p")){
                            var gbuOutputText = jQuery(thisGBUOutput).text();
                            gbuOutputText = gbuOutputText.trim();
                            gbuOutputText = pdfReplaceSpecialCharacters(gbuOutputText);
                            var gbuOutputTextArray = doc.splitTextToSize(gbuOutputText, maxContentWidth);
                            for(var gbuOutputTextIndex = 0; gbuOutputTextIndex < gbuOutputTextArray.length; gbuOutputTextIndex++){
                                // Zeile passt nicht mehr auf Seite
                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                    var docFontSize =  doc.getFontSize();
                                    var docFontStyle = "normal";
                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                    doc = result[0];
                                    currentHeightPosition = result[1];
                                }
                                var writeResult = pdfWriteContent(doc, gbuOutputTextArray[gbuOutputTextIndex], pdfMarginLeft, currentHeightPosition);
                                doc = writeResult[0];
                                currentHeightPosition = writeResult[1];
                            }
                        }
                        else if(jQuery(thisGBUOutput).is("ul")){
                            var thisGBUOutputElements = jQuery(thisGBUOutput).contents();
                            for(var gbuListIndex = 0; gbuListIndex < thisGBUOutputElements.length; gbuListIndex++){
                                var currentGBUElement = jQuery(thisGBUOutputElements[gbuListIndex]).text();
                                currentGBUElement = currentGBUElement.trim();
                                currentGBUElement = pdfReplaceSpecialCharacters(currentGBUElement);

                                if(currentGBUElement != ""){
                                    var bulletpoint = "- ";
                                    var bulletpointLength = (doc.getStringUnitWidth(bulletpoint)*doc.getFontSize())/(72/25.6);
                                    var currentGBUElementArray = doc.splitTextToSize(currentGBUElement, maxContentWidth-bulletpointLength);
                                    for(var currentGBUElementIndex = 0; currentGBUElementIndex < currentGBUElementArray.length; currentGBUElementIndex++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0];
                                            currentHeightPosition = result[1];
                                        }
                                        // Zeichne Bulletpoint
                                        if(currentGBUElementIndex == 0){
                                            var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0];
                                        }
                                        var writeResult = pdfWriteContent(doc, currentGBUElementArray[currentGBUElementIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                }
                            }
                        }
                    }
                }
                else if(currentLine.startsWith("[tspv2_coach_output_mittelwert_gesamt")){
                    // Abrufen der ID-Liste
                    var idArray = [];
                    if(currentLine.match(/ids="/) !== null){
                        var idStringTemp = currentLine.match(/ids="([0-9;]+)"/);
                        var idArrayTemp = idStringTemp[1].split(";");
                        for(var id=0; id < idArrayTemp.length; id++){
                            idArray.push(idArrayTemp[id].trim());
                        }
                    }
                    else if(currentLine.match(/ids='/) !== null){
                        var idStringTemp = currentLine.match(/ids='([0-9;]+)'/);
                        var idArrayTemp = idStringTemp[1].split(";");
                        for(var id=0; id < idArrayTemp.length; id++){
                            idArray.push(idArrayTemp[id].trim());
                        }
                    }

                    var gbuIdString = "";
                    for(var idArrayIndex = 0; idArrayIndex < idArray.length; idArrayIndex++){
                        if(idArrayIndex != 0){
                            gbuIdString += "_";
                        }
                        gbuIdString += idArray[idArrayIndex];
                    }
                    var thisGBUOutput = jQuery('#coach_output_gbu_'+gbuIdString);
                    if(jQuery(thisGBUOutput).is("p")){
                        var gbuOutputText = jQuery(thisGBUOutput).text();
                        gbuOutputText = gbuOutputText.trim();
                        gbuOutputText = pdfReplaceSpecialCharacters(gbuOutputText);
                        var gbuOutputTextArray = doc.splitTextToSize(gbuOutputText, maxContentWidth);
                        for(var gbuOutputTextIndex = 0; gbuOutputTextIndex < gbuOutputTextArray.length; gbuOutputTextIndex++){
                            // Zeile passt nicht mehr auf Seite
                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                var docFontSize =  doc.getFontSize();
                                var docFontStyle = "normal";
                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                doc = result[0];
                                currentHeightPosition = result[1];
                            }
                            var writeResult = pdfWriteContent(doc, gbuOutputTextArray[gbuOutputTextIndex], pdfMarginLeft, currentHeightPosition);
                            doc = writeResult[0];
                            currentHeightPosition = writeResult[1];
                        }
                    }
                    else if(jQuery(thisGBUOutput).is("table")){
                        var thisGBUOutputRows = jQuery(thisGBUOutput).find("tr");
                        for(var gbuRow = 0; gbuRow < thisGBUOutputRows.length; gbuRow++){

                            var thisGBUOutputCells = jQuery(thisGBUOutputRows[gbuRow]).find("td");
                            // Bestimme maximale Breite für eine Cell
                            var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, thisGBUOutputCells);
                            // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                            var fieldMarginX = 5;
                            // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                            var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                            // Maximale Breite für den Inhalt eines Feldes
                            var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                            // Zwischenspeichern der aktuellen Position des Texts
                            var tempCurrentHeightPosition = currentHeightPosition;
                            // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Zeile)
                            var maxCurrentHeightPosition = currentHeightPosition;
                            // Zwischenspeichern der aktuellen Seite(nzahl)
                            var tempPage = doc.page;
                            // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                            var maxPage = doc.page;

                            // Aktuelle Position des Rahmens
                            var currentRectPosition = currentHeightPosition;
                            // Zwischenspeichern der aktuellen Position des Rahmens
                            var tempRectPosition = currentRectPosition;

                            // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zellen dieser Reihe
                            var maxLinesThisRow = 0;

                            for(var gbuCell1 = 0; gbuCell1 < thisGBUOutputCells.length; gbuCell1++){
                                var numberLinesThisCell = pdfGBUGetNumberLinesCell(doc,jQuery(thisGBUOutputCells[gbuCell1]).contents(), maxFieldContentWidth, pdfFont);

                                if(numberLinesThisCell > maxLinesThisRow){
                                    maxLinesThisRow = numberLinesThisCell;
                                }
                            }
                            
                            // Drucke den Inhalt nur, wenn die Zellen der Tabelle eine positive Breite haben
                            if(maxFieldContentWidth > 0){
                                for(var gbuCell2 = 0; gbuCell2 < thisGBUOutputCells.length; gbuCell2++){
                                    
                                    // Zurücksetzen der Position
                                    currentHeightPosition = tempCurrentHeightPosition;
                                    doc.page = tempPage;
                                    doc.setPage(tempPage);
                                    // Position für Rahmen zurücksetzen
                                    currentRectPosition = tempRectPosition;

                                    // Füllfarbe für Rahmen abrufen, sofern vorhanden
                                    var styleString = jQuery(thisGBUOutputCells[gbuCell2]).attr("style");
                                    var colorRGB = "rgb(255,255,255)";
                                    if(typeof styleString !== typeof undefined && styleString !== false){
                                        var colorHex = styleString.match(/background-color: ([0-9a-zA-Z#]+)/);
                                        var colorRGBTemp = pdfConvertHexToRGB(colorHex[1]);
                                        colorRGB = "rgb("+colorRGBTemp.r+","+colorRGBTemp.g+","+colorRGBTemp.b+")";
                                    }

                                    var cellContentResult = pdfGetGBUCellContent(doc, jQuery(thisGBUOutputCells[gbuCell2]).contents() ,maxFieldContentWidth, pdfFont);
                                    var contentThisCell = cellContentResult[0];
                                    var styleThisCell = cellContentResult[1];
                                    // Zählvariable für Schleife
                                    var linesToDraw = maxLinesThisRow;
                                    // Drucke Rahmen und Inhalt
                                    while(linesToDraw > 0){
                                        // Berechne übrigen Platz auf Seite
                                        var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                        // Anzahl an freien Zeilen für Inhalt auf Seite
                                        var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                        // Es kann mindestens eine Zeile gezeichnet werden
                                        if(linesAvailable > 0){
                                            // Zeilen, die auf dieser Seite gezeichnet werden können
                                            var linesThisPage = 0;
                                            if(linesAvailable >= linesToDraw){
                                                linesThisPage = linesToDraw;
                                            }
                                            else{
                                                linesThisPage = linesAvailable;
                                            }
                                            var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                            doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*gbuCell2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, colorRGB);
                                            currentRectPosition += heightThisRect+2*fieldMarginY;

                                            while(linesThisPage > 0){
                                                // Inhalt schreiben, sofern vorhanden
                                                if(contentThisCell.length > 0){
                                                    doc.setFont(pdfFont, styleThisCell[0]);
                                                    var result = pdfWriteContent(doc, contentThisCell[0], pdfMarginLeft+gbuCell2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                    doc = result[0];
                                                    currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                    contentThisCell.shift();
                                                    styleThisCell.shift();
                                                    doc.setFont(pdfFont, "normal");
                                                }
                                                // Zählvariable innere Schleife anpassen
                                                linesThisPage--;
                                                // Zählvariable äußere Schleife anpassen
                                                linesToDraw--;
                                            }
                                        }
                                        // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                        else{
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                            doc = result[0];
                                            currentHeightPosition = result[1];
                                            maxPage = result[2];
                                            currentRectPosition = currentHeightPosition;
                                        }
                                    }
                                }
                                currentHeightPosition = currentRectPosition;
                            }

                        }
                        currentHeightPosition += 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                    }
                    

                }
                // Shortcode coach_output_forward_content
                else if(currentLine.startsWith("[coach_output_forward_content")){
                    var forwardContentIds = pdfGetIdAttributeList(currentLine);
                    var forwardContentContainerId = "coach_output_forward_content";
                    for(var fCId = 0; fCId < forwardContentIds.length; fCId++){
                        forwardContentContainerId+= "_"+forwardContentIds[fCId];
                    }
                    var forwardContentContainer = jQuery('#'+forwardContentContainerId);
                    var forwardContentContainerContents = jQuery(forwardContentContainer).contents();

                    for(var containerContent = 0; containerContent < forwardContentContainerContents.length; containerContent++){
                        if(jQuery(forwardContentContainerContents[containerContent]).is("div.alert")){
                            var alertContent = jQuery(forwardContentContainerContents[containerContent]).contents();
                            for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                if(jQuery(alertContent[alertDivCons]).is("h5")){
                                    currentHeightPosition += 3;
                                    var headlineText = jQuery(alertContent[alertDivCons]).text();
                                    headlineText = headlineText.trim();
                                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                                    var headlineTextColor = "rgb(0,0,0)";
                                    var headlineFontSize = pdfGetHeadlineSize("h5");
                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                    var currentTextColor = doc.getTextColor();
                                    var currentFontSize = doc.getFontSize();
                                    // Schriftfarbe für Überschrift setzen
                                    doc.setTextColor(headlineTextColor);
                                    doc.setFontSize(headlineFontSize);

                                    // Ersetze Sonderzeichen in Überschrift
                                    headlineText = pdfReplaceSpecialCharacters(headlineText);
                                    var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                    for(var i=0; i< headLineTextArray.length; i++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }

                                    // Zurücksetzen der Schriftfarbe und -größe
                                    doc.setTextColor(currentTextColor);
                                    doc.setFontSize(currentFontSize);
                                }
                                else{
                                    var contentText = jQuery(alertContent[alertDivCons]).text().trim();
                                    if(contentText != ""){
                                        contentText = pdfReplaceSpecialCharacters(contentText);
                                        var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                        for(var cText=0; cText< contentTextArray.length; cText++){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0];
                                                currentHeightPosition = result[1];
                                            }
                                            var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];
                                        }
                                    }
                                }
                            }
                            currentHeightPosition += 4;
                        }
                        else if(jQuery(forwardContentContainerContents[containerContent]).is("div.coach_output_forward_content_container_boss")){
                            var bossGroupsDivContent = jQuery(forwardContentContainerContents[containerContent]).contents();
                            for(var bossGroupsDivCons = 0; bossGroupsDivCons < bossGroupsDivContent.length; bossGroupsDivCons++){
                                var bossDivContent = jQuery(bossGroupsDivContent[bossGroupsDivCons]).contents();
                                for(var bossDivCons = 0; bossDivCons < bossDivContent.length; bossDivCons++){
                                    if(jQuery(bossDivContent[bossDivCons]).is("p")){
                                        var paragraphContent = jQuery(bossDivContent[bossDivCons]).contents();
                                        if(jQuery(paragraphContent).is("small")){
                                            var contentText = jQuery(bossDivContent[bossDivCons]).text();
                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                            // Abrufen der Schriftfarbe und -größe für das small-Element
                                            var smallElementTextColor = "rgb(108, 117, 125)";
                                            var smallElementFontSize = 10;
                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                            var currentTextColor = doc.getTextColor();
                                            var currentFontSize = doc.getFontSize();
                                            // Schriftfarbe für Überschrift setzen
                                            doc.setTextColor(smallElementTextColor);
                                            doc.setFontSize(smallElementFontSize);
                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                            for(var cText=0; cText< contentTextArray.length; cText++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0];
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            // Zurücksetzen der Schriftfarbe und -größe
                                            doc.setTextColor(currentTextColor);
                                            doc.setFontSize(currentFontSize);
                                            currentHeightPosition+= 5;
                                        }
                                        else{
                                            var contentText = jQuery(bossDivContent[bossDivCons]).text();
                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                            for(var cText=0; cText< contentTextArray.length; cText++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0];
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            currentHeightPosition+= 3;
                                        }                                        

                                    }
                                    else if(jQuery(bossDivContent[bossDivCons]).is("b")){
                                        currentHeightPosition += 1.5;
                                        var contentText = jQuery(bossDivContent[bossDivCons]).contents().text();
                                        contentText = pdfReplaceSpecialCharacters(contentText);
                                        doc.setFont(pdfFont, "bold");
                                        var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                        for(var cText=0; cText< contentTextArray.length; cText++){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "bold";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0];
                                                currentHeightPosition = result[1];
                                            }
                                            var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];
                                        }
                                        doc.setFont(pdfFont, "normal");
                                        currentHeightPosition += 3;
                                    }
                                    else if(jQuery(bossDivContent[bossDivCons]).is("h4")){
                                        currentHeightPosition += 3;
                                        var headlineText = jQuery(bossDivContent[bossDivCons]).text();
                                        // Abrufen der Schriftfarbe und -größe für die Überschrift
                                        var headlineTextColor = pdfGetHeadlineColor("h4", headlineText);
                                        var headlineFontSize = pdfGetHeadlineSize("h4");
                                        // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                        var currentTextColor = doc.getTextColor();
                                        var currentFontSize = doc.getFontSize();
                                        // Schriftfarbe für Überschrift setzen
                                        doc.setTextColor(headlineTextColor);
                                        doc.setFontSize(headlineFontSize);

                                        // Ersetze Sonderzeichen in Überschrift
                                        headlineText = pdfReplaceSpecialCharacters(headlineText);
                                        var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                        for(var i=0; i< headLineTextArray.length; i++){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                            }
                                            var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];
                                        }

                                        // Zurücksetzen der Schriftfarbe und -größe
                                        doc.setTextColor(currentTextColor);
                                        doc.setFontSize(currentFontSize);
                                    }
                                    else if(jQuery(bossDivContent[bossDivCons]).is("div.alert")){
                                        var alertContent = jQuery(bossDivContent[bossDivCons]).contents();
                                        for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                            if(jQuery(alertContent[alertDivCons]).is("h5")){
                                                currentHeightPosition += 1.5;
                                                var headlineText = jQuery(alertContent[alertDivCons]).text();
                                                headlineText = headlineText.trim();
                                                // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                var headlineTextColor = "rgb(0,0,0)";
                                                var headlineFontSize = pdfGetHeadlineSize("h5");
                                                // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                var currentTextColor = doc.getTextColor();
                                                var currentFontSize = doc.getFontSize();
                                                // Schriftfarbe für Überschrift setzen
                                                doc.setTextColor(headlineTextColor);
                                                doc.setFontSize(headlineFontSize);

                                                // Ersetze Sonderzeichen in Überschrift
                                                headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                for(var i=0; i< headLineTextArray.length; i++){
                                                    // Zeile passt nicht mehr auf Seite
                                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                        var docFontSize = doc.getFontSize();
                                                        var docFontStyle = "normal";
                                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                        doc = result[0]; 
                                                        currentHeightPosition = result[1];
                                                    }
                                                    var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                    doc = writeResult[0];
                                                    currentHeightPosition = writeResult[1];
                                                }

                                                // Zurücksetzen der Schriftfarbe und -größe
                                                doc.setTextColor(currentTextColor);
                                                doc.setFontSize(currentFontSize);
                                            }
                                            else{
                                                var contentText = jQuery(alertContent[alertDivCons]).text().trim();
                                                if(contentText != ""){
                                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                    for(var cText=0; cText< contentTextArray.length; cText++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0];
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                }
                                            }
                                        }
                                        currentHeightPosition += 4;
                                    }
                                    else if(jQuery(bossDivContent[bossDivCons]).is("br")){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                }
                            }
                        }
                        else if(jQuery(forwardContentContainerContents[containerContent]).is("div.coach_output_forward_content_container_kadmin")){
                            var kAdminDivContent = jQuery(forwardContentContainerContents[containerContent]).contents();
                            for(var kAdminDivCons = 0; kAdminDivCons < kAdminDivContent.length; kAdminDivCons++){

                                if(jQuery(kAdminDivContent[kAdminDivCons]).is("div.coach_output_forward_content_button")){
                                    var buttonText = jQuery(kAdminDivContent[kAdminDivCons]).find("button").text();
                                    var headlineTextColor = jQuery(kAdminDivContent[kAdminDivCons]).find("button p").css("color");
                                    var headlineFontSize = pdfGetHeadlineSize("h3");
                                    buttonText = buttonText.trim();
                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                    var currentTextColor = doc.getTextColor();
                                    var currentFontSize = doc.getFontSize();
                                    // Schriftfarbe für Überschrift setzen
                                    doc.setTextColor(headlineTextColor);
                                    doc.setFontSize(headlineFontSize);
                                    buttonText = pdfReplaceSpecialCharacters(buttonText);
                                    var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                    for(var buttonIndex =0; buttonIndex< buttonTextArray.length; buttonIndex++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0];
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                    // Zurücksetzen der Schriftfarbe und -größe
                                    doc.setTextColor(currentTextColor);
                                    doc.setFontSize(currentFontSize);
                                }
                                else if(jQuery(kAdminDivContent[kAdminDivCons]).is("div.coach_output_forward_content_groups")){
                                    var kAdminGroupsDivContent = jQuery(kAdminDivContent[kAdminDivCons]).contents();
                                    for(var kAdminGroupsDivCons = 0; kAdminGroupsDivCons < kAdminGroupsDivContent.length; kAdminGroupsDivCons++){
                                        var kAdminThisCompanyGroupContent = jQuery(kAdminGroupsDivContent[kAdminGroupsDivCons]).contents();
                                        for(var kAdminThisCompanyGroupCons = 0; kAdminThisCompanyGroupCons < kAdminThisCompanyGroupContent.length; kAdminThisCompanyGroupCons++){

                                            if(jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).is("p")){
                                                var paragraphContent = jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).contents();
                                                if(jQuery(paragraphContent).is("small")){
                                                    var contentText = jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).text();
                                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                                    // Abrufen der Schriftfarbe und -größe für das small-Element
                                                    var smallElementTextColor = "rgb(108, 117, 125)";
                                                    var smallElementFontSize = 10;
                                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                    var currentTextColor = doc.getTextColor();
                                                    var currentFontSize = doc.getFontSize();
                                                    // Schriftfarbe für Überschrift setzen
                                                    doc.setTextColor(smallElementTextColor);
                                                    doc.setFontSize(smallElementFontSize);
                                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                    for(var cText=0; cText< contentTextArray.length; cText++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0];
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                    // Zurücksetzen der Schriftfarbe und -größe
                                                    doc.setTextColor(currentTextColor);
                                                    doc.setFontSize(currentFontSize);
                                                    currentHeightPosition+= 5;
                                                }
                                                else{
                                                    var contentText = jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).text();
                                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                    for(var cText=0; cText< contentTextArray.length; cText++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0];
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                    currentHeightPosition+= 3;
                                                }
                                                

                                            }
                                            else if(jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).is("b")){
                                                currentHeightPosition += 1.5;
                                                var contentText = jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).contents().text();
                                                contentText = pdfReplaceSpecialCharacters(contentText);
                                                doc.setFont(pdfFont, "bold");
                                                var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                for(var cText=0; cText< contentTextArray.length; cText++){
                                                    // Zeile passt nicht mehr auf Seite
                                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                        var docFontSize = doc.getFontSize();
                                                        var docFontStyle = "bold";
                                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                        doc = result[0];
                                                        currentHeightPosition = result[1];
                                                    }
                                                    var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                    doc = writeResult[0];
                                                    currentHeightPosition = writeResult[1];
                                                }
                                                doc.setFont(pdfFont, "normal");
                                                currentHeightPosition += 3;
                                            }
                                            else if(jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).is("h4")){
                                                currentHeightPosition += 3;
                                                var headlineText = jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).text();
                                                // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                var headlineTextColor = pdfGetHeadlineColor("h4", headlineText);
                                                var headlineFontSize = pdfGetHeadlineSize("h4");
                                                // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                var currentTextColor = doc.getTextColor();
                                                var currentFontSize = doc.getFontSize();
                                                // Schriftfarbe für Überschrift setzen
                                                doc.setTextColor(headlineTextColor);
                                                doc.setFontSize(headlineFontSize);

                                                // Ersetze Sonderzeichen in Überschrift
                                                headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                for(var i=0; i< headLineTextArray.length; i++){
                                                    // Zeile passt nicht mehr auf Seite
                                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                        var docFontSize = doc.getFontSize();
                                                        var docFontStyle = "normal";
                                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                        doc = result[0]; 
                                                        currentHeightPosition = result[1];
                                                    }
                                                    var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                    doc = writeResult[0];
                                                    currentHeightPosition = writeResult[1];
                                                }

                                                // Zurücksetzen der Schriftfarbe und -größe
                                                doc.setTextColor(currentTextColor);
                                                doc.setFontSize(currentFontSize);
                                            }
                                            else if(jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).is("br")){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0]; 
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            else if(jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).is("div.alert")){
                                                var alertContent = jQuery(kAdminThisCompanyGroupContent[kAdminThisCompanyGroupCons]).contents();
                                                for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                                    if(jQuery(alertContent[alertDivCons]).is("h5")){
                                                        currentHeightPosition += 1.5;
                                                        var headlineText = jQuery(alertContent[alertDivCons]).text();
                                                        headlineText = headlineText.trim();
                                                        // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                        var headlineTextColor = "rgb(0,0,0)";
                                                        var headlineFontSize = pdfGetHeadlineSize("h5");
                                                        // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                        var currentTextColor = doc.getTextColor();
                                                        var currentFontSize = doc.getFontSize();
                                                        // Schriftfarbe für Überschrift setzen
                                                        doc.setTextColor(headlineTextColor);
                                                        doc.setFontSize(headlineFontSize);

                                                        // Ersetze Sonderzeichen in Überschrift
                                                        headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                        var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                        for(var i=0; i< headLineTextArray.length; i++){
                                                            // Zeile passt nicht mehr auf Seite
                                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                var docFontSize = doc.getFontSize();
                                                                var docFontStyle = "normal";
                                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                doc = result[0]; 
                                                                currentHeightPosition = result[1];
                                                            }
                                                            var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                            doc = writeResult[0];
                                                            currentHeightPosition = writeResult[1];
                                                        }

                                                        // Zurücksetzen der Schriftfarbe und -größe
                                                        doc.setTextColor(currentTextColor);
                                                        doc.setFontSize(currentFontSize);
                                                    }
                                                    else{
                                                        var contentText = jQuery(alertContent[alertDivCons]).text().trim();
                                                        if(contentText != ""){
                                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                            for(var cText=0; cText< contentTextArray.length; cText++){
                                                                // Zeile passt nicht mehr auf Seite
                                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                    var docFontSize = doc.getFontSize();
                                                                    var docFontStyle = "normal";
                                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                    doc = result[0];
                                                                    currentHeightPosition = result[1];
                                                                }
                                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                                doc = writeResult[0];
                                                                currentHeightPosition = writeResult[1];
                                                            }
                                                        }
                                                    }
                                                }
                                                currentHeightPosition += 4;
                                            }
                                        }
                                    }
                                    
                                }
                            }
                        }
                        else if(jQuery(forwardContentContainerContents[containerContent]).is("div.coach_output_forward_content_container_teamleader")){
                            var teamleaderGroupDivContent = jQuery(forwardContentContainerContents[containerContent]).contents();
                            for(var teamleaderGroupDivCons = 0; teamleaderGroupDivCons < teamleaderGroupDivContent.length; teamleaderGroupDivCons++){
                                var teamleaderDivContent = jQuery(teamleaderGroupDivContent[teamleaderGroupDivCons]).contents();
                                for(var teamleaderDivCons = 0; teamleaderDivCons < teamleaderDivContent.length; teamleaderDivCons++){
                                    if(jQuery(teamleaderDivContent[teamleaderDivCons]).is("p")){
                                        var paragraphContent = jQuery(teamleaderDivContent[teamleaderDivCons]).contents();
                                        if(jQuery(paragraphContent).is("small")){
                                            var contentText = jQuery(teamleaderDivContent[teamleaderDivCons]).text();
                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                            // Abrufen der Schriftfarbe und -größe für das small-Element
                                            var smallElementTextColor = "rgb(108, 117, 125)";
                                            var smallElementFontSize = 10;
                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                            var currentTextColor = doc.getTextColor();
                                            var currentFontSize = doc.getFontSize();
                                            // Schriftfarbe für Überschrift setzen
                                            doc.setTextColor(smallElementTextColor);
                                            doc.setFontSize(smallElementFontSize);
                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                            for(var cText=0; cText< contentTextArray.length; cText++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0];
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            // Zurücksetzen der Schriftfarbe und -größe
                                            doc.setTextColor(currentTextColor);
                                            doc.setFontSize(currentFontSize);
                                            currentHeightPosition+= 5;
                                        }
                                        else{
                                            var contentText = jQuery(teamleaderDivContent[teamleaderDivCons]).text();
                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                            for(var cText=0; cText< contentTextArray.length; cText++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0];
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            currentHeightPosition+= 3;
                                        }
                                    }
                                    else if(jQuery(teamleaderDivContent[teamleaderDivCons]).is("b")){
                                        currentHeightPosition += 1.5;
                                        var contentText = jQuery(teamleaderDivContent[teamleaderDivCons]).contents().text();
                                        contentText = pdfReplaceSpecialCharacters(contentText);
                                        doc.setFont(pdfFont, "bold");
                                        var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                        for(var cText=0; cText< contentTextArray.length; cText++){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "bold";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0];
                                                currentHeightPosition = result[1];
                                            }
                                            var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];
                                        }
                                        doc.setFont(pdfFont, "normal");
                                        currentHeightPosition += 3;
                                    }
                                    else if(jQuery(teamleaderDivContent[teamleaderDivCons]).is("h4")){
                                        currentHeightPosition += 3;
                                        var headlineText = jQuery(teamleaderDivContent[teamleaderDivCons]).text();
                                        // Abrufen der Schriftfarbe und -größe für die Überschrift
                                        var headlineTextColor = pdfGetHeadlineColor("h4", headlineText);
                                        var headlineFontSize = pdfGetHeadlineSize("h4");
                                        // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                        var currentTextColor = doc.getTextColor();
                                        var currentFontSize = doc.getFontSize();
                                        // Schriftfarbe für Überschrift setzen
                                        doc.setTextColor(headlineTextColor);
                                        doc.setFontSize(headlineFontSize);

                                        // Ersetze Sonderzeichen in Überschrift
                                        headlineText = pdfReplaceSpecialCharacters(headlineText);
                                        var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                        for(var i=0; i< headLineTextArray.length; i++){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                            }
                                            var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];
                                        }

                                        // Zurücksetzen der Schriftfarbe und -größe
                                        doc.setTextColor(currentTextColor);
                                        doc.setFontSize(currentFontSize);
                                    }
                                    else if(jQuery(teamleaderDivContent[teamleaderDivCons]).is("div.alert")){
                                        var alertContent = jQuery(teamleaderDivContent[teamleaderDivCons]).contents();
                                        for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                            if(jQuery(alertContent[alertDivCons]).is("h5")){
                                                currentHeightPosition += 1.5;
                                                var headlineText = jQuery(alertContent[alertDivCons]).text();
                                                headlineText = headlineText.trim();
                                                // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                var headlineTextColor = "rgb(0,0,0)";
                                                var headlineFontSize = pdfGetHeadlineSize("h5");
                                                // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                var currentTextColor = doc.getTextColor();
                                                var currentFontSize = doc.getFontSize();
                                                // Schriftfarbe für Überschrift setzen
                                                doc.setTextColor(headlineTextColor);
                                                doc.setFontSize(headlineFontSize);

                                                // Ersetze Sonderzeichen in Überschrift
                                                headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                for(var i=0; i< headLineTextArray.length; i++){
                                                    // Zeile passt nicht mehr auf Seite
                                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                        var docFontSize = doc.getFontSize();
                                                        var docFontStyle = "normal";
                                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                        doc = result[0]; 
                                                        currentHeightPosition = result[1];
                                                    }
                                                    var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                    doc = writeResult[0];
                                                    currentHeightPosition = writeResult[1];
                                                }

                                                // Zurücksetzen der Schriftfarbe und -größe
                                                doc.setTextColor(currentTextColor);
                                                doc.setFontSize(currentFontSize);
                                            }
                                            else{
                                                var contentText = jQuery(alertContent[alertDivCons]).text().trim();
                                                if(contentText != ""){
                                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                    for(var cText=0; cText< contentTextArray.length; cText++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0];
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                }
                                            }
                                        }
                                        currentHeightPosition += 4;
                                    }
                                    else if(jQuery(teamleaderDivContent[teamleaderDivCons]).is("br")){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                }
                            }
                        }
                    }
                }
                // Shortcode coach_output_gbu_chart
                else if(currentLine.startsWith('[coach_output_gbu_chart ')){
                    var gbuChartIds = pdfGetIdAttributeList(currentLine);
                    var gbuChartContainerId = "coach_output_gbu_chart";
                    
                    for(var gCId = 0; gCId < gbuChartIds.length; gCId++){
                        gbuChartContainerId+= "_"+gbuChartIds[gCId];
                    }
                    var gbuChartContainer = jQuery('#'+gbuChartContainerId);
                    var gbuChartContainerContents = jQuery(gbuChartContainer).contents();

                    for(var containerContent = 0; containerContent < gbuChartContainerContents.length; containerContent++){

                        if(jQuery(gbuChartContainerContents[containerContent]).is("div.coach_output_gbu_chart_container_boss")){
                            var bossDivContent = jQuery(gbuChartContainerContents[containerContent]).contents();

                            for(var bossDivCons = 0; bossDivCons < bossDivContent.length; bossDivCons++){
                                if(jQuery(bossDivContent[bossDivCons]).is("div.coach_output_gbu_chart_button")){
                                    var buttonText = jQuery(bossDivContent[bossDivCons]).find("button").text();
                                    var headlineTextColor = jQuery(bossDivContent[bossDivCons]).find("button p").css("color");
                                    var headlineFontSize = pdfGetHeadlineSize("h2");
                                    buttonText = buttonText.trim();
                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                    var currentTextColor = doc.getTextColor();
                                    var currentFontSize =  doc.getFontSize();
                                    // Schriftfarbe für Überschrift setzen
                                    doc.setTextColor(headlineTextColor);
                                    doc.setFontSize(headlineFontSize);
                                    buttonText = pdfReplaceSpecialCharacters(buttonText);
                                    var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                    for(var buttonIndex = 0; buttonIndex < buttonTextArray.length; buttonIndex++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                    // Zurücksetzen der Schriftfarbe und -größe
                                    doc.setTextColor(currentTextColor);
                                    doc.setFontSize(currentFontSize);
                                }
                                else if(jQuery(bossDivContent[bossDivCons]).is("div.coach_output_gbu_chart_groups")){
                                    var bossThisGroupContent = jQuery(bossDivContent[bossDivCons]).contents();
                                    for(var bossThisGroupCons = 0; bossThisGroupCons < bossThisGroupContent.length; bossThisGroupCons++){

                                        if(jQuery(bossThisGroupContent[bossThisGroupCons]).is("p")){
                                            var contentText = jQuery(bossThisGroupContent[bossThisGroupCons]).text();
                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                            for(var cText=0; cText < contentTextArray.length; cText++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0];
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            currentHeightPosition += 1.5; 
                                        }
                                        else if(jQuery(bossThisGroupContent[bossThisGroupCons]).is("h3")){
                                            currentHeightPosition += 3;
                                            var headlineText = jQuery(bossThisGroupContent[bossThisGroupCons]).text();
                                            // Abrufen der Schriftfarbe und -größe für die Überschrift
                                            var headlineTextColor = pdfGetHeadlineColor("h3", headlineText);
                                            var headlineFontSize = pdfGetHeadlineSize("h3");
                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                            var currentTextColor = doc.getTextColor();
                                            var currentFontSize = doc.getFontSize();
                                            // Schriftfarbe für Überschrift setzen
                                            doc.setTextColor(headlineTextColor);
                                            doc.setFontSize(headlineFontSize);

                                             // Ersetze Sonderzeichen in Überschrift
                                            headlineText = pdfReplaceSpecialCharacters(headlineText);
                                            var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                            for(var i=0; i< headLineTextArray.length; i++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0]; 
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }

                                            // Zurücksetzen der Schriftfarbe und -größe
                                            doc.setTextColor(currentTextColor);
                                            doc.setFontSize(currentFontSize);
                                        }
                                        else if(jQuery(bossThisGroupContent[bossThisGroupCons]).is("h4")){
                                            currentHeightPosition += 3;
                                            var headlineText = jQuery(bossThisGroupContent[bossThisGroupCons]).text();
                                            // Abrufen der Schriftfarbe und -größe für die Überschrift
                                            var headlineTextColor = pdfGetHeadlineColor("h4", headlineText);
                                            var headlineFontSize = pdfGetHeadlineSize("h4");
                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                            var currentTextColor = doc.getTextColor();
                                            var currentFontSize = doc.getFontSize();
                                            // Schriftfarbe für Überschrift setzen
                                            doc.setTextColor(headlineTextColor);
                                            doc.setFontSize(headlineFontSize);

                                             // Ersetze Sonderzeichen in Überschrift
                                            headlineText = pdfReplaceSpecialCharacters(headlineText);
                                            var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                            for(var i=0; i< headLineTextArray.length; i++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0]; 
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }

                                            // Zurücksetzen der Schriftfarbe und -größe
                                            doc.setTextColor(currentTextColor);
                                            doc.setFontSize(currentFontSize);
                                        }
                                        else if(jQuery(bossThisGroupContent[bossThisGroupCons]).is("br")){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                            }
                                            var writeResult = pdfWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];
                                        }
                                        else if(jQuery(bossThisGroupContent[bossThisGroupCons]).is("ul")){
                                            var bulletpoint = "-";
                                            var listItems = jQuery(bossThisGroupContent[bossThisGroupCons]).contents();
                                            var bulletpointLength = (doc.getStringUnitWidth(bulletpoint)*doc.getFontSize())/(72/25.6);

                                            for(var listItemIndex = 0; listItemIndex < listItems.length; listItemIndex++){

                                                if(jQuery(listItems[listItemIndex]).is("li")){
                                                    var listItemContent = jQuery(listItems[listItemIndex]).text();
                                                    listItemContent = pdfReplaceSpecialCharacters(listItemContent);
                                                    var listItemContentArray = doc.splitTextToSize(listItemContent, maxContentWidth-bulletpointLength);
                                                    for(var listItemContentIndex = 0; listItemContentIndex < listItemContentArray.length; listItemContentIndex++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0]; 
                                                            currentHeightPosition = result[1];
                                                        }
                                                        // Zeichne Bulletpoint
                                                        if(listItemContentIndex == 0){
                                                            var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                                            doc = writeResult[0];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, listItemContentArray[listItemContentIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                }
                                            }
                                        }
                                        else if(jQuery(bossThisGroupContent[bossThisGroupCons]).is("canvas")){

                                            var canvasWidth = maxContentWidth;
                                            var canvasHeight = maxContentWidth/2;

                                            // Das Bild passt nicht auf die aktuelle Seite -> Lege eine neue Seite an
                                            if(canvasHeight > maxHeight - pdfMarginBottom - currentHeightPosition){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                            }

                                            var canvasSource = bossThisGroupContent[bossThisGroupCons].toDataURL("image/jpeg");
                                            doc.addImage(canvasSource, 'JPEG', pdfMarginLeft, currentHeightPosition, canvasWidth, canvasHeight, '', 'FAST');
                                            // Füge einen Abstand unterhalb des Bildes hinzu
                                            currentHeightPosition+= canvasHeight + 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                        }
                                        else if(jQuery(bossThisGroupContent[bossThisGroupCons]).is("div.alert")){
                                            var alertContent = jQuery(bossThisGroupContent[bossThisGroupCons]).contents();
                                            for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                                if(jQuery(alertContent[alertDivCons]).is("h5")){
                                                    currentHeightPosition += 3;
                                                    var headlineText = jQuery(alertContent[alertDivCons]).text();
                                                    headlineText = headlineText.trim();
                                                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                    var headlineTextColor = "rgb(0,0,0)";
                                                    var headlineFontSize = pdfGetHeadlineSize("h5");
                                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                    var currentTextColor = doc.getTextColor();
                                                    var currentFontSize = doc.getFontSize();
                                                    // Schriftfarbe für Überschrift setzen
                                                    doc.setTextColor(headlineTextColor);
                                                    doc.setFontSize(headlineFontSize);

                                                    // Ersetze Sonderzeichen in Überschrift
                                                    headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                    var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                    for(var i=0; i< headLineTextArray.length; i++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0]; 
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }

                                                    // Zurücksetzen der Schriftfarbe und -größe
                                                    doc.setTextColor(currentTextColor);
                                                    doc.setFontSize(currentFontSize);
                                                }
                                                else if(jQuery(alertContent[alertDivCons]).is("p")){
                                                    var contentText = jQuery(alertContent[alertDivCons]).text();
                                                    contentText = contentText.trim();
                                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                    for(var cText=0; cText < contentTextArray.length; cText++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0];
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                }
                                            }
                                            currentHeightPosition += 4;
                                        }
                                        else if(jQuery(bossThisGroupContent[bossThisGroupCons]).is("div.coach_output_gbu_boss_subscales")){
                                            var bossDivSubscalesContent = jQuery(bossThisGroupContent[bossThisGroupCons]).contents();
                                            for(var bossDivSubscalesCons = 0; bossDivSubscalesCons < bossDivSubscalesContent.length ;bossDivSubscalesCons++){
                                                if(jQuery(bossDivSubscalesContent[bossDivSubscalesCons]).is("div.coach_output_gbu_chart_button")){
                                                    var buttonText = jQuery(bossDivSubscalesContent[bossDivSubscalesCons]).find("button").text();
                                                    var headlineTextColor = jQuery(bossDivSubscalesContent[bossDivSubscalesCons]).find("button p").css("color");
                                                    var headlineFontSize = pdfGetHeadlineSize("h4");
                                                    buttonText = buttonText.trim();
                                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                    var currentTextColor = doc.getTextColor();
                                                    var currentFontSize =  doc.getFontSize();
                                                    // Schriftfarbe für Überschrift setzen
                                                    doc.setTextColor(headlineTextColor);
                                                    doc.setFontSize(headlineFontSize);
                                                    buttonText = pdfReplaceSpecialCharacters(buttonText);
                                                    var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                                    for(var buttonIndex = 0; buttonIndex < buttonTextArray.length; buttonIndex++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0]; 
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                    // Zurücksetzen der Schriftfarbe und -größe
                                                    doc.setTextColor(currentTextColor);
                                                    doc.setFontSize(currentFontSize);
                                                }
                                                else if(jQuery(bossDivSubscalesContent[bossDivSubscalesCons]).is("div.coach_output_gbu_chart_subscales")){
                                                    var bossSubscalesContent = jQuery(bossDivSubscalesContent[bossDivSubscalesCons]).contents();
                                                    for(var bossSubscalesCons = 0; bossSubscalesCons < bossSubscalesContent.length; bossSubscalesCons++){

                                                        if(jQuery(bossSubscalesContent[bossSubscalesCons]).is("canvas")){
                                                            var canvasWidth = maxContentWidth;
                                                            var canvasHeight = maxContentWidth/2;

                                                            // Das Bild passt nicht auf die aktuelle Seite -> Lege eine neue Seite an
                                                            if(canvasHeight > maxHeight - pdfMarginBottom - currentHeightPosition){
                                                                var docFontSize = doc.getFontSize();
                                                                var docFontStyle = "normal";
                                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                doc = result[0]; 
                                                                currentHeightPosition = result[1];
                                                            }

                                                            var canvasSource = bossSubscalesContent[bossSubscalesCons].toDataURL("image/jpeg");
                                                            doc.addImage(canvasSource, 'JPEG', pdfMarginLeft, currentHeightPosition, canvasWidth, canvasHeight, '', 'FAST');
                                                            // Füge einen Abstand unterhalb des Bildes hinzu
                                                            currentHeightPosition+= canvasHeight + 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                        }
                                                        else if(jQuery(bossSubscalesContent[bossSubscalesCons]).is("br")){
                                                            // Zeile passt nicht mehr auf Seite
                                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                var docFontSize = doc.getFontSize();
                                                                var docFontStyle = "normal";
                                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                doc = result[0]; 
                                                                currentHeightPosition = result[1];
                                                            }
                                                            var writeResult = pdfWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                                                            doc = writeResult[0];
                                                            currentHeightPosition = writeResult[1];
                                                        }
                                                        else if(jQuery(bossSubscalesContent[bossSubscalesCons]).is("table.company-table-gesamt")){
                                                            var tableContent = jQuery(bossSubscalesContent[bossSubscalesCons]).contents();
                                                            for(var tableCons = 0; tableCons < tableContent.length; tableCons++){

                                                                if(jQuery(tableContent[tableCons]).is("tbody")){
                                                                    var tdElements = jQuery(tableContent[tableCons]).find("td");
                                                                    // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                                                    var fieldMarginX = 5;
                                                                    // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                                                    var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                                    // Zusätzlicher Abstand nach Zeichnen des Rahmens
                                                                    var offsetYDir =  3;
                        
                                                                    for(var tdIndex = 0; tdIndex < tdElements.length; tdIndex++){
                                                                        // Tabelle passt nicht mehr auf die aktuelle Seite
                                                                        doc.setFont(pdfFont, "bold");
                                                                        if(currentHeightPosition + 2*fieldMarginY + (doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778) > maxHeight){
                                                                            var docFontSize = doc.getFontSize();
                                                                            var docFontStyle = "normal";
                                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                            doc = result[0];
                                                                            currentHeightPosition = result[1];
                                                                            doc.setFont(pdfFont, "bold");
                                                                        }

                                                                        var tdText = jQuery(tdElements[tdIndex]).find("b").text();
                                                                        var tdTextDim = doc.getTextDimensions(tdText);
                                                                        if(tdIndex == 0){
                                                                            doc = pdfDrawRectangle(doc, pdfMarginLeft,currentHeightPosition, 2*fieldMarginX+tdTextDim['w'], 2*fieldMarginY+doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778, "rgb(255,255,255)");
                                                                            doc.text(tdText, pdfMarginLeft+fieldMarginX, currentHeightPosition+fieldMarginY+offsetYDir);
                                                                        }
                                                                        else{
                                                                            var tdColor = jQuery(tdElements[tdIndex]).css('background-color');
                                                                            var previousTdElementDim = doc.getTextDimensions(jQuery(tdElements[tdIndex-1]).find("b").text());
                                                                            doc = pdfDrawRectangle(doc, pdfMarginLeft+2*fieldMarginX+previousTdElementDim['w'], currentHeightPosition, 2*fieldMarginX+tdTextDim['w'], 2*fieldMarginY+doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778, tdColor);
                                                                            doc.text(tdText, pdfMarginLeft+3*fieldMarginX+previousTdElementDim['w'], currentHeightPosition+fieldMarginY+offsetYDir);
                                                                        }
                                                                    }
                                                                    currentHeightPosition += 20;
                                                                    doc.setFont(pdfFont, "normal");
                                                                }
                                                            }
                                                        }
                                                        else if(jQuery(bossSubscalesContent[bossSubscalesCons]).is("div.alert")){
                                                            var alertContent = jQuery(bossSubscalesContent[bossSubscalesCons]).contents();
                                                            for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                                                if(jQuery(alertContent[alertDivCons]).is("h5")){
                                                                    currentHeightPosition += 3;
                                                                    var headlineText = jQuery(alertContent[alertDivCons]).text();
                                                                    headlineText = headlineText.trim();
                                                                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                                    var headlineTextColor = "rgb(0,0,0)";
                                                                    var headlineFontSize = pdfGetHeadlineSize("h5");
                                                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                                    var currentTextColor = doc.getTextColor();
                                                                    var currentFontSize = doc.getFontSize();
                                                                    // Schriftfarbe für Überschrift setzen
                                                                    doc.setTextColor(headlineTextColor);
                                                                    doc.setFontSize(headlineFontSize);

                                                                    // Ersetze Sonderzeichen in Überschrift
                                                                    headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                                    var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                                    for(var i=0; i< headLineTextArray.length; i++){
                                                                        // Zeile passt nicht mehr auf Seite
                                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                            var docFontSize = doc.getFontSize();
                                                                            var docFontStyle = "normal";
                                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                            doc = result[0]; 
                                                                            currentHeightPosition = result[1];
                                                                        }
                                                                        var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                                        doc = writeResult[0];
                                                                        currentHeightPosition = writeResult[1];
                                                                    }

                                                                    // Zurücksetzen der Schriftfarbe und -größe
                                                                    doc.setTextColor(currentTextColor);
                                                                    doc.setFontSize(currentFontSize);
                                                                }
                                                                else if(jQuery(alertContent[alertDivCons]).is("p")){
                                                                    var contentText = jQuery(alertContent[alertDivCons]).text();
                                                                    contentText = contentText.trim();
                                                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                                    for(var cText=0; cText < contentTextArray.length; cText++){
                                                                        // Zeile passt nicht mehr auf Seite
                                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                            var docFontSize = doc.getFontSize();
                                                                            var docFontStyle = "normal";
                                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                            doc = result[0];
                                                                            currentHeightPosition = result[1];
                                                                        }
                                                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                                        doc = writeResult[0];
                                                                        currentHeightPosition = writeResult[1];
                                                                    }
                                                                }
                                                            }
                                                            currentHeightPosition += 4;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else if(jQuery(gbuChartContainerContents[containerContent]).is("div.coach_output_gbu_chart_container_kadmin")){
                            var kAdminDivOuterContent = jQuery(gbuChartContainerContents[containerContent]).contents();
                            for(var kAdminDivOuterCons = 0; kAdminDivOuterCons < kAdminDivOuterContent.length; kAdminDivOuterCons++){

                                if(jQuery(kAdminDivOuterContent[kAdminDivOuterCons]).is("div.coach_output_gbu_chart_button")){
                                    //currentHeightPosition += 3;
                                    var buttonText = jQuery(kAdminDivOuterContent[kAdminDivOuterCons]).find("button").text();
                                    var headlineTextColor = jQuery(kAdminDivOuterContent[kAdminDivOuterCons]).find("button p").css("color");
                                    var headlineFontSize = pdfGetHeadlineSize("h1");
                                    buttonText = buttonText.trim();
                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                    var currentTextColor = doc.getTextColor();
                                    var currentFontSize =  doc.getFontSize();
                                    // Schriftfarbe für Überschrift setzen
                                    doc.setTextColor(headlineTextColor);
                                    doc.setFontSize(headlineFontSize);
                                    buttonText = pdfReplaceSpecialCharacters(buttonText);
                                    var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                    for(var buttonIndex = 0; buttonIndex < buttonTextArray.length; buttonIndex++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                    // Zurücksetzen der Schriftfarbe und -größe
                                    doc.setTextColor(currentTextColor);
                                    doc.setFontSize(currentFontSize);
                                }
                                else if(jQuery(kAdminDivOuterContent[kAdminDivOuterCons]).is("div.coach_output_gbu_chart_group_container")){
                                    var kAdminDivInnerContent = jQuery(kAdminDivOuterContent[kAdminDivOuterCons]).contents();

                                    for(var kAdminDivInnerCons = 0; kAdminDivInnerCons < kAdminDivInnerContent.length; kAdminDivInnerCons++){
                                        
                                        if(jQuery(kAdminDivInnerContent[kAdminDivInnerCons]).is("div.coach_output_gbu_chart_button")){
                                            //currentHeightPosition += 3;
                                            var buttonText = jQuery(kAdminDivInnerContent[kAdminDivInnerCons]).find("button").text();
                                            var headlineTextColor =jQuery(kAdminDivInnerContent[kAdminDivInnerCons]).find("button p").css("color");
                                            var headlineFontSize = pdfGetHeadlineSize("h2");
                                            buttonText = buttonText.trim();
                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                            var currentTextColor = doc.getTextColor();
                                            var currentFontSize =  doc.getFontSize();
                                            // Schriftfarbe für Überschrift setzen
                                            doc.setTextColor(headlineTextColor);
                                            doc.setFontSize(headlineFontSize);
                                            buttonText = pdfReplaceSpecialCharacters(buttonText);
                                            var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                            for(var buttonIndex = 0; buttonIndex < buttonTextArray.length; buttonIndex++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0]; 
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            // Zurücksetzen der Schriftfarbe und -größe
                                            doc.setTextColor(currentTextColor);
                                            doc.setFontSize(currentFontSize);
                                        }
                                        else if(jQuery(kAdminDivInnerContent[kAdminDivInnerCons]).is("div.coach_output_gbu_chart_groups")){
                                            var kAdminDivGroupsContent = jQuery(kAdminDivInnerContent[kAdminDivInnerCons]).contents();
                                            for(var kAdminDivGroupsCons = 0; kAdminDivGroupsCons < kAdminDivGroupsContent.length; kAdminDivGroupsCons++){
                                                if(jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).is("p")){
                                                    var contentText = jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).text();
                                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                    for(var cText=0; cText < contentTextArray.length; cText++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0];
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                    currentHeightPosition += 1.5;
                                                }
                                                else if(jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).is("h3")){
                                                    currentHeightPosition += 3;
                                                    var headlineText = jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).text();
                                                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                    var headlineTextColor = pdfGetHeadlineColor("h3", headlineText);
                                                    var headlineFontSize = pdfGetHeadlineSize("h3");
                                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                    var currentTextColor = doc.getTextColor();
                                                    var currentFontSize = doc.getFontSize();
                                                    // Schriftfarbe für Überschrift setzen
                                                    doc.setTextColor(headlineTextColor);
                                                    doc.setFontSize(headlineFontSize);

                                                    // Ersetze Sonderzeichen in Überschrift
                                                    headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                    var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                    for(var i=0; i< headLineTextArray.length; i++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0]; 
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }

                                                    // Zurücksetzen der Schriftfarbe und -größe
                                                    doc.setTextColor(currentTextColor);
                                                    doc.setFontSize(currentFontSize);
                                                }
                                                else if(jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).is("h4")){
                                                    currentHeightPosition += 3;
                                                    var headlineText = jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).text();
                                                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                    var headlineTextColor = pdfGetHeadlineColor("h4", headlineText);
                                                    var headlineFontSize = pdfGetHeadlineSize("h4");
                                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                    var currentTextColor = doc.getTextColor();
                                                    var currentFontSize = doc.getFontSize();
                                                    // Schriftfarbe für Überschrift setzen
                                                    doc.setTextColor(headlineTextColor);
                                                    doc.setFontSize(headlineFontSize);

                                                    // Ersetze Sonderzeichen in Überschrift
                                                    headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                    var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                    for(var i=0; i< headLineTextArray.length; i++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0]; 
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }

                                                    // Zurücksetzen der Schriftfarbe und -größe
                                                    doc.setTextColor(currentTextColor);
                                                    doc.setFontSize(currentFontSize);
                                                }
                                                else if(jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).is("br")){
                                                    // Zeile passt nicht mehr auf Seite
                                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                        var docFontSize = doc.getFontSize();
                                                        var docFontStyle = "normal";
                                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                        doc = result[0]; 
                                                        currentHeightPosition = result[1];
                                                    }
                                                    var writeResult = pdfWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                                                    doc = writeResult[0];
                                                    currentHeightPosition = writeResult[1];
                                                }
                                                else if(jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).is("ul")){
                                                    var bulletpoint = "-";
                                                    var listItems = jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).contents();
                                                    var bulletpointLength = (doc.getStringUnitWidth(bulletpoint)*doc.getFontSize())/(72/25.6);

                                                    for(var listItemIndex = 0; listItemIndex < listItems.length; listItemIndex++){

                                                        if(jQuery(listItems[listItemIndex]).is("li")){
                                                            var listItemContent = jQuery(listItems[listItemIndex]).text();
                                                            listItemContent = pdfReplaceSpecialCharacters(listItemContent);
                                                            var listItemContentArray = doc.splitTextToSize(listItemContent, maxContentWidth-bulletpointLength);
                                                            for(var listItemContentIndex = 0; listItemContentIndex < listItemContentArray.length; listItemContentIndex++){
                                                                // Zeile passt nicht mehr auf Seite
                                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                    var docFontSize = doc.getFontSize();
                                                                    var docFontStyle = "normal";
                                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                    doc = result[0]; 
                                                                    currentHeightPosition = result[1];
                                                                }
                                                                // Zeichne Bulletpoint
                                                                if(listItemContentIndex == 0){
                                                                    var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                                                    doc = writeResult[0];
                                                                }
                                                                var writeResult = pdfWriteContent(doc, listItemContentArray[listItemContentIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                                                doc = writeResult[0];
                                                                currentHeightPosition = writeResult[1];
                                                            }
                                                        }
                                                    }
                                                }
                                                else if(jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).is("canvas")){
                                                    var canvasWidth = maxContentWidth;
                                                    var canvasHeight = maxContentWidth/2;

                                                    // Das Bild passt nicht auf die aktuelle Seite -> Lege eine neue Seite an
                                                    if(canvasHeight > maxHeight - pdfMarginBottom - currentHeightPosition){
                                                        var docFontSize = doc.getFontSize();
                                                        var docFontStyle = "normal";
                                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                        doc = result[0]; 
                                                        currentHeightPosition = result[1];
                                                    }

                                                    var canvasSource = kAdminDivGroupsContent[kAdminDivGroupsCons].toDataURL("image/jpeg");
                                                    doc.addImage(canvasSource, 'JPEG', pdfMarginLeft, currentHeightPosition, canvasWidth, canvasHeight, '', 'FAST');
                                                    // Füge einen Abstand unterhalb des Bildes hinzu
                                                    currentHeightPosition+= canvasHeight + 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                }
                                                else if(jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).is("div.alert")){
                                                    var alertContent = jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).contents();
                                                    for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                                        if(jQuery(alertContent[alertDivCons]).is("h5")){
                                                            currentHeightPosition += 3;
                                                            var headlineText = jQuery(alertContent[alertDivCons]).text();
                                                            headlineText = headlineText.trim();
                                                            // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                            var headlineTextColor = "rgb(0,0,0)";
                                                            var headlineFontSize = pdfGetHeadlineSize("h5");
                                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                            var currentTextColor = doc.getTextColor();
                                                            var currentFontSize = doc.getFontSize();
                                                            // Schriftfarbe für Überschrift setzen
                                                            doc.setTextColor(headlineTextColor);
                                                            doc.setFontSize(headlineFontSize);

                                                            // Ersetze Sonderzeichen in Überschrift
                                                            headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                            var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                            for(var i=0; i< headLineTextArray.length; i++){
                                                                // Zeile passt nicht mehr auf Seite
                                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                    var docFontSize = doc.getFontSize();
                                                                    var docFontStyle = "normal";
                                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                    doc = result[0]; 
                                                                    currentHeightPosition = result[1];
                                                                }
                                                                var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                                doc = writeResult[0];
                                                                currentHeightPosition = writeResult[1];
                                                            }

                                                            // Zurücksetzen der Schriftfarbe und -größe
                                                            doc.setTextColor(currentTextColor);
                                                            doc.setFontSize(currentFontSize);
                                                        }
                                                        else if(jQuery(alertContent[alertDivCons]).is("p")){
                                                            var contentText = jQuery(alertContent[alertDivCons]).text();
                                                            contentText = contentText.trim();
                                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                            for(var cText=0; cText < contentTextArray.length; cText++){
                                                                // Zeile passt nicht mehr auf Seite
                                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                    var docFontSize = doc.getFontSize();
                                                                    var docFontStyle = "normal";
                                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                    doc = result[0];
                                                                    currentHeightPosition = result[1];
                                                                }
                                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                                doc = writeResult[0];
                                                                currentHeightPosition = writeResult[1];
                                                            }
                                                        }
                                                    }
                                                    currentHeightPosition += 4;
                                                }
                                                else if(jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).is("div.coach_output_gbu_kadmin_subscales")){
                                                    
                                                    var kAdminDivSubscalesContent = jQuery(kAdminDivGroupsContent[kAdminDivGroupsCons]).contents();
                                                    
                                                    for(var kAdminDivSubscalesCons=0; kAdminDivSubscalesCons < kAdminDivSubscalesContent.length; kAdminDivSubscalesCons++){
                                                        if(jQuery(kAdminDivSubscalesContent[kAdminDivSubscalesCons]).is("div.coach_output_gbu_chart_button")){
                                                            var buttonText = jQuery(kAdminDivSubscalesContent[kAdminDivSubscalesCons]).find("button").text();
                                                            var headlineTextColor = jQuery(kAdminDivSubscalesContent[kAdminDivSubscalesCons]).find("button p").css("color");
                                                            var headlineFontSize = pdfGetHeadlineSize("h4");
                                                            buttonText = buttonText.trim();
                                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                            var currentTextColor = doc.getTextColor();
                                                            var currentFontSize =  doc.getFontSize();
                                                            // Schriftfarbe für Überschrift setzen
                                                            doc.setTextColor(headlineTextColor);
                                                            doc.setFontSize(headlineFontSize);
                                                            buttonText = pdfReplaceSpecialCharacters(buttonText);
                                                            var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                                            for(var buttonIndex = 0; buttonIndex < buttonTextArray.length; buttonIndex++){
                                                                // Zeile passt nicht mehr auf Seite
                                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                    var docFontSize = doc.getFontSize();
                                                                    var docFontStyle = "normal";
                                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                    doc = result[0]; 
                                                                    currentHeightPosition = result[1];
                                                                }
                                                                var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                                                doc = writeResult[0];
                                                                currentHeightPosition = writeResult[1];
                                                            }
                                                            // Zurücksetzen der Schriftfarbe und -größe
                                                            doc.setTextColor(currentTextColor);
                                                            doc.setFontSize(currentFontSize);
                                                        }
                                                        else if(jQuery(kAdminDivSubscalesContent[kAdminDivSubscalesCons]).is("div.coach_output_gbu_chart_subscales")){
                                                            var kAdminSubscalesContent = jQuery(kAdminDivSubscalesContent[kAdminDivSubscalesCons]).contents();
                                                            for(var kAdminSubscalesCons = 0; kAdminSubscalesCons < kAdminSubscalesContent.length; kAdminSubscalesCons++){

                                                                if(jQuery(kAdminSubscalesContent[kAdminSubscalesCons]).is("canvas")){
                                                                    var canvasWidth = maxContentWidth;
                                                                    var canvasHeight = maxContentWidth/2;

                                                                    // Das Bild passt nicht auf die aktuelle Seite -> Lege eine neue Seite an
                                                                    if(canvasHeight > maxHeight - pdfMarginBottom - currentHeightPosition){
                                                                        var docFontSize = doc.getFontSize();
                                                                        var docFontStyle = "normal";
                                                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                        doc = result[0]; 
                                                                        currentHeightPosition = result[1];
                                                                    }

                                                                    var canvasSource = kAdminSubscalesContent[kAdminSubscalesCons].toDataURL("image/jpeg");
                                                                    doc.addImage(canvasSource, 'JPEG', pdfMarginLeft, currentHeightPosition, canvasWidth, canvasHeight, '', 'FAST');
                                                                    // Füge einen Abstand unterhalb des Bildes hinzu
                                                                    currentHeightPosition+= canvasHeight + 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                                }
                                                                else if(jQuery(kAdminSubscalesContent[kAdminSubscalesCons]).is("br")){
                                                                    // Zeile passt nicht mehr auf Seite
                                                                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                        var docFontSize = doc.getFontSize();
                                                                        var docFontStyle = "normal";
                                                                        var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                        doc = result[0]; 
                                                                        currentHeightPosition = result[1];
                                                                    }
                                                                    var writeResult = pdfWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                                                                    doc = writeResult[0];
                                                                    currentHeightPosition = writeResult[1];
                                                                }
                                                                else if(jQuery(kAdminSubscalesContent[kAdminSubscalesCons]).is("table.company-table-gesamt")){
                                                                    var tableContent = jQuery(kAdminSubscalesContent[kAdminSubscalesCons]).contents();
                                                                    for(var tableCons = 0; tableCons < tableContent.length; tableCons++){

                                                                        if(jQuery(tableContent[tableCons]).is("tbody")){
                                                                            var tdElements = jQuery(tableContent[tableCons]).find("td");
                                                                            // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                                                            var fieldMarginX = 5;
                                                                            // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                                                            var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                                            // Zusätzlicher Abstand nach Zeichnen des Rahmens
                                                                            var offsetYDir =  3;
                        
                                                                            for(var tdIndex = 0; tdIndex < tdElements.length; tdIndex++){
                                                                                // Tabelle passt nicht mehr auf die aktuelle Seite
                                                                                doc.setFont(pdfFont, "bold");
                                                                                if(currentHeightPosition + 2*fieldMarginY + (doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778) > maxHeight){
                                                                                    var docFontSize = doc.getFontSize();
                                                                                    var docFontStyle = "normal";
                                                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                                    doc = result[0];
                                                                                    currentHeightPosition = result[1];
                                                                                    doc.setFont(pdfFont, "bold");
                                                                                }

                                                                                var tdText = jQuery(tdElements[tdIndex]).find("b").text();
                                                                                var tdTextDim = doc.getTextDimensions(tdText);
                                                                                if(tdIndex == 0){
                                                                                    doc = pdfDrawRectangle(doc, pdfMarginLeft, currentHeightPosition, 2*fieldMarginX+tdTextDim['w'], 2*fieldMarginY+doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778, "rgb(255,255,255)");
                                                                                    doc.text(tdText, pdfMarginLeft+fieldMarginX, currentHeightPosition+fieldMarginY+offsetYDir);
                                                                                }
                                                                                else{
                                                                                    var tdColor = jQuery(tdElements[tdIndex]).css('background-color');
                                                                                    var previousTdElementDim = doc.getTextDimensions(jQuery(tdElements[tdIndex-1]).find("b").text());
                                                                                    doc = pdfDrawRectangle(doc,pdfMarginLeft+2*fieldMarginX+previousTdElementDim['w'], currentHeightPosition, 2*fieldMarginX+tdTextDim['w'], 2*fieldMarginY+doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778, tdColor);
                                                                                    doc.text(tdText, pdfMarginLeft+3*fieldMarginX+previousTdElementDim['w'], currentHeightPosition+fieldMarginY+offsetYDir);
                                                                                }
                                                                            }
                                                                            currentHeightPosition += 20;
                                                                            doc.setFont(pdfFont, "normal");
                                                                        }
                                                                    }
                                                                }
                                                                else if(jQuery(kAdminSubscalesContent[kAdminSubscalesCons]).is("div.alert")){
                                                                    var alertContent = jQuery(kAdminSubscalesContent[kAdminSubscalesCons]).contents();
                                                                    for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                                                        if(jQuery(alertContent[alertDivCons]).is("h5")){
                                                                            currentHeightPosition += 3;
                                                                            var headlineText = jQuery(alertContent[alertDivCons]).text();
                                                                            headlineText = headlineText.trim();
                                                                            // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                                            var headlineTextColor = "rgb(0,0,0)";
                                                                            var headlineFontSize = pdfGetHeadlineSize("h5");
                                                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                                            var currentTextColor = doc.getTextColor();
                                                                            var currentFontSize = doc.getFontSize();
                                                                            // Schriftfarbe für Überschrift setzen
                                                                            doc.setTextColor(headlineTextColor);
                                                                            doc.setFontSize(headlineFontSize);

                                                                            // Ersetze Sonderzeichen in Überschrift
                                                                            headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                                            var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                                            for(var i=0; i< headLineTextArray.length; i++){
                                                                                // Zeile passt nicht mehr auf Seite
                                                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                                    var docFontSize = doc.getFontSize();
                                                                                    var docFontStyle = "normal";
                                                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                                    doc = result[0]; 
                                                                                    currentHeightPosition = result[1];
                                                                                }
                                                                                var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                                                doc = writeResult[0];
                                                                                currentHeightPosition = writeResult[1];
                                                                            }

                                                                            // Zurücksetzen der Schriftfarbe und -größe
                                                                            doc.setTextColor(currentTextColor);
                                                                            doc.setFontSize(currentFontSize);
                                                                        }
                                                                        else if(jQuery(alertContent[alertDivCons]).is("p")){
                                                                            var contentText = jQuery(alertContent[alertDivCons]).text();
                                                                            contentText = contentText.trim();
                                                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                                            for(var cText=0; cText < contentTextArray.length; cText++){
                                                                                // Zeile passt nicht mehr auf Seite
                                                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                                    var docFontSize = doc.getFontSize();
                                                                                    var docFontStyle = "normal";
                                                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                                    doc = result[0];
                                                                                    currentHeightPosition = result[1];
                                                                                }
                                                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                                                doc = writeResult[0];
                                                                                currentHeightPosition = writeResult[1];
                                                                            }
                                                                        }
                                                                    }
                                                                    currentHeightPosition += 4;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                        }
                        else if(jQuery(gbuChartContainerContents[containerContent]).is("div.coach_output_gbu_chart_container_teamleader")){
                            var teamleaderDivContent = jQuery(gbuChartContainerContents[containerContent]).contents();

                            for(var teamleaderDivCons = 0; teamleaderDivCons < teamleaderDivContent.length; teamleaderDivCons++){
                                if(jQuery(teamleaderDivContent[teamleaderDivCons]).is("div.coach_output_gbu_chart_button")){
                                    var buttonText = jQuery(teamleaderDivContent[teamleaderDivCons]).find("button").text();
                                    var headlineTextColor = jQuery(teamleaderDivContent[teamleaderDivCons]).find("button p").css("color");
                                    var headlineFontSize = pdfGetHeadlineSize("h2");
                                    buttonText = buttonText.trim();
                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                    var currentTextColor = doc.getTextColor();
                                    var currentFontSize =  doc.getFontSize();
                                    // Schriftfarbe für Überschrift setzen
                                    doc.setTextColor(headlineTextColor);
                                    doc.setFontSize(headlineFontSize);
                                    buttonText = pdfReplaceSpecialCharacters(buttonText);
                                    var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                    for(var buttonIndex = 0; buttonIndex < buttonTextArray.length; buttonIndex++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                    // Zurücksetzen der Schriftfarbe und -größe
                                    doc.setTextColor(currentTextColor);
                                    doc.setFontSize(currentFontSize);
                                }
                                else if(jQuery(teamleaderDivContent[teamleaderDivCons]).is("div.coach_output_gbu_chart_groups")){
                                    var teamleaderThisGroupContent = jQuery(teamleaderDivContent[teamleaderDivCons]).contents();
                                    for(var teamleaderThisGroupCons = 0; teamleaderThisGroupCons < teamleaderThisGroupContent.length; teamleaderThisGroupCons++){
                                        
                                        if(jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).is("p")){
                                            var contentText = jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).text();
                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                            for(var cText=0; cText < contentTextArray.length; cText++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0];
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            currentHeightPosition += 1.5; 
                                        }
                                        else if(jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).is("h3")){
                                            currentHeightPosition += 3;
                                            var headlineText = jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).text();
                                            // Abrufen der Schriftfarbe und -größe für die Überschrift
                                            var headlineTextColor = pdfGetHeadlineColor("h3", headlineText);
                                            var headlineFontSize = pdfGetHeadlineSize("h3");
                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                            var currentTextColor = doc.getTextColor();
                                            var currentFontSize = doc.getFontSize();
                                            // Schriftfarbe für Überschrift setzen
                                            doc.setTextColor(headlineTextColor);
                                            doc.setFontSize(headlineFontSize);

                                             // Ersetze Sonderzeichen in Überschrift
                                            headlineText = pdfReplaceSpecialCharacters(headlineText);
                                            var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                            for(var i=0; i< headLineTextArray.length; i++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0]; 
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }

                                            // Zurücksetzen der Schriftfarbe und -größe
                                            doc.setTextColor(currentTextColor);
                                            doc.setFontSize(currentFontSize);
                                        }
                                        else if(jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).is("h4")){
                                            currentHeightPosition += 3;
                                            var headlineText = jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).text();
                                            // Abrufen der Schriftfarbe und -größe für die Überschrift
                                            var headlineTextColor = pdfGetHeadlineColor("h4", headlineText);
                                            var headlineFontSize = pdfGetHeadlineSize("h4");
                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                            var currentTextColor = doc.getTextColor();
                                            var currentFontSize = doc.getFontSize();
                                            // Schriftfarbe für Überschrift setzen
                                            doc.setTextColor(headlineTextColor);
                                            doc.setFontSize(headlineFontSize);

                                             // Ersetze Sonderzeichen in Überschrift
                                            headlineText = pdfReplaceSpecialCharacters(headlineText);
                                            var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                            for(var i=0; i< headLineTextArray.length; i++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0]; 
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }

                                            // Zurücksetzen der Schriftfarbe und -größe
                                            doc.setTextColor(currentTextColor);
                                            doc.setFontSize(currentFontSize);
                                        }
                                        else if(jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).is("br")){
                                            // Zeile passt nicht mehr auf Seite
                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                            }
                                            var writeResult = pdfWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                                            doc = writeResult[0];
                                            currentHeightPosition = writeResult[1];
                                        }
                                        else if(jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).is("ul")){
                                            var bulletpoint = "-";
                                            var listItems = jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).contents();
                                            var bulletpointLength = (doc.getStringUnitWidth(bulletpoint)*doc.getFontSize())/(72/25.6);

                                            for(var listItemIndex = 0; listItemIndex < listItems.length; listItemIndex++){

                                                if(jQuery(listItems[listItemIndex]).is("li")){
                                                    var listItemContent = jQuery(listItems[listItemIndex]).text();
                                                    listItemContent = pdfReplaceSpecialCharacters(listItemContent);
                                                    var listItemContentArray = doc.splitTextToSize(listItemContent, maxContentWidth-bulletpointLength);
                                                    for(var listItemContentIndex = 0; listItemContentIndex < listItemContentArray.length; listItemContentIndex++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0]; 
                                                            currentHeightPosition = result[1];
                                                        }
                                                        // Zeichne Bulletpoint
                                                        if(listItemContentIndex == 0){
                                                            var writeResult = pdfWriteContent(doc, bulletpoint, pdfMarginLeft, currentHeightPosition);
                                                            doc = writeResult[0];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, listItemContentArray[listItemContentIndex], pdfMarginLeft+bulletpointLength, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                }
                                            }
                                        }
                                        else if(jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).is("canvas")){

                                            var canvasWidth = maxContentWidth;
                                            var canvasHeight = maxContentWidth/2;

                                            // Das Bild passt nicht auf die aktuelle Seite -> Lege eine neue Seite an
                                            if(canvasHeight > maxHeight - pdfMarginBottom - currentHeightPosition){
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                doc = result[0]; 
                                                currentHeightPosition = result[1];
                                            }

                                            var canvasSource = teamleaderThisGroupContent[teamleaderThisGroupCons].toDataURL("image/jpeg");
                                            doc.addImage(canvasSource, 'JPEG', pdfMarginLeft, currentHeightPosition, canvasWidth, canvasHeight, '', 'FAST');
                                            // Füge einen Abstand unterhalb des Bildes hinzu
                                            currentHeightPosition+= canvasHeight + 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                        }
                                        else if(jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).is("div.alert")){
                                            var alertContent = jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).contents();
                                            for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                                if(jQuery(alertContent[alertDivCons]).is("h5")){
                                                    currentHeightPosition += 3;
                                                    var headlineText = jQuery(alertContent[alertDivCons]).text();
                                                    headlineText = headlineText.trim();
                                                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                    var headlineTextColor = "rgb(0,0,0)";
                                                    var headlineFontSize = pdfGetHeadlineSize("h5");
                                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                    var currentTextColor = doc.getTextColor();
                                                    var currentFontSize = doc.getFontSize();
                                                    // Schriftfarbe für Überschrift setzen
                                                    doc.setTextColor(headlineTextColor);
                                                    doc.setFontSize(headlineFontSize);

                                                    // Ersetze Sonderzeichen in Überschrift
                                                    headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                    var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                    for(var i=0; i< headLineTextArray.length; i++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0]; 
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }

                                                    // Zurücksetzen der Schriftfarbe und -größe
                                                    doc.setTextColor(currentTextColor);
                                                    doc.setFontSize(currentFontSize);
                                                }
                                                else if(jQuery(alertContent[alertDivCons]).is("p")){
                                                    var contentText = jQuery(alertContent[alertDivCons]).text();
                                                    contentText = contentText.trim();
                                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                    for(var cText=0; cText < contentTextArray.length; cText++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0];
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                }
                                            }
                                            currentHeightPosition += 4;
                                        }
                                        else if(jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).is("div.coach_output_gbu_teamleader_subscales")){
                                            var teamleaderDivSubscalesContent = jQuery(teamleaderThisGroupContent[teamleaderThisGroupCons]).contents();
                                            for(var teamleaderDivSubscalesCons = 0; teamleaderDivSubscalesCons < teamleaderDivSubscalesContent.length; teamleaderDivSubscalesCons++){

                                                if(jQuery(teamleaderDivSubscalesContent[teamleaderDivSubscalesCons]).is("div.coach_output_gbu_chart_button")){
                                                    var buttonText = jQuery(teamleaderDivSubscalesContent[teamleaderDivSubscalesCons]).find("button").text();
                                                    var headlineTextColor = jQuery(teamleaderDivSubscalesContent[teamleaderDivSubscalesCons]).find("button p").css("color");
                                                    var headlineFontSize = pdfGetHeadlineSize("h4");
                                                    buttonText = buttonText.trim();
                                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                    var currentTextColor = doc.getTextColor();
                                                    var currentFontSize =  doc.getFontSize();
                                                    // Schriftfarbe für Überschrift setzen
                                                    doc.setTextColor(headlineTextColor);
                                                    doc.setFontSize(headlineFontSize);
                                                    buttonText = pdfReplaceSpecialCharacters(buttonText);
                                                    var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                                    for(var buttonIndex = 0; buttonIndex < buttonTextArray.length; buttonIndex++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0]; 
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                    // Zurücksetzen der Schriftfarbe und -größe
                                                    doc.setTextColor(currentTextColor);
                                                    doc.setFontSize(currentFontSize);
                                                }
                                                else if(jQuery(teamleaderDivSubscalesContent[teamleaderDivSubscalesCons]).is("div.coach_output_gbu_chart_subscales")){
                                                    var teamleaderSubscalesContent = jQuery(teamleaderDivSubscalesContent[teamleaderDivSubscalesCons]).contents();
                                                    for(var teamleaderSubscalesCons = 0; teamleaderSubscalesCons < teamleaderSubscalesContent.length; teamleaderSubscalesCons++){
                                                        if(jQuery(teamleaderSubscalesContent[teamleaderSubscalesCons]).is("canvas")){
                                                            var canvasWidth = maxContentWidth;
                                                            var canvasHeight = maxContentWidth/2;

                                                            // Das Bild passt nicht auf die aktuelle Seite -> Lege eine neue Seite an
                                                            if(canvasHeight > maxHeight - pdfMarginBottom - currentHeightPosition){
                                                                var docFontSize = doc.getFontSize();
                                                                var docFontStyle = "normal";
                                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                doc = result[0]; 
                                                                currentHeightPosition = result[1];
                                                            }

                                                            var canvasSource = teamleaderSubscalesContent[teamleaderSubscalesCons].toDataURL("image/jpeg");
                                                            doc.addImage(canvasSource, 'JPEG', pdfMarginLeft, currentHeightPosition, canvasWidth, canvasHeight, '', 'FAST');
                                                            // Füge einen Abstand unterhalb des Bildes hinzu
                                                            currentHeightPosition+= canvasHeight + 2*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                        }
                                                        else if(jQuery(teamleaderSubscalesContent[teamleaderSubscalesCons]).is("br")){
                                                            // Zeile passt nicht mehr auf Seite
                                                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                var docFontSize = doc.getFontSize();
                                                                var docFontStyle = "normal";
                                                                var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                doc = result[0]; 
                                                                currentHeightPosition = result[1];
                                                            }
                                                            var writeResult = pdfWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                                                            doc = writeResult[0];
                                                            currentHeightPosition = writeResult[1];
                                                        }
                                                        else if(jQuery(teamleaderSubscalesContent[teamleaderSubscalesCons]).is("table.company-table-gesamt")){
                                                            var tableContent = jQuery(teamleaderSubscalesContent[teamleaderSubscalesCons]).contents();
                                                            for(var tableCons = 0; tableCons < tableContent.length; tableCons++){

                                                                if(jQuery(tableContent[tableCons]).is("tbody")){
                                                                    var tdElements = jQuery(tableContent[tableCons]).find("td");
                                                                    // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                                                    var fieldMarginX = 5;
                                                                    // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                                                    var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                                    // Zusätzlicher Abstand nach Zeichnen des Rahmens
                                                                    var offsetYDir =  3;
                        
                                                                    for(var tdIndex = 0; tdIndex < tdElements.length; tdIndex++){
                                                                        // Tabelle passt nicht mehr auf die aktuelle Seite
                                                                        doc.setFont(pdfFont, "bold");
                                                                        if(currentHeightPosition + 2*fieldMarginY + (doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778) > maxHeight){
                                                                            var docFontSize = doc.getFontSize();
                                                                            var docFontStyle = "normal";
                                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                            doc = result[0];
                                                                            currentHeightPosition = result[1];
                                                                            doc.setFont(pdfFont, "bold");
                                                                        }

                                                                        var tdText = jQuery(tdElements[tdIndex]).find("b").text();
                                                                        var tdTextDim = doc.getTextDimensions(tdText);
                                                                        if(tdIndex == 0){
                                                                            doc = pdfDrawRectangle(doc, pdfMarginLeft, currentHeightPosition, 2*fieldMarginX+tdTextDim['w'], 2*fieldMarginY+doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778, "rgb(255,255,255)");
                                                                            doc.text(tdText, pdfMarginLeft+fieldMarginX, currentHeightPosition+fieldMarginY+offsetYDir);
                                                                        }
                                                                        else{
                                                                            var tdColor = jQuery(tdElements[tdIndex]).css('background-color');
                                                                            var previousTdElementDim = doc.getTextDimensions(jQuery(tdElements[tdIndex-1]).find("b").text());
                                                                            doc = pdfDrawRectangle(doc,pdfMarginLeft+2*fieldMarginX+previousTdElementDim['w'], currentHeightPosition, 2*fieldMarginX+tdTextDim['w'], 2*fieldMarginY+doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778, tdColor);
                                                                            doc.text(tdText, pdfMarginLeft+3*fieldMarginX+previousTdElementDim['w'], currentHeightPosition+fieldMarginY+offsetYDir);
                                                                        }
                                                                    }
                                                                    currentHeightPosition += 20;
                                                                    doc.setFont(pdfFont, "normal");
                                                                }
                                                            }
                                                        }
                                                        else if(jQuery(teamleaderSubscalesContent[teamleaderSubscalesCons]).is("div.alert")){
                                                            var alertContent = jQuery(teamleaderSubscalesContent[teamleaderSubscalesCons]).contents();
                                                            for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                                                if(jQuery(alertContent[alertDivCons]).is("h5")){
                                                                    currentHeightPosition += 3;
                                                                    var headlineText = jQuery(alertContent[alertDivCons]).text();
                                                                    headlineText = headlineText.trim();
                                                                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                                                                    var headlineTextColor = "rgb(0,0,0)";
                                                                    var headlineFontSize = pdfGetHeadlineSize("h5");
                                                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                                                    var currentTextColor = doc.getTextColor();
                                                                    var currentFontSize = doc.getFontSize();
                                                                    // Schriftfarbe für Überschrift setzen
                                                                    doc.setTextColor(headlineTextColor);
                                                                    doc.setFontSize(headlineFontSize);

                                                                    // Ersetze Sonderzeichen in Überschrift
                                                                    headlineText = pdfReplaceSpecialCharacters(headlineText);
                                                                    var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                                                    for(var i=0; i< headLineTextArray.length; i++){
                                                                        // Zeile passt nicht mehr auf Seite
                                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                            var docFontSize = doc.getFontSize();
                                                                            var docFontStyle = "normal";
                                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                            doc = result[0]; 
                                                                            currentHeightPosition = result[1];
                                                                        }
                                                                        var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                                                        doc = writeResult[0];
                                                                        currentHeightPosition = writeResult[1];
                                                                    }

                                                                    // Zurücksetzen der Schriftfarbe und -größe
                                                                    doc.setTextColor(currentTextColor);
                                                                    doc.setFontSize(currentFontSize);
                                                                }
                                                                else if(jQuery(alertContent[alertDivCons]).is("p")){
                                                                    var contentText = jQuery(alertContent[alertDivCons]).text();
                                                                    contentText = contentText.trim();
                                                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                                    for(var cText=0; cText < contentTextArray.length; cText++){
                                                                        // Zeile passt nicht mehr auf Seite
                                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                                            var docFontSize = doc.getFontSize();
                                                                            var docFontStyle = "normal";
                                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                                            doc = result[0];
                                                                            currentHeightPosition = result[1];
                                                                        }
                                                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                                        doc = writeResult[0];
                                                                        currentHeightPosition = writeResult[1];
                                                                    }
                                                                }
                                                            }
                                                            currentHeightPosition += 4;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else if(jQuery(gbuChartContainerContents[containerContent]).is("div.alert")){
                            var alertContent = jQuery(gbuChartContainerContents[containerContent]).contents();
                            for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                if(jQuery(alertContent[alertDivCons]).is("h5")){
                                    currentHeightPosition += 3;
                                    var headlineText = jQuery(alertContent[alertDivCons]).text();
                                    headlineText = headlineText.trim();
                                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                                    var headlineTextColor = "rgb(0,0,0)";
                                    var headlineFontSize = pdfGetHeadlineSize("h5");
                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                    var currentTextColor = doc.getTextColor();
                                    var currentFontSize = doc.getFontSize();
                                    // Schriftfarbe für Überschrift setzen
                                    doc.setTextColor(headlineTextColor);
                                    doc.setFontSize(headlineFontSize);

                                    // Ersetze Sonderzeichen in Überschrift
                                    headlineText = pdfReplaceSpecialCharacters(headlineText);
                                    var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                    for(var i=0; i< headLineTextArray.length; i++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }

                                    // Zurücksetzen der Schriftfarbe und -größe
                                    doc.setTextColor(currentTextColor);
                                    doc.setFontSize(currentFontSize);
                                }
                                else if(jQuery(alertContent[alertDivCons]).is("p")){
                                    var contentText = jQuery(alertContent[alertDivCons]).text();
                                    contentText = contentText.trim();
                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                    for(var cText=0; cText < contentTextArray.length; cText++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0];
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                }
                            }
                            currentHeightPosition += 4;
                        }
                    }
                }
                // Shortcode tspv2_coach_output_gbu_mittelwerte
                else if(currentLine.startsWith("[tspv2_coach_output_gbu_mittelwerte ")){
                    // Abrufen der ID-Liste
                    var idArray = [];
                    if(currentLine.match(/ids="/) !== null){
                        var idStringTemp = currentLine.match(/ids="([0-9, ]+)"/);
                        var idArrayTemp = idStringTemp[1].split(",");
                        for(var id=0; id < idArrayTemp.length; id++){
                            idArray.push(idArrayTemp[id].trim());
                        }
                    }
                    else if(currentLine.match(/ids='/) !== null){
                        var idStringTemp = currentLine.match(/ids='([0-9, ]+)'/);
                        var idArrayTemp = idStringTemp[1].split(",");
                        for(var id=0; id < idArrayTemp.length; id++){
                            idArray.push(idArrayTemp[id].trim());
                        }
                    }
                    var gbuIdString = "";
                    for(var idArrayIndex = 0; idArrayIndex < idArray.length; idArrayIndex++){
                        if(idArrayIndex != 0){
                            gbuIdString += "_";
                        }
                        gbuIdString += idArray[idArrayIndex];
                    }
                    var gbuMittelwerteContent = jQuery('#coach_output_gbu_mittelwerte_'+gbuIdString).contents();
                    for(var gbuMittelwerteCons = 0; gbuMittelwerteCons < gbuMittelwerteContent.length; gbuMittelwerteCons++){
                        if(jQuery(gbuMittelwerteContent[gbuMittelwerteCons]).is("div.alert")){
                            var alertContent = jQuery(gbuMittelwerteContent[gbuMittelwerteCons]).contents();
                            for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                                if(jQuery(alertContent[alertDivCons]).is("h5")){
                                    currentHeightPosition += 3;
                                    var headlineText = jQuery(alertContent[alertDivCons]).text();
                                    headlineText = headlineText.trim();
                                    // Abrufen der Schriftfarbe und -größe für die Überschrift
                                    var headlineTextColor = "rgb(0,0,0)";
                                    var headlineFontSize = pdfGetHeadlineSize("h5");
                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                    var currentTextColor = doc.getTextColor();
                                    var currentFontSize = doc.getFontSize();
                                    // Schriftfarbe für Überschrift setzen
                                    doc.setTextColor(headlineTextColor);
                                    doc.setFontSize(headlineFontSize);

                                    // Ersetze Sonderzeichen in Überschrift
                                    headlineText = pdfReplaceSpecialCharacters(headlineText);
                                    var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                                    for(var i=0; i< headLineTextArray.length; i++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }

                                    // Zurücksetzen der Schriftfarbe und -größe
                                    doc.setTextColor(currentTextColor);
                                    doc.setFontSize(currentFontSize);
                                }
                                else if(jQuery(alertContent[alertDivCons]).is("p")){
                                    var contentText = jQuery(alertContent[alertDivCons]).text();
                                    contentText = contentText.trim();
                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                    for(var cText=0; cText < contentTextArray.length; cText++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0];
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                }
                            }
                            currentHeightPosition += 4;
                        }
                        else if(jQuery(gbuMittelwerteContent[gbuMittelwerteCons]).is("div.coach_output_gbu_mittelwerte_container_boss") || jQuery(gbuMittelwerteContent[gbuMittelwerteCons]).is("div.coach_output_gbu_mittelwerte_container_teamleader")){
                            var gbuMittelwerteDivContent = jQuery(gbuMittelwerteContent[gbuMittelwerteCons]).contents();
                            for(var gbuMittelwerteDivCons = 0; gbuMittelwerteDivCons < gbuMittelwerteDivContent.length; gbuMittelwerteDivCons++){
                                if(jQuery(gbuMittelwerteDivContent[gbuMittelwerteDivCons]).is("p")){
                                    var contentText = jQuery(gbuMittelwerteDivContent[gbuMittelwerteDivCons]).text();
                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                    for(var cText=0; cText < contentTextArray.length; cText++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0];
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                    currentHeightPosition += 4.5;
                                }
                                else if(jQuery(gbuMittelwerteDivContent[gbuMittelwerteDivCons]).is("table")){
                                    var tableHead = jQuery(gbuMittelwerteDivContent[gbuMittelwerteDivCons]).find("thead");
                                    var tableHeadTh = jQuery(tableHead).find("tr th");
                                    var tableHeadContent = [];
                                    for(var tableHeadThIndex = 0; tableHeadThIndex < tableHeadTh.length; tableHeadThIndex++){
                                        if(jQuery(tableHeadTh[tableHeadThIndex]).find("select").length){
                                            var tabelSelectElement = jQuery(tableHeadTh[tableHeadThIndex]).find("select");
                                            tableHeadContent.push(jQuery(tabelSelectElement).find("option:selected").text());
                                        }
                                        else{
                                            tableHeadContent.push(jQuery(tableHeadTh[tableHeadThIndex]).text());
                                        }
                                    }
                                    // Bestimme maximale Breite für eine Cell
                                    var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, tableHeadContent);
                                    // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                    var fieldMarginX = 5;
                                    // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                    var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                    // Maximale Breite für den Inhalt eines Feldes
                                    var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                                    // Zwischenspeichern der aktuellen Position des Texts
                                    var tempCurrentHeightPosition = currentHeightPosition;
                                    // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
                                    var maxCurrentHeightPosition = currentHeightPosition;
                                    // Offset zwischen einzelnen Feldern in Y-Richtung
                                    var offsetYDir = 1.5;
                                    // Zwischenspeichern der aktuellen Seite(nzahl)
                                    var tempPage = doc.page;
                                    // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                    var maxPage = doc.page;

                                    // Aktuelle Position des Rahmens
                                    var currentRectPosition = currentHeightPosition;
                                    // Zwischenspeichern der aktuellen Position des Rahmens
                                    var tempRectPosition = currentRectPosition;

                                    // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zeilen dieser Reihe
                                    var maxLinesThisRow = 0;
                                    for(var cellIndex1 = 0; cellIndex1 < tableHeadContent.length; cellIndex1++){
                                        var thisCellContent = pdfReplaceSpecialCharacters(tableHeadContent[cellIndex1]);
                                        var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);

                                        if(thisCellContentArray.length > maxLinesThisRow){
                                            maxLinesThisRow = thisCellContentArray.length;
                                        }
                                    }

                                    for(var cellIndex2 = 0; cellIndex2 < tableHeadContent.length; cellIndex2++){

                                        // Zurücksetzen der Position
                                        currentHeightPosition = tempCurrentHeightPosition;
                                        doc.page = tempPage;
                                        doc.setPage(tempPage);
                                        // Position für Rahmen zurücksetzen
                                        currentRectPosition = tempRectPosition;

                                        var thisCellContent = pdfReplaceSpecialCharacters(tableHeadContent[cellIndex2]);
                                        var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);
                                        // Zählvariable für Schleife
                                        var linesToDraw = maxLinesThisRow;
                                        // Drucke Rahmen und Inhalt
                                        while(linesToDraw > 0){
                                            // Berechne übrigens Platz auf Seite
                                            var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                            // Anzahl an freien Zeilen für Inhalt auf Seite
                                            var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                            // Es kann mindestens eine Zeile gezeichnet werden
                                            if(linesAvailable > 0){
                                                // Zeilen, die auf dieser Seite gezeichnet werden können
                                                var linesThisPage = 0
                                                if(linesAvailable >= linesToDraw){
                                                    linesThisPage = linesToDraw;
                                                }
                                                else{
                                                    linesThisPage = linesAvailable;
                                                }
                                                // Zeichne Rahmen
                                                var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*cellIndex2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, "rgb(255,255,255)");
                                                currentRectPosition += heightThisRect+2*fieldMarginY;
                                    
                                                while(linesThisPage > 0){
                                                    // Inhalt schreiben, sofern vorhanden
                                                    if(thisCellContentArray.length > 0){
                                                        doc.setFont(pdfFont, "normal");
                                                        var result = pdfWriteContent(doc, thisCellContentArray[0], pdfMarginLeft+cellIndex2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                        doc = result[0];
                                                        currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                        thisCellContentArray.shift();
                                                        doc.setFont(pdfFont, "normal");
                                                    }
                                                    // Zählvariable innere Schleife anpassen
                                                    linesThisPage--;
                                                    // Zählvariable äußere Schleife anpassen
                                                    linesToDraw--;
                                                }
                                            }
                                            // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                            else{
                                                var docFontSize = doc.getFontSize();
                                                var docFontStyle = "normal";
                                                var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                doc = result[0];
                                                currentHeightPosition = result[1];
                                                maxPage = result[2];
                                                currentRectPosition = currentHeightPosition;
                                            }
                                        }
                                    }
                                    currentHeightPosition = currentRectPosition;

                                    var tableBodyRows = jQuery(gbuMittelwerteDivContent[gbuMittelwerteDivCons]).find("tbody tr");
                                    for(var tableBodyRow = 0; tableBodyRow < tableBodyRows.length; tableBodyRow++){
                                        var tableRowTd = jQuery(tableBodyRows[tableBodyRow]).find("td:not(.d-none)");
                                        var tableRowTdContent = [];
                                        for(var tableRowTdIndex = 0; tableRowTdIndex < tableRowTd.length; tableRowTdIndex++){
                                            tableRowTdContent.push(jQuery(tableRowTd[tableRowTdIndex]).text());
                                        }

                                        // Bestimme maximale Breite für eine Cell
                                        var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, tableRowTdContent);
                                        // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                        var fieldMarginX = 5;
                                        // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                        var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                        // Maximale Breite für den Inhalt eines Feldes
                                        var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                                        // Zwischenspeichern der aktuellen Position des Texts
                                        var tempCurrentHeightPosition = currentHeightPosition;
                                        // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
                                        var maxCurrentHeightPosition = currentHeightPosition;
                                        // Offset zwischen einzelnen Feldern in Y-Richtung
                                        var offsetYDir = 1.5;
                                        // Zwischenspeichern der aktuellen Seite(nzahl)
                                        var tempPage = doc.page;
                                        // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                        var maxPage = doc.page;

                                        // Aktuelle Position des Rahmens
                                        var currentRectPosition = currentHeightPosition;
                                        // Zwischenspeichern der aktuellen Position des Rahmens
                                        var tempRectPosition = currentRectPosition;

                                        // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zeilen dieser Reihe
                                        var maxLinesThisRow = 0;
                                        for(var cellIndex1 = 0; cellIndex1 < tableRowTdContent.length; cellIndex1++){
                                            var thisCellContent = pdfReplaceSpecialCharacters(tableRowTdContent[cellIndex1]);
                                            var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);

                                            if(thisCellContentArray.length > maxLinesThisRow){
                                                maxLinesThisRow = thisCellContentArray.length;
                                            }
                                        }

                                        for(var cellIndex2 = 0; cellIndex2 < tableRowTdContent.length; cellIndex2++){
                                            // Zurücksetzen der Position
                                            currentHeightPosition = tempCurrentHeightPosition;
                                            doc.page = tempPage;
                                            doc.setPage(tempPage);
                                            // Position für Rahmen zurücksetzen
                                            currentRectPosition = tempRectPosition;

                                            var thisCellContent = pdfReplaceSpecialCharacters(tableRowTdContent[cellIndex2]);
                                            var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);
                                            var thisCellColor = jQuery(tableRowTd[cellIndex2]).css('background-color');

                                            // Zählvariable für Schleife
                                            var linesToDraw = maxLinesThisRow;
                                            // Drucke Rahmen und Inhalt
                                            while(linesToDraw > 0){
                                                // Berechne übrigens Platz auf Seite
                                                var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                                // Anzahl an freien Zeilen für Inhalt auf Seite
                                                var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                                // Es kann mindestens eine Zeile gezeichnet werden
                                                if(linesAvailable > 0){
                                                    // Zeilen, die auf dieser Seite gezeichnet werden können
                                                    var linesThisPage = 0
                                                    if(linesAvailable >= linesToDraw){
                                                        linesThisPage = linesToDraw;
                                                    }
                                                    else{
                                                        linesThisPage = linesAvailable;
                                                    }
                                                    // Zeichne Rahmen
                                                    var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                    doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*cellIndex2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, thisCellColor);
                                                    currentRectPosition += heightThisRect+2*fieldMarginY;
                                    
                                                    while(linesThisPage > 0){
                                                        // Inhalt schreiben, sofern vorhanden
                                                        if(thisCellContentArray.length > 0){
                                                            doc.setFont(pdfFont, "normal");
                                                            var result = pdfWriteContent(doc, thisCellContentArray[0], pdfMarginLeft+cellIndex2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                            doc = result[0];
                                                            currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                            thisCellContentArray.shift();
                                                            doc.setFont(pdfFont, "normal");
                                                        }
                                                        // Zählvariable innere Schleife anpassen
                                                        linesThisPage--;
                                                        // Zählvariable äußere Schleife anpassen
                                                        linesToDraw--;
                                                    }
                                                }
                                                // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                                else{
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                    doc = result[0];
                                                    currentHeightPosition = result[1];
                                                    maxPage = result[2];
                                                    currentRectPosition = currentHeightPosition;
                                                }
                                            }
                                        }
                                        currentHeightPosition = currentRectPosition;
                                    }

                                    currentHeightPosition += 7.5;
                                }
                                else if(jQuery(gbuMittelwerteDivContent[gbuMittelwerteDivCons]).is("div.coach_output_gbu_mittelwerte_button")){
                                    var buttonText = jQuery(gbuMittelwerteDivContent[gbuMittelwerteDivCons]).find("button").text();
                                    var headlineTextColor = jQuery(gbuMittelwerteContent[gbuMittelwerteCons]).find("button p").css("color");
                                    var headlineFontSize = pdfGetHeadlineSize("h4");
                                    buttonText = buttonText.trim();
                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                    var currentTextColor = doc.getTextColor();
                                    var currentFontSize =  doc.getFontSize();
                                    // Schriftfarbe für Überschrift setzen
                                    doc.setTextColor(headlineTextColor);
                                    doc.setFontSize(headlineFontSize);
                                    buttonText = pdfReplaceSpecialCharacters(buttonText);
                                    var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                    for(var buttonIndex = 0; buttonIndex < buttonTextArray.length; buttonIndex++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                    // Zurücksetzen der Schriftfarbe und -größe
                                    doc.setTextColor(currentTextColor);
                                    doc.setFontSize(currentFontSize);
                                }
                                else if(jQuery(gbuMittelwerteDivContent[gbuMittelwerteDivCons]).is("div.coach_output_gbu_mittelwerte_items")){
                                    var gbuMittelwerteItemsDivContent = jQuery(gbuMittelwerteDivContent[gbuMittelwerteDivCons]).contents();
                                    for(var gbuMittelwerteItemsDivCons = 0; gbuMittelwerteItemsDivCons < gbuMittelwerteItemsDivContent.length;gbuMittelwerteItemsDivCons++){

                                        if(jQuery(gbuMittelwerteItemsDivContent[gbuMittelwerteItemsDivCons]).is("p")){
                                            var contentText = jQuery(gbuMittelwerteItemsDivContent[gbuMittelwerteItemsDivCons]).text();
                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                            for(var cText=0; cText < contentTextArray.length; cText++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0];
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            currentHeightPosition += 4.5;
                                        }
                                        else if(jQuery(gbuMittelwerteItemsDivContent[gbuMittelwerteItemsDivCons]).is("table")){
                                            var tableHead = jQuery(gbuMittelwerteItemsDivContent[gbuMittelwerteItemsDivCons]).find("thead");
                                            var tableHeadTh = jQuery(tableHead).find("tr th");
                                            var tableHeadContent = [];
                                            for(var tableHeadThIndex = 0; tableHeadThIndex < tableHeadTh.length; tableHeadThIndex++){
                                                if(jQuery(tableHeadTh[tableHeadThIndex]).find("select").length){
                                                    var tabelSelectElement = jQuery(tableHeadTh[tableHeadThIndex]).find("select");
                                                    tableHeadContent.push(jQuery(tabelSelectElement).find("option:selected").text());
                                                }
                                                else{
                                                    tableHeadContent.push(jQuery(tableHeadTh[tableHeadThIndex]).text());
                                                }
                                            }
                                            // Bestimme maximale Breite für eine Cell
                                            var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, tableHeadContent);
                                            // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                            var fieldMarginX = 5;
                                            // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                            var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                            // Maximale Breite für den Inhalt eines Feldes
                                            var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                                            // Zwischenspeichern der aktuellen Position des Texts
                                            var tempCurrentHeightPosition = currentHeightPosition;
                                            // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
                                            var maxCurrentHeightPosition = currentHeightPosition;
                                            // Offset zwischen einzelnen Feldern in Y-Richtung
                                            var offsetYDir = 1.5;
                                            // Zwischenspeichern der aktuellen Seite(nzahl)
                                            var tempPage = doc.page;
                                            // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                            var maxPage = doc.page;

                                            // Aktuelle Position des Rahmens
                                            var currentRectPosition = currentHeightPosition;
                                            // Zwischenspeichern der aktuellen Position des Rahmens
                                            var tempRectPosition = currentRectPosition;

                                            // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zeilen dieser Reihe
                                            var maxLinesThisRow = 0;
                                            for(var cellIndex1 = 0; cellIndex1 < tableHeadContent.length; cellIndex1++){
                                                var thisCellContent = pdfReplaceSpecialCharacters(tableHeadContent[cellIndex1]);
                                                var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);

                                                if(thisCellContentArray.length > maxLinesThisRow){
                                                    maxLinesThisRow = thisCellContentArray.length;
                                                }
                                            }

                                            for(var cellIndex2 = 0; cellIndex2 < tableHeadContent.length; cellIndex2++){

                                                // Zurücksetzen der Position
                                                currentHeightPosition = tempCurrentHeightPosition;
                                                doc.page = tempPage;
                                                doc.setPage(tempPage);
                                                // Position für Rahmen zurücksetzen
                                                currentRectPosition = tempRectPosition;

                                                var thisCellContent = pdfReplaceSpecialCharacters(tableHeadContent[cellIndex2]);
                                                var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);
                                                // Zählvariable für Schleife
                                                var linesToDraw = maxLinesThisRow;
                                                // Drucke Rahmen und Inhalt
                                                while(linesToDraw > 0){
                                                    // Berechne übrigens Platz auf Seite
                                                    var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                                    // Anzahl an freien Zeilen für Inhalt auf Seite
                                                    var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                                    // Es kann mindestens eine Zeile gezeichnet werden
                                                    if(linesAvailable > 0){
                                                        // Zeilen, die auf dieser Seite gezeichnet werden können
                                                        var linesThisPage = 0
                                                        if(linesAvailable >= linesToDraw){
                                                            linesThisPage = linesToDraw;
                                                        }
                                                        else{
                                                            linesThisPage = linesAvailable;
                                                        }
                                                        // Zeichne Rahmen
                                                        var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                        doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*cellIndex2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, "rgb(255,255,255)");
                                                        currentRectPosition += heightThisRect+2*fieldMarginY;
                                    
                                                        while(linesThisPage > 0){
                                                            // Inhalt schreiben, sofern vorhanden
                                                            if(thisCellContentArray.length > 0){
                                                                doc.setFont(pdfFont, "normal");
                                                                var result = pdfWriteContent(doc, thisCellContentArray[0], pdfMarginLeft+cellIndex2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                                doc = result[0];
                                                                currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                                thisCellContentArray.shift();
                                                                doc.setFont(pdfFont, "normal");
                                                            }
                                                            // Zählvariable innere Schleife anpassen
                                                            linesThisPage--;
                                                            // Zählvariable äußere Schleife anpassen
                                                            linesToDraw--;
                                                        }
                                                    }
                                                    // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                                    else{
                                                        var docFontSize = doc.getFontSize();
                                                        var docFontStyle = "normal";
                                                        var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                        doc = result[0];
                                                        currentHeightPosition = result[1];
                                                        maxPage = result[2];
                                                        currentRectPosition = currentHeightPosition;
                                                    }
                                                }
                                            }
                                            currentHeightPosition = currentRectPosition;

                                            var tableBodyRows = jQuery(gbuMittelwerteItemsDivContent[gbuMittelwerteItemsDivCons]).find("tbody tr");
                                            for(var tableBodyRow = 0; tableBodyRow < tableBodyRows.length; tableBodyRow++){
                                                var tableRowTd = jQuery(tableBodyRows[tableBodyRow]).find("td:not(.d-none)");
                                                var tableRowTdContent = [];
                                                for(var tableRowTdIndex = 0; tableRowTdIndex < tableRowTd.length; tableRowTdIndex++){
                                                    tableRowTdContent.push(jQuery(tableRowTd[tableRowTdIndex]).text());
                                                }

                                                // Bestimme maximale Breite für eine Cell
                                                var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, tableRowTdContent);
                                                // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                                var fieldMarginX = 5;
                                                // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                                var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                // Maximale Breite für den Inhalt eines Feldes
                                                var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                                                // Zwischenspeichern der aktuellen Position des Texts
                                                var tempCurrentHeightPosition = currentHeightPosition;
                                                // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
                                                var maxCurrentHeightPosition = currentHeightPosition;
                                                // Offset zwischen einzelnen Feldern in Y-Richtung
                                                var offsetYDir = 1.5;
                                                // Zwischenspeichern der aktuellen Seite(nzahl)
                                                var tempPage = doc.page;
                                                // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                                var maxPage = doc.page;

                                                // Aktuelle Position des Rahmens
                                                var currentRectPosition = currentHeightPosition;
                                                // Zwischenspeichern der aktuellen Position des Rahmens
                                                var tempRectPosition = currentRectPosition;

                                                // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zeilen dieser Reihe
                                                var maxLinesThisRow = 0;
                                                for(var cellIndex1 = 0; cellIndex1 < tableRowTdContent.length; cellIndex1++){
                                                    var thisCellContent = pdfReplaceSpecialCharacters(tableRowTdContent[cellIndex1]);
                                                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);

                                                    if(thisCellContentArray.length > maxLinesThisRow){
                                                        maxLinesThisRow = thisCellContentArray.length;
                                                    }
                                                }

                                                for(var cellIndex2 = 0; cellIndex2 < tableRowTdContent.length; cellIndex2++){
                                                    // Zurücksetzen der Position
                                                    currentHeightPosition = tempCurrentHeightPosition;
                                                    doc.page = tempPage;
                                                    doc.setPage(tempPage);
                                                    // Position für Rahmen zurücksetzen
                                                    currentRectPosition = tempRectPosition;

                                                    var thisCellContent = pdfReplaceSpecialCharacters(tableRowTdContent[cellIndex2]);
                                                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);
                                                    var thisCellColor = jQuery(tableRowTd[cellIndex2]).css('background-color');

                                                    // Zählvariable für Schleife
                                                    var linesToDraw = maxLinesThisRow;
                                                    // Drucke Rahmen und Inhalt
                                                    while(linesToDraw > 0){
                                                        // Berechne übrigens Platz auf Seite
                                                        var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                                        // Anzahl an freien Zeilen für Inhalt auf Seite
                                                        var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                                        // Es kann mindestens eine Zeile gezeichnet werden
                                                        if(linesAvailable > 0){
                                                            // Zeilen, die auf dieser Seite gezeichnet werden können
                                                            var linesThisPage = 0
                                                            if(linesAvailable >= linesToDraw){
                                                                linesThisPage = linesToDraw;
                                                            }
                                                            else{
                                                                linesThisPage = linesAvailable;
                                                            }
                                                            // Zeichne Rahmen
                                                            var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                            doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*cellIndex2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, thisCellColor);
                                                            currentRectPosition += heightThisRect+2*fieldMarginY;
                                    
                                                            while(linesThisPage > 0){
                                                                // Inhalt schreiben, sofern vorhanden
                                                                if(thisCellContentArray.length > 0){
                                                                    doc.setFont(pdfFont, "normal");
                                                                    var result = pdfWriteContent(doc, thisCellContentArray[0], pdfMarginLeft+cellIndex2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                                    doc = result[0];
                                                                    currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                                    thisCellContentArray.shift();
                                                                    doc.setFont(pdfFont, "normal");
                                                                }
                                                                // Zählvariable innere Schleife anpassen
                                                                linesThisPage--;
                                                                // Zählvariable äußere Schleife anpassen
                                                                linesToDraw--;
                                                            }
                                                        }
                                                        // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                                        else{
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                            doc = result[0];
                                                            currentHeightPosition = result[1];
                                                            maxPage = result[2];
                                                            currentRectPosition = currentHeightPosition;
                                                        }
                                                    }
                                                }
                                                currentHeightPosition = currentRectPosition;
                                            }

                                            currentHeightPosition += 7.5;
                                        }
                                    }
                                }
                            }
                        }
                        else if(jQuery(gbuMittelwerteContent[gbuMittelwerteCons]).is("div.coach_output_gbu_mittelwerte_container_kadmin")){
                            var gbuMittelwerteKadminDivContent = jQuery(gbuMittelwerteContent[gbuMittelwerteCons]).contents();
                            for(var gbuMittelwerteKadminDivCons = 0; gbuMittelwerteKadminDivCons < gbuMittelwerteKadminDivContent.length; gbuMittelwerteKadminDivCons++){
                                if(jQuery(gbuMittelwerteKadminDivContent[gbuMittelwerteKadminDivCons]).is("div.coach_output_gbu_mittelwerte_company_button")){
                                    var buttonText = jQuery(gbuMittelwerteKadminDivContent[gbuMittelwerteKadminDivCons]).find("button").text();
                                    var headlineTextColor = jQuery(gbuMittelwerteKadminDivContent[gbuMittelwerteKadminDivCons]).find("button p").css("color");
                                    var headlineFontSize = pdfGetHeadlineSize("h3");
                                    buttonText = buttonText.trim();
                                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                    var currentTextColor = doc.getTextColor();
                                    var currentFontSize =  doc.getFontSize();
                                    // Schriftfarbe für Überschrift setzen
                                    doc.setTextColor(headlineTextColor);
                                    doc.setFontSize(headlineFontSize);
                                    buttonText = pdfReplaceSpecialCharacters(buttonText);
                                    var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                    for(var buttonIndex = 0; buttonIndex < buttonTextArray.length; buttonIndex++){
                                        // Zeile passt nicht mehr auf Seite
                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                            var docFontSize = doc.getFontSize();
                                            var docFontStyle = "normal";
                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                            doc = result[0]; 
                                            currentHeightPosition = result[1];
                                        }
                                        var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                        doc = writeResult[0];
                                        currentHeightPosition = writeResult[1];
                                    }
                                    // Zurücksetzen der Schriftfarbe und -größe
                                    doc.setTextColor(currentTextColor);
                                    doc.setFontSize(currentFontSize);
                                }
                                else if(jQuery(gbuMittelwerteKadminDivContent[gbuMittelwerteKadminDivCons]).is("div.coach_output_gbu_mittelwerte_groups")){
                                    var gbuMittelwerteGroupContent = jQuery(gbuMittelwerteKadminDivContent[gbuMittelwerteKadminDivCons]).contents();
                                    for(var gbuMittelwerteGroupCons = 0; gbuMittelwerteGroupCons < gbuMittelwerteGroupContent.length; gbuMittelwerteGroupCons++){
                                        if(jQuery(gbuMittelwerteGroupContent[gbuMittelwerteGroupCons]).is("p")){
                                            var contentText = jQuery(gbuMittelwerteGroupContent[gbuMittelwerteGroupCons]).text();
                                            contentText = pdfReplaceSpecialCharacters(contentText);
                                            var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                            for(var cText=0; cText < contentTextArray.length; cText++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0];
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            currentHeightPosition += 4.5;
                                        }
                                        else if(jQuery(gbuMittelwerteGroupContent[gbuMittelwerteGroupCons]).is("table")){
                                            var tableHead = jQuery(gbuMittelwerteGroupContent[gbuMittelwerteGroupCons]).find("thead");
                                            var tableHeadTh = jQuery(tableHead).find("tr th");
                                            var tableHeadContent = [];
                                            for(var tableHeadThIndex = 0; tableHeadThIndex < tableHeadTh.length; tableHeadThIndex++){
                                                if(jQuery(tableHeadTh[tableHeadThIndex]).find("select").length){
                                                    var tabelSelectElement = jQuery(tableHeadTh[tableHeadThIndex]).find("select");
                                                    tableHeadContent.push(jQuery(tabelSelectElement).find("option:selected").text());
                                                }
                                                else{
                                                    tableHeadContent.push(jQuery(tableHeadTh[tableHeadThIndex]).text());
                                                }
                                            }
                                            // Bestimme maximale Breite für eine Cell
                                            var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, tableHeadContent);
                                            // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                            var fieldMarginX = 5;
                                            // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                            var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                            // Maximale Breite für den Inhalt eines Feldes
                                            var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                                            // Zwischenspeichern der aktuellen Position des Texts
                                            var tempCurrentHeightPosition = currentHeightPosition;
                                            // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
                                            var maxCurrentHeightPosition = currentHeightPosition;
                                            // Offset zwischen einzelnen Feldern in Y-Richtung
                                            var offsetYDir = 1.5;
                                            // Zwischenspeichern der aktuellen Seite(nzahl)
                                            var tempPage = doc.page;
                                            // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                            var maxPage = doc.page;

                                            // Aktuelle Position des Rahmens
                                            var currentRectPosition = currentHeightPosition;
                                            // Zwischenspeichern der aktuellen Position des Rahmens
                                            var tempRectPosition = currentRectPosition;

                                            // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zeilen dieser Reihe
                                            var maxLinesThisRow = 0;
                                            for(var cellIndex1 = 0; cellIndex1 < tableHeadContent.length; cellIndex1++){
                                                var thisCellContent = pdfReplaceSpecialCharacters(tableHeadContent[cellIndex1]);
                                                var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);

                                                if(thisCellContentArray.length > maxLinesThisRow){
                                                    maxLinesThisRow = thisCellContentArray.length;
                                                }
                                            }

                                            for(var cellIndex2 = 0; cellIndex2 < tableHeadContent.length; cellIndex2++){

                                                // Zurücksetzen der Position
                                                currentHeightPosition = tempCurrentHeightPosition;
                                                doc.page = tempPage;
                                                doc.setPage(tempPage);
                                                // Position für Rahmen zurücksetzen
                                                currentRectPosition = tempRectPosition;

                                                var thisCellContent = pdfReplaceSpecialCharacters(tableHeadContent[cellIndex2]);
                                                var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);
                                                // Zählvariable für Schleife
                                                var linesToDraw = maxLinesThisRow;
                                                // Drucke Rahmen und Inhalt
                                                while(linesToDraw > 0){
                                                    // Berechne übrigens Platz auf Seite
                                                    var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                                    // Anzahl an freien Zeilen für Inhalt auf Seite
                                                    var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                                    // Es kann mindestens eine Zeile gezeichnet werden
                                                    if(linesAvailable > 0){
                                                        // Zeilen, die auf dieser Seite gezeichnet werden können
                                                        var linesThisPage = 0
                                                        if(linesAvailable >= linesToDraw){
                                                            linesThisPage = linesToDraw;
                                                        }
                                                        else{
                                                            linesThisPage = linesAvailable;
                                                        }
                                                        // Zeichne Rahmen
                                                        var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                        doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*cellIndex2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, "rgb(255,255,255)");
                                                        currentRectPosition += heightThisRect+2*fieldMarginY;
                                    
                                                        while(linesThisPage > 0){
                                                            // Inhalt schreiben, sofern vorhanden
                                                            if(thisCellContentArray.length > 0){
                                                                doc.setFont(pdfFont, "normal");
                                                                var result = pdfWriteContent(doc, thisCellContentArray[0], pdfMarginLeft+cellIndex2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                                doc = result[0];
                                                                currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                                thisCellContentArray.shift();
                                                                doc.setFont(pdfFont, "normal");
                                                            }
                                                            // Zählvariable innere Schleife anpassen
                                                            linesThisPage--;
                                                            // Zählvariable äußere Schleife anpassen
                                                            linesToDraw--;
                                                        }
                                                    }
                                                    // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                                    else{
                                                        var docFontSize = doc.getFontSize();
                                                        var docFontStyle = "normal";
                                                        var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                        doc = result[0];
                                                        currentHeightPosition = result[1];
                                                        maxPage = result[2];
                                                        currentRectPosition = currentHeightPosition;
                                                    }
                                                }
                                            }
                                            currentHeightPosition = currentRectPosition;

                                            var tableBodyRows = jQuery(gbuMittelwerteGroupContent[gbuMittelwerteGroupCons]).find("tbody tr");
                                            for(var tableBodyRow = 0; tableBodyRow < tableBodyRows.length; tableBodyRow++){
                                                var tableRowTd = jQuery(tableBodyRows[tableBodyRow]).find("td:not(.d-none)");
                                                var tableRowTdContent = [];
                                                for(var tableRowTdIndex = 0; tableRowTdIndex < tableRowTd.length; tableRowTdIndex++){
                                                    tableRowTdContent.push(jQuery(tableRowTd[tableRowTdIndex]).text());
                                                }

                                                // Bestimme maximale Breite für eine Cell
                                                var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, tableRowTdContent);
                                                // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                                var fieldMarginX = 5;
                                                // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                                var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                // Maximale Breite für den Inhalt eines Feldes
                                                var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                                                // Zwischenspeichern der aktuellen Position des Texts
                                                var tempCurrentHeightPosition = currentHeightPosition;
                                                // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
                                                var maxCurrentHeightPosition = currentHeightPosition;
                                                // Offset zwischen einzelnen Feldern in Y-Richtung
                                                var offsetYDir = 1.5;
                                                // Zwischenspeichern der aktuellen Seite(nzahl)
                                                var tempPage = doc.page;
                                                // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                                var maxPage = doc.page;

                                                // Aktuelle Position des Rahmens
                                                var currentRectPosition = currentHeightPosition;
                                                // Zwischenspeichern der aktuellen Position des Rahmens
                                                var tempRectPosition = currentRectPosition;

                                                // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zeilen dieser Reihe
                                                var maxLinesThisRow = 0;
                                                for(var cellIndex1 = 0; cellIndex1 < tableRowTdContent.length; cellIndex1++){
                                                    var thisCellContent = pdfReplaceSpecialCharacters(tableRowTdContent[cellIndex1]);
                                                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);

                                                    if(thisCellContentArray.length > maxLinesThisRow){
                                                        maxLinesThisRow = thisCellContentArray.length;
                                                    }
                                                }

                                                for(var cellIndex2 = 0; cellIndex2 < tableRowTdContent.length; cellIndex2++){
                                                    // Zurücksetzen der Position
                                                    currentHeightPosition = tempCurrentHeightPosition;
                                                    doc.page = tempPage;
                                                    doc.setPage(tempPage);
                                                    // Position für Rahmen zurücksetzen
                                                    currentRectPosition = tempRectPosition;

                                                    var thisCellContent = pdfReplaceSpecialCharacters(tableRowTdContent[cellIndex2]);
                                                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);
                                                    var thisCellColor = jQuery(tableRowTd[cellIndex2]).css('background-color');

                                                    // Zählvariable für Schleife
                                                    var linesToDraw = maxLinesThisRow;
                                                    // Drucke Rahmen und Inhalt
                                                    while(linesToDraw > 0){
                                                        // Berechne übrigens Platz auf Seite
                                                        var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                                        // Anzahl an freien Zeilen für Inhalt auf Seite
                                                        var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                                        // Es kann mindestens eine Zeile gezeichnet werden
                                                        if(linesAvailable > 0){
                                                            // Zeilen, die auf dieser Seite gezeichnet werden können
                                                            var linesThisPage = 0
                                                            if(linesAvailable >= linesToDraw){
                                                                linesThisPage = linesToDraw;
                                                            }
                                                            else{
                                                                linesThisPage = linesAvailable;
                                                            }
                                                            // Zeichne Rahmen
                                                            var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                            doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*cellIndex2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, thisCellColor);
                                                            currentRectPosition += heightThisRect+2*fieldMarginY;
                                    
                                                            while(linesThisPage > 0){
                                                                // Inhalt schreiben, sofern vorhanden
                                                                if(thisCellContentArray.length > 0){
                                                                    doc.setFont(pdfFont, "normal");
                                                                    var result = pdfWriteContent(doc, thisCellContentArray[0], pdfMarginLeft+cellIndex2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                                    doc = result[0];
                                                                    currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                                    thisCellContentArray.shift();
                                                                    doc.setFont(pdfFont, "normal");
                                                                }
                                                                // Zählvariable innere Schleife anpassen
                                                                linesThisPage--;
                                                                // Zählvariable äußere Schleife anpassen
                                                                linesToDraw--;
                                                            }
                                                        }
                                                        // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                                        else{
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                            doc = result[0];
                                                            currentHeightPosition = result[1];
                                                            maxPage = result[2];
                                                            currentRectPosition = currentHeightPosition;
                                                        }
                                                    }
                                                }
                                                currentHeightPosition = currentRectPosition;
                                            }

                                            currentHeightPosition += 7.5;
                                        }
                                        else if(jQuery(gbuMittelwerteGroupContent[gbuMittelwerteGroupCons]).is("div.coach_output_gbu_mittelwerte_button")){
                                            var buttonText = jQuery(gbuMittelwerteGroupContent[gbuMittelwerteGroupCons]).find("button").text();
                                            var headlineTextColor = jQuery(gbuMittelwerteGroupContent[gbuMittelwerteGroupCons]).find("button p").css("color");
                                            var headlineFontSize = pdfGetHeadlineSize("h4");
                                            buttonText = buttonText.trim();
                                            // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                                            var currentTextColor = doc.getTextColor();
                                            var currentFontSize =  doc.getFontSize();
                                            // Schriftfarbe für Überschrift setzen
                                            doc.setTextColor(headlineTextColor);
                                            doc.setFontSize(headlineFontSize);
                                            buttonText = pdfReplaceSpecialCharacters(buttonText);
                                            var buttonTextArray = doc.splitTextToSize(buttonText, maxContentWidth);
                                            for(var buttonIndex = 0; buttonIndex < buttonTextArray.length; buttonIndex++){
                                                // Zeile passt nicht mehr auf Seite
                                                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                    var docFontSize = doc.getFontSize();
                                                    var docFontStyle = "normal";
                                                    var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                    doc = result[0]; 
                                                    currentHeightPosition = result[1];
                                                }
                                                var writeResult = pdfWriteContent(doc, buttonTextArray[buttonIndex], pdfMarginLeft, currentHeightPosition);
                                                doc = writeResult[0];
                                                currentHeightPosition = writeResult[1];
                                            }
                                            // Zurücksetzen der Schriftfarbe und -größe
                                            doc.setTextColor(currentTextColor);
                                            doc.setFontSize(currentFontSize);
                                        }
                                        else if(jQuery(gbuMittelwerteGroupContent[gbuMittelwerteGroupCons]).is("div.coach_output_gbu_mittelwerte_items")){
                                            var gbuMittelwerteGroupItemsDivContent = jQuery(gbuMittelwerteGroupContent[gbuMittelwerteGroupCons]).contents();
                                            for(var gbuMittelwerteGroupItemsDivCons = 0; gbuMittelwerteGroupItemsDivCons < gbuMittelwerteGroupItemsDivContent.length; gbuMittelwerteGroupItemsDivCons++){
                                                if(jQuery(gbuMittelwerteGroupItemsDivContent[gbuMittelwerteGroupItemsDivCons]).is("p")){
                                                    var contentText = jQuery(gbuMittelwerteGroupItemsDivContent[gbuMittelwerteGroupItemsDivCons]).text();
                                                    contentText = pdfReplaceSpecialCharacters(contentText);
                                                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                                                    for(var cText=0; cText < contentTextArray.length; cText++){
                                                        // Zeile passt nicht mehr auf Seite
                                                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                                            var docFontSize = doc.getFontSize();
                                                            var docFontStyle = "normal";
                                                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                                            doc = result[0];
                                                            currentHeightPosition = result[1];
                                                        }
                                                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                                                        doc = writeResult[0];
                                                        currentHeightPosition = writeResult[1];
                                                    }
                                                    currentHeightPosition += 4.5;
                                                }
                                                else if(jQuery(gbuMittelwerteGroupItemsDivContent[gbuMittelwerteGroupItemsDivCons]).is("table")){
                                                    var tableHead = jQuery(gbuMittelwerteGroupItemsDivContent[gbuMittelwerteGroupItemsDivCons]).find("thead");
                                                    var tableHeadTh = jQuery(tableHead).find("tr th");
                                                    var tableHeadContent = [];
                                                    for(var tableHeadThIndex = 0; tableHeadThIndex < tableHeadTh.length; tableHeadThIndex++){
                                                        if(jQuery(tableHeadTh[tableHeadThIndex]).find("select").length){
                                                            var tabelSelectElement = jQuery(tableHeadTh[tableHeadThIndex]).find("select");
                                                            tableHeadContent.push(jQuery(tabelSelectElement).find("option:selected").text());
                                                        }
                                                        else{
                                                            tableHeadContent.push(jQuery(tableHeadTh[tableHeadThIndex]).text());
                                                        }
                                                    }
                                                    // Bestimme maximale Breite für eine Cell
                                                    var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, tableHeadContent);
                                                    // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                                    var fieldMarginX = 5;
                                                    // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                                    var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                    // Maximale Breite für den Inhalt eines Feldes
                                                    var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                                                    // Zwischenspeichern der aktuellen Position des Texts
                                                    var tempCurrentHeightPosition = currentHeightPosition;
                                                    // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
                                                    var maxCurrentHeightPosition = currentHeightPosition;
                                                    // Offset zwischen einzelnen Feldern in Y-Richtung
                                                    var offsetYDir = 1.5;
                                                    // Zwischenspeichern der aktuellen Seite(nzahl)
                                                    var tempPage = doc.page;
                                                    // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                                    var maxPage = doc.page;

                                                    // Aktuelle Position des Rahmens
                                                    var currentRectPosition = currentHeightPosition;
                                                    // Zwischenspeichern der aktuellen Position des Rahmens
                                                    var tempRectPosition = currentRectPosition;

                                                    // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zeilen dieser Reihe
                                                    var maxLinesThisRow = 0;
                                                    for(var cellIndex1 = 0; cellIndex1 < tableHeadContent.length; cellIndex1++){
                                                        var thisCellContent = pdfReplaceSpecialCharacters(tableHeadContent[cellIndex1]);
                                                        var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);

                                                        if(thisCellContentArray.length > maxLinesThisRow){
                                                            maxLinesThisRow = thisCellContentArray.length;
                                                        }
                                                    }

                                                    for(var cellIndex2 = 0; cellIndex2 < tableHeadContent.length; cellIndex2++){

                                                        // Zurücksetzen der Position
                                                        currentHeightPosition = tempCurrentHeightPosition;
                                                        doc.page = tempPage;
                                                        doc.setPage(tempPage);
                                                        // Position für Rahmen zurücksetzen
                                                        currentRectPosition = tempRectPosition;

                                                        var thisCellContent = pdfReplaceSpecialCharacters(tableHeadContent[cellIndex2]);
                                                        var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);
                                                        // Zählvariable für Schleife
                                                        var linesToDraw = maxLinesThisRow;
                                                        // Drucke Rahmen und Inhalt
                                                        while(linesToDraw > 0){
                                                            // Berechne übrigens Platz auf Seite
                                                            var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                                            // Anzahl an freien Zeilen für Inhalt auf Seite
                                                            var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                                            // Es kann mindestens eine Zeile gezeichnet werden
                                                            if(linesAvailable > 0){
                                                                // Zeilen, die auf dieser Seite gezeichnet werden können
                                                                var linesThisPage = 0
                                                                if(linesAvailable >= linesToDraw){
                                                                    linesThisPage = linesToDraw;
                                                                }
                                                                else{
                                                                    linesThisPage = linesAvailable;
                                                                }
                                                                // Zeichne Rahmen
                                                                var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                                doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*cellIndex2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, "rgb(255,255,255)");
                                                                currentRectPosition += heightThisRect+2*fieldMarginY;
                                    
                                                                while(linesThisPage > 0){
                                                                    // Inhalt schreiben, sofern vorhanden
                                                                    if(thisCellContentArray.length > 0){
                                                                        doc.setFont(pdfFont, "normal");
                                                                        var result = pdfWriteContent(doc, thisCellContentArray[0], pdfMarginLeft+cellIndex2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                                        doc = result[0];
                                                                        currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                                        thisCellContentArray.shift();
                                                                        doc.setFont(pdfFont, "normal");
                                                                    }
                                                                    // Zählvariable innere Schleife anpassen
                                                                    linesThisPage--;
                                                                    // Zählvariable äußere Schleife anpassen
                                                                    linesToDraw--;
                                                                }
                                                            }
                                                            // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                                            else{
                                                                var docFontSize = doc.getFontSize();
                                                                var docFontStyle = "normal";
                                                                var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                                doc = result[0];
                                                                currentHeightPosition = result[1];
                                                                maxPage = result[2];
                                                                currentRectPosition = currentHeightPosition;
                                                            }
                                                        }
                                                    }
                                                    currentHeightPosition = currentRectPosition;

                                                    var tableBodyRows = jQuery(gbuMittelwerteGroupItemsDivContent[gbuMittelwerteGroupItemsDivCons]).find("tbody tr");
                                                    for(var tableBodyRow = 0; tableBodyRow < tableBodyRows.length; tableBodyRow++){
                                                        var tableRowTd = jQuery(tableBodyRows[tableBodyRow]).find("td:not(.d-none)");
                                                        var tableRowTdContent = [];
                                                        for(var tableRowTdIndex = 0; tableRowTdIndex < tableRowTd.length; tableRowTdIndex++){
                                                            tableRowTdContent.push(jQuery(tableRowTd[tableRowTdIndex]).text());
                                                        }

                                                        // Bestimme maximale Breite für eine Cell
                                                        var cellWidth = pdfGetMaxTableCellWidth(maxContentWidth, tableRowTdContent);
                                                        // Abstand (in x-Richtung) zwischen (linken/rechten) 'Rand' des Feldes zum Inhalt des Feldes
                                                        var fieldMarginX = 5;
                                                        // Abstand (in y-Richtung) zwischen (oberen/unteren) 'Rand' des Feldes zum Inhalt des Feldes
                                                        var fieldMarginY = doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                        // Maximale Breite für den Inhalt eines Feldes
                                                        var maxFieldContentWidth = cellWidth - 2*fieldMarginX;

                                                        // Zwischenspeichern der aktuellen Position des Texts
                                                        var tempCurrentHeightPosition = currentHeightPosition;
                                                        // Höchste Position des Texts nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Position)
                                                        var maxCurrentHeightPosition = currentHeightPosition;
                                                        // Offset zwischen einzelnen Feldern in Y-Richtung
                                                        var offsetYDir = 1.5;
                                                        // Zwischenspeichern der aktuellen Seite(nzahl)
                                                        var tempPage = doc.page;
                                                        // Höchste Seite nach Zeichnen und Schreiben der aktuellen Zeile (zunächst die aktuelle Seite)
                                                        var maxPage = doc.page;

                                                        // Aktuelle Position des Rahmens
                                                        var currentRectPosition = currentHeightPosition;
                                                        // Zwischenspeichern der aktuellen Position des Rahmens
                                                        var tempRectPosition = currentRectPosition;

                                                        // Bestimme höchste Anzahl an Zeilen des Inhalts aller Zeilen dieser Reihe
                                                        var maxLinesThisRow = 0;
                                                        for(var cellIndex1 = 0; cellIndex1 < tableRowTdContent.length; cellIndex1++){
                                                            var thisCellContent = pdfReplaceSpecialCharacters(tableRowTdContent[cellIndex1]);
                                                            var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);

                                                            if(thisCellContentArray.length > maxLinesThisRow){
                                                                maxLinesThisRow = thisCellContentArray.length;
                                                            }
                                                        }

                                                        for(var cellIndex2 = 0; cellIndex2 < tableRowTdContent.length; cellIndex2++){
                                                            // Zurücksetzen der Position
                                                            currentHeightPosition = tempCurrentHeightPosition;
                                                            doc.page = tempPage;
                                                            doc.setPage(tempPage);
                                                            // Position für Rahmen zurücksetzen
                                                            currentRectPosition = tempRectPosition;

                                                            var thisCellContent = pdfReplaceSpecialCharacters(tableRowTdContent[cellIndex2]);
                                                            var thisCellContentArray = doc.splitTextToSize(thisCellContent, maxFieldContentWidth);
                                                            var thisCellColor = jQuery(tableRowTd[cellIndex2]).css('background-color');

                                                            // Zählvariable für Schleife
                                                            var linesToDraw = maxLinesThisRow;
                                                            // Drucke Rahmen und Inhalt
                                                            while(linesToDraw > 0){
                                                                // Berechne übrigens Platz auf Seite
                                                                var remainingSpace = maxHeight - pdfMarginBottom - currentRectPosition;
                                                                // Anzahl an freien Zeilen für Inhalt auf Seite
                                                                var linesAvailable = Math.floor((remainingSpace - 2*fieldMarginY)/(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778));
                                                                // Es kann mindestens eine Zeile gezeichnet werden
                                                                if(linesAvailable > 0){
                                                                    // Zeilen, die auf dieser Seite gezeichnet werden können
                                                                    var linesThisPage = 0
                                                                    if(linesAvailable >= linesToDraw){
                                                                        linesThisPage = linesToDraw;
                                                                    }
                                                                    else{
                                                                        linesThisPage = linesAvailable;
                                                                    }
                                                                    // Zeichne Rahmen
                                                                    var heightThisRect = linesThisPage*(doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778);
                                                                    doc = pdfDrawRectangle(doc, pdfMarginLeft+cellWidth*cellIndex2, currentRectPosition, cellWidth, heightThisRect+2*fieldMarginY, thisCellColor);
                                                                    currentRectPosition += heightThisRect+2*fieldMarginY;
                                    
                                                                    while(linesThisPage > 0){
                                                                        // Inhalt schreiben, sofern vorhanden
                                                                        if(thisCellContentArray.length > 0){
                                                                            doc.setFont(pdfFont, "normal");
                                                                            var result = pdfWriteContent(doc, thisCellContentArray[0], pdfMarginLeft+cellIndex2*cellWidth+fieldMarginX, currentHeightPosition+2*fieldMarginY);
                                                                            doc = result[0];
                                                                            currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
                                                                            thisCellContentArray.shift();
                                                                            doc.setFont(pdfFont, "normal");
                                                                        }
                                                                        // Zählvariable innere Schleife anpassen
                                                                        linesThisPage--;
                                                                        // Zählvariable äußere Schleife anpassen
                                                                        linesToDraw--;
                                                                    }
                                                                }
                                                                // Es ist nicht genügend Platz auf der Seite für mindestens eine Zeile
                                                                else{
                                                                    var docFontSize = doc.getFontSize();
                                                                    var docFontStyle = "normal";
                                                                    var result = pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight, maxPage);
                                                                    doc = result[0];
                                                                    currentHeightPosition = result[1];
                                                                    maxPage = result[2];
                                                                    currentRectPosition = currentHeightPosition;
                                                                }
                                                            }
                                                        }
                                                        currentHeightPosition = currentRectPosition;
                                                    }

                                                    currentHeightPosition += 7.5;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                // Inhalte sollen ab sofort ignoriert werden
                else if(currentLine.startsWith("[pdfdownloadignorestart]")){
                    pdfIgnoreFlag = 1;
                }
                // HTML-Kommentare
                else if(currentLine.startsWith("<!--")){

                    if(!currentLine.includes("-->")){
                        pdfIgnoreHTMLCommentFlag = 1;
                    }
                    
                }
                // Ignoriere folgende Elemente
                else if(currentLine.startsWith("[/accordionmd]") || currentLine.startsWith("[/tspv2_accordionmd]") || currentLine.startsWith("[/tspv2_accordion]") || currentLine.startsWith("</div>") || currentLine.startsWith("<thead>") || currentLine.startsWith("</thead>") || currentLine.startsWith("<tbody>")|| currentLine.startsWith("</tbody>")){
                    // Ignorieren
                }
                // Einfacher Text/Leere Zeilen
                else{
                    currentLineText = pdfReplaceSpecialCharacters(currentLine);
                    var currentLineTextArray = doc.splitTextToSize(currentLineText, maxContentWidth);
                    for(var i=0; i< currentLineTextArray.length; i++){
                        // Zeile passt nicht mehr auf Seite
                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                            var docFontSize = doc.getFontSize();
                            var docFontStyle = "normal";
                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                            doc = result[0];
                            currentHeightPosition = result[1];
                        }
                        var writeResult = pdfWriteContent(doc, currentLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                        doc = writeResult[0];
                        currentHeightPosition = writeResult[1];
                    }
                }
            }
            // Inhalte sollen ab sofort nicht mehr ignoriert werden
            else if(currentLine.startsWith("[pdfdownloadignoreend]")){
                pdfIgnoreFlag = 0;
            }
            // Es folgen keine einkommentierten Inhalte
            else if(currentLine.includes("-->")){
                pdfIgnoreHTMLCommentFlag = 0;
            }
        }

        // Speichern der erzeugten PDF
        doc.save('{{name}}');

    }

    function pdfGetTsFormLabel(formGroup){
        // Abrufen des übergeordneten Labels
        var formGroupLabel = jQuery(formGroup).find("label:not(.form-check-label)"); 
		var formGroupLabelText = "";
		if(jQuery(formGroupLabel).is("label:not(.form-check-label)")){
			formGroupLabelText = jQuery(formGroup).find("label:not(.form-check-label)").text();
        }
        
        return formGroupLabelText;
    }

    function pdfGetTsFormField(formGroup){
        var fieldContent = "";
        // Standardwerte
        var fieldFontSize = 12;
        var fieldFontStyle = "normal";
        var fieldFontColor = "rgb(0,0,0)";

        // Textfeld (Type: Text) / Slider
        if(jQuery(formGroup).find("input[type='text']").is("input[type='text']")){
            fieldContent = jQuery(formGroup).find("input[type='text']").val();
        }
        // Textfeld (Type: Date)
        else if(jQuery(formGroup).find("input[type='date']").is("input[type='date']")){
            var dateString = jQuery(formGroup).find("input[type='date']").val();
            if(dateString.trim() != ""){
                var inputDate = new Date(dateString);
                var inputDateDay = "";
                var inputDateMonth = "";
                var inputDateYear = "";
                
                if(inputDate.getDate() >= 10){
                    inputDateDay += inputDate.getDate();
                }
                else{
                    inputDateDay = "0"+inputDate.getDate();
                }

                if(inputDate.getMonth() +1 >= 10){
                    inputDateMonth += (inputDate.getMonth()+1);
                }
                else{
                    inputDateMonth = "0"+(inputDate.getMonth()+1);
                }

                inputDateYear += inputDate.getFullYear();

                fieldContent = inputDateDay+"."+inputDateMonth+"."+inputDateYear;
            }
        }
        // Textfeld (Type: Datetime local)
        else if(jQuery(formGroup).find("input[type='datetime-local']").is("input[type='datetime-local']")){
            var dateString = jQuery(formGroup).find("input[type='datetime-local']").val();
            if(dateString.trim() != ""){
                var inputDate = new Date(dateString);
                var inputDateDay = "";
                var inputDateMonth = "";
                var inputDateYear = "";
                var inputDateHours = "";
                var inputDateMinutes = "";
                
                if(inputDate.getDate() >= 10){
                    inputDateDay += inputDate.getDate();
                }
                else{
                    inputDateDay = "0"+inputDate.getDate();
                }

                if(inputDate.getMonth() +1 >= 10){
                    inputDateMonth += (inputDate.getMonth()+1);
                }
                else{
                    inputDateMonth = "0"+(inputDate.getMonth()+1);
                }

                inputDateYear += inputDate.getFullYear();

                if(inputDate.getHours() >= 10){
                    inputDateHours += inputDate.getHours();
                }
                else{
                    inputDateHours = "0"+inputDate.getHours();
                }

                if(inputDate.getMinutes() >= 10){
                    inputDateMinutes += inputDate.getMinutes();
                }
                else{
                    inputDateMinutes = "0"+inputDate.getMinutes();
                }
                
                fieldContent = inputDateDay+"."+inputDateMonth+"."+inputDateYear+" "+inputDateHours+":"+inputDateMinutes;
            }
        }
        // Textfeld (Type: E-Mail)
        else if(jQuery(formGroup).find("input[type='email']").is("input[type='email']")){
            fieldContent = jQuery(formGroup).find("input[type='email']").val();
        }
        // Textfeld (Type: Month)
        else if(jQuery(formGroup).find("input[type='month']").is("input[type='month']")){
            var dateString = jQuery(formGroup).find("input[type='month']").val();
            if(dateString.trim() != ""){
                var inputDate = new Date(dateString);
                inputDateMonth = "";
                inputDateYear = "";

                if(inputDate.getMonth() == 0){
                    inputDateMonth += "Januar";
                }
                else if(inputDate.getMonth() == 1){
                    inputDateMonth += "Februar";
                }
                else if(inputDate.getMonth() == 2){
                    inputDateMonth += "März";
                }
                else if(inputDate.getMonth() == 3){
                    inputDateMonth += "April";
                }
                else if(inputDate.getMonth() == 4){
                    inputDateMonth += "Mai";
                }
                else if(inputDate.getMonth() == 5){
                    inputDateMonth += "Juni";
                }
                else if(inputDate.getMonth() == 6){
                    inputDateMonth += "Juli";
                }
                else if(inputDate.getMonth() == 7){
                    inputDateMonth += "August";
                }
                else if(inputDate.getMonth() == 8){
                    inputDateMonth += "September";
                }
                else if(inputDate.getMonth() == 9){
                    inputDateMonth += "Oktober";
                }
                else if(inputDate.getMonth() == 10){
                    inputDateMonth += "November";
                }
                else if(inputDate.getMonth() == 11){
                    inputDateMonth += "Dezember";
                }

                inputDateYear += inputDate.getFullYear();
                fieldContent = inputDateMonth+" "+inputDateYear;
            }
        }
        // Textfeld (Type: Number)
        else if(jQuery(formGroup).find("input[type='number']").is("input[type='number']")){
            fieldContent = jQuery(formGroup).find("input[type='number']").val();
        }
        // Textfeld (Type: Tel)
        else if(jQuery(formGroup).find("input[type='tel']").is("input[type='tel']")){
            fieldContent = jQuery(formGroup).find("input[type='tel']").val();
        }
        // Textfeld (Type: Time)
        else if(jQuery(formGroup).find("input[type='time']").is("input[type='time']")){
            fieldContent = jQuery(formGroup).find("input[type='time']").val();
        }
        // Textfeld (Type: URL)
        else if(jQuery(formGroup).find("input[type='url']").is("input[type='url']")){
            fieldContent = jQuery(formGroup).find("input[type='url']").val();
        }
        // Textfeld (Type: Week)
        else if(jQuery(formGroup).find("input[type='week']").is("input[type='week']")){
            var dateString = jQuery(formGroup).find("input[type='week']").val();
            if(dateString.trim() != ""){
                var dateStringArray = dateString.split("-W");
                fieldContent = "Woche "+dateStringArray[1]+", "+dateStringArray[0];
            }
        }
        // Textbox
        else if(jQuery(formGroup).find("textarea").is("textarea")){
            fieldContent = jQuery(formGroup).find("textarea").val();
        }
        // Dropdown
        else if(jQuery(formGroup).find("select").is("select")){
            var thisDropdownId = jQuery(formGroup).find("select").attr('id');
            // Abrufen aller ausgewählten Optionen.  
            var selectedItems = jQuery('#'+thisDropdownId+' :selected');
			for(var selectedItemsIndex = 0; selectedItemsIndex < selectedItems.length; selectedItemsIndex++){
				if(selectedItemsIndex == 0){
					fieldContent += jQuery(selectedItems[selectedItemsIndex]).text();
				}
				else{
					fieldContent += ", ";
					fieldContent += jQuery(selectedItems[selectedItemsIndex]).text();
				}
			}
        }
        // Radio-Buttons
        else if(jQuery(formGroup).find("input[type='radio']").is("input[type='radio']")){
            // Rufe ausgewählten Button ab
            var selectedRadioButton = jQuery(formGroup).find("input[type='radio']:checked").attr('id');
			fieldContent = jQuery("label[for='"+selectedRadioButton+"']").text();
        }
        // Checkbox
        else if(jQuery(formGroup).find("input[type='checkbox']").is("input[type='checkbox']")){
            var thisCheckbox = jQuery(formGroup).find("input[type='checkbox']");
            if(jQuery(thisCheckbox).is(":checked")){
                var thisCheckboxId = jQuery(thisCheckbox).attr('id');
				fieldContent = jQuery("label[for = '"+thisCheckboxId+"']").text();
            }
        }
        // Text (<p>)
        else if(jQuery(formGroup).find("p").is("p")){
            var thisText = jQuery(formGroup).find("p");
            fieldContent = jQuery(thisText).text().trim();
        }
        // Text (<h1>)
        else if(jQuery(formGroup).find("h1").is("h1")){
            var thisText = jQuery(formGroup).find("h1");
            fieldContent = jQuery(thisText).text().trim();
            fieldFontSize = pdfGetHeadlineSize("h1");
            fieldFontColor = jQuery(formGroup).find("h1").css("color");
        }
        // Text (<h2>)
        else if(jQuery(formGroup).find("h2").is("h2")){
            var thisText = jQuery(formGroup).find("h2");
            fieldContent = jQuery(thisText).text().trim();
            fieldFontSize = pdfGetHeadlineSize("h2");
            fieldFontColor = jQuery(formGroup).find("h2").css("color");
        }
        // Text (<h3>)
        else if(jQuery(formGroup).find("h3").is("h3")){
            var thisText = jQuery(formGroup).find("h3");
            fieldContent = jQuery(thisText).text().trim();
            fieldFontSize = pdfGetHeadlineSize("h3");
            fieldFontColor = jQuery(formGroup).find("h3").css("color");
        }
        // Text (<h4>)
        else if(jQuery(formGroup).find("h4").is("h4")){
            var thisText = jQuery(formGroup).find("h4");
            fieldContent = jQuery(thisText).text().trim();
            fieldFontSize = pdfGetHeadlineSize("h4");
            fieldFontColor = jQuery(formGroup).find("h4").css("color");
        }
        // Text (<h5>)
        else if(jQuery(formGroup).find("h5").is("h5")){
            var thisText = jQuery(formGroup).find("h5");
            fieldContent = jQuery(thisText).text().trim();
            fieldFontSize = pdfGetHeadlineSize("h5");
            fieldFontColor = jQuery(formGroup).find("h5").css("color");
        }
        // Text (<h6>)
        else if(jQuery(formGroup).find("h6").is("h6")){
            var thisText = jQuery(formGroup).find("h6");
            fieldContent = jQuery(thisText).text().trim();
            fieldFontSize = pdfGetHeadlineSize("h6");
            fieldFontColor = jQuery(formGroup).find("h6").css("color");
        }
        // Text (<small>)
        else if(jQuery(formGroup).find("small").is("small")){
            // solle kleinere Schriftgröße als h6 erhalten
            var thisText = jQuery(formGroup).find("small");
            fieldContent = jQuery(thisText).text().trim();
            fieldFontSize = 10;
        }
        // Text (<b>)
        else if(jQuery(formGroup).find("b").is("b")){
            var thisText = jQuery(formGroup).find("b");
            fieldContent = jQuery(thisText).text().trim();
            fieldFontStyle = "bold";
        }
        // Text (<i>)
        else if(jQuery(formGroup).find("i").is("i")){
            var thisText = jQuery(formGroup).find("i");
            fieldContent = jQuery(thisText).text().trim();
            fieldFontStyle = "italic";
        }
        // Text (<span>)
        else if(jQuery(formGroup).find("span").is("span")){
            var thisText = jQuery(formGroup).find("span");
            fieldContent = jQuery(thisText).text().trim();
        }
        return [fieldContent, fieldFontSize, fieldFontStyle, fieldFontColor];
    }

    function pdfGetCoachOutputFormatDataContent(output, type){
        var content;
        // Eingabe: <p>-Element ;Rückgabe: Inhalt als String
        if(type == "text"){
            // Abrufen des gesamten Inhalts
            var outputContent = jQuery(output).find("i").contents();
            content = "";
            for(var outputContentIndex = 0; outputContentIndex < outputContent.length; outputContentIndex++){

                if(jQuery(outputContent[outputContentIndex]).is("br")){
                    // do nothing
                    content += "";
                }
                else{
                    content += jQuery(outputContent[outputContentIndex]).text();
                }
            }

        }
        // Eingabe: <ul>-Element ;Rückgabe: Inhalt der <li>-Elemente als String-Array
        else if(type == "list"){
            content = [];
            var listElements = jQuery(output).find("li");
            for(var b=0; b<listElements.length; b++){
                var el = jQuery(listElements[b]).text();
                el = el.trim();
                content.push(el);
            }
        }
        // Eingabe: <tr>-Element ;Rückgabe: Einzelne Zellen des <tr>-Elements in String-Array
        else if(type == "table"){
            content = [];
            var cellType = "";
            if(jQuery(output).find("th").is("th")){
                cellType = "th";
            }
            else if(jQuery(output).find("td").is("td")){
                cellType = "td";
            }
            var tableCells = jQuery(output).find(cellType);
            for(var c=0; c< tableCells.length; c++){
                var el = jQuery(tableCells[c]).text();
                el = el.trim();
                content.push(el);
            }
        }

        return content;
    }

    function pdfWritePageNumber(doc, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, center, marginBottom, maxHeight){        
        doc.setFontSize(pageNumberFontSize);
        doc.setFont(pdfFont, pageNumberFontStyle);
        var currentTextColor = doc.getTextColor();
        doc.setTextColor(0,0,0);
        doc.text("-"+doc.page+"-", center, maxHeight-(marginBottom/2),{align:'center'});
        doc.setFontSize(docFontSize);
        doc.setFont(pdfFont, docFontStyle);
        doc.setTextColor(currentTextColor);
        return doc;
    }

    function pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, center, marginTop, marginBottom, maxHeight){
        doc.addPage(pdfFormat, pdfOrientation);
        var currentHeightPosition = marginTop;
        doc.page++;
        doc = pdfWritePageNumber(doc, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, center, marginBottom, maxHeight);
        return [doc, currentHeightPosition];
    }

    function pdfAddNewPageTables(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, center, marginTop, marginBottom, maxHeight, maxPage){

        var currentHeightPosition = marginTop;
        // Die aktuelle Seite ist die höchste Seite -> Es muss eine neue Seite angelegt werden
        if(doc.page == maxPage){
            doc.addPage(pdfFormat, pdfOrientation);
            doc.page++;
            doc = pdfWritePageNumber(doc, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, center, marginBottom, maxHeight);
            maxPage++;
        }
        // Die aktuelle Seite ist nicht die höchste Seite -> Es muss zur nächsten Seite gewechselt werden
        else if(doc.page < maxPage){
            doc.setPage(doc.page+1);
            doc.page++;
        }

        return [doc, currentHeightPosition, maxPage];
    }

    function pdfGetHeadlineSize(headlineType){
        // Schriftgröße für Überschrift anpassen
        var headlineFontSize = 12;
        if(headlineType == "h1"){
            headlineFontSize = 22;
        }
        else if(headlineType == "h2"){
            headlineFontSize = 20;
        }
        else if(headlineType == "h3"){
            headlineFontSize = 18;
        }
        else if(headlineType == "h4"){
            headlineFontSize = 16;
        }
        else if(headlineType == "h5"){
            headlineFontSize = 14;
        }
        else if(headlineType == "h6"){
            headlineFontSize = 12;
        }
        return headlineFontSize;
    }

    // Ruft die Farbinformationen für eine Überschrift ab
    function pdfGetHeadlineColor(headlineType, headlineText){
        // Alle Überschriften des übergebenen Typs auf der aktuellen Seite
        var allHeadlines = jQuery(headlineType);
        // Rufe die Überschrift ab, für die die Farbinformationen abgerufen werden sollen
        var thisHeadline = jQuery(allHeadlines).filter(function(){
            if(jQuery(this).text() == headlineText){
                return jQuery(this);
            }
        });
        // Rufe Farbinformationen für die Überschrift ab
        var headlineColor = jQuery(thisHeadline).css("color");
        return headlineColor;
    }

    function pdfWriteContent(doc, content, marginLeft, currentHeightPosition){
        doc.text(content, marginLeft, currentHeightPosition);
        currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
        return [doc, currentHeightPosition];
    }

    function pdfReplaceSpecialCharacters(content){
        var changedContent = content.replace(/–/g,"-").replace(/…/g,"...").replace(/➔/g,"->").replace(/„/g, '"').replace(/“/g, '"').replace(/″/g, '"').replace(/’/g, "'");
        return changedContent; 
    }

    function pdfGetTitleAttribute(line){
        var titleValue = "";
        if(line.match(/title="/) !== null){
            var titleValueTemp = line.match(/title="([^\"]+)"/);
            titleValue = titleValueTemp[1];
        }
         else if(line.match(/title='/) !== null){
            var titleValueTemp = line.match(/title='([^']+)'/);
            titleValue = titleValueTemp[1];
        }

        return titleValue;
    }

    function pdfGetIdAttribute(line){
        var idValue = "";

        if(line.match(/id="/) !== null){
            var idValueTemp = line.match(/id="([0-9]+)"/);
            idValue = idValueTemp[1];
        }
        else if(line.match(/id='/) !== null){
            var idValueTemp = line.match(/id='([0-9]+)'/);
            idValue = idValueTemp[1];
        }
        else if(line.match(/id=/) !== null){
            var idValueTemp = line.match(/id=([0-9]+)/);
            idValue = idValueTemp[1];
        }

        return idValue;
    }

    function pdfGetImgSource(line){

        var imgSource = "";

        if(line.match(/src="/) !== null){
            var srcValueTemp = line.match(/src="([^\"]+)"/);
            imgSource = srcValueTemp[1];
        }
         else if(line.match(/src='/) !== null){
            var srcValueTemp = line.match(/src='([^']+)'/);
            imgSource = srcValueTemp[1];
        }

        return imgSource;
    }

    function pdfGetImgClass(line){

        var imgClassArray = [];

        if(line.match(/class="/) !== null){
            var classValueTemp = line.match(/class="([^\"]+)"/);
            var classString = classValueTemp[1];
            var classArray = classString.split(" ");

            for(var classIndex = 0; classIndex < classArray.length; classIndex++){
                if(classArray[classIndex] == "tspdfdownload-small"){
                    imgClassArray.push(classArray[classIndex]);
                }
                else if(classArray[classIndex] == "tspdfdownload-medium"){
                    imgClassArray.push(classArray[classIndex]);
                }
                else if(classArray[classIndex] == "tspdfdownload-large"){
                    imgClassArray.push(classArray[classIndex]);
                }
                else if(classArray[classIndex] == "tspdfdownload-left"){
                    imgClassArray.push(classArray[classIndex]);
                }
                else if(classArray[classIndex] == "tspdfdownload-center"){
                    imgClassArray.push(classArray[classIndex]);
                }
                else if(classArray[classIndex] == "tspdfdownload-right"){
                    imgClassArray.push(classArray[classIndex]);
                }
            }
        }
        else if(line.match(/class='/) !== null){
            var classValueTemp = line.match(/class='([^\'']+)"/);
            var classString = classValueTemp[1];
            var classArray = classString.split(" ");

            for(var classIndex = 0; classIndex < classArray.length; classIndex++){
                if(classArray[classIndex] == "tspdfdownload-small"){
                    imgClassArray.push(classArray[classIndex]);
                }
                else if(classArray[classIndex] == "tspdfdownload-medium"){
                    imgClassArray.push(classArray[classIndex]);
                }
                else if(classArray[classIndex] == "tspdfdownload-large"){
                    imgClassArray.push(classArray[classIndex]);
                }
                else if(classArray[classIndex] == "tspdfdownload-left"){
                    imgClassArray.push(classArray[classIndex]);
                }
                else if(classArray[classIndex] == "tspdfdownload-center"){
                    imgClassArray.push(classArray[classIndex]);
                }
                else if(classArray[classIndex] == "tspdfdownload-right"){
                    imgClassArray.push(classArray[classIndex]);
                }
            }
        }

        return imgClassArray;
    }

    function pdfGetIdAttributeList(line){
        var idArray = [];

        if(line.match(/id="/) !== null){
            var idStringTemp = line.match(/id="([0-9, ]+)"/);
            var idArrayTemp = idStringTemp[1].split(",");
            for(var id=0; id < idArrayTemp.length; id++){
                idArray.push(idArrayTemp[id].trim());
            }
        }
        else if(line.match(/id='/) !== null){
            var idStringTemp = line.match(/id='([0-9, ]+)'/);
            var idArrayTemp = idStringTemp[1].split(",");
            for(var id=0; id < idArrayTemp.length; id++){
                idArray.push(idArrayTemp[id].trim());
            }
        }
        return idArray;
    }

    function pdfGetGBUModeAttribute(line){

        var modeValue = "";

        if(line.match(/mode="/) !== null){
            var modeValueTemp = line.match(/mode="([^\"]+)"/);
            modeValue = modeValueTemp[1];
        }
         else if(line.match(/mode='/) !== null){
            var modeValueTemp = line.match(/mode='([^']+)'/);
            modeValue = modeValueTemp[1];
        }

        return modeValue;
    }

    function pdfConvertHexToRGB(hex){
        var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
        return result ? {
            r: parseInt(result[1], 16),
            g: parseInt(result[2], 16),
            b: parseInt(result[3], 16)
        } : null;
    }

    function pdfGetMaxTableCellWidth(width, elements){
        if(elements.length > 0){
            var tableCellWidth = width/elements.length;
            return tableCellWidth;
        }
        else{
            return 0;
        }
    }

    function pdfGetMaxTableCellLines(doc, pdfFont, content, size, style, width){
        var maxCellLines = 0;
        // Zwischenspeichern der aktuellen Schriftgröße
        var currentFontSize = doc.getFontSize();
        var currentFont = doc.getFont();
        for(var a=0; a < content.length; a++){
            doc.setFontSize(size[a]);
            doc.setFont(pdfFont, style[a]);
            var contentArray = doc.splitTextToSize(content[a], width);
            if(maxCellLines < contentArray.length){
                maxCellLines = contentArray.length;
            }
        }
        // Zurücksetzen auf die vorherigen Werte
        doc.setFontSize(currentFontSize);
        doc.setFont(currentFont.fontName, currentFont.fontStyle);
        return maxCellLines;
    }

    function pdfDrawRectangle(doc, x, y, w, h, color){
        doc.setFillColor(color);
        doc.rect(x, y, w, h, 'DF');
        doc.setFillColor(255,255,255);
        return doc;
    }
    
    // Gibt die Anzahl an zu schreibenden Zeilen einer Tabellenzelle zurück
    function pdfGetNumberLinesCell(doc, cell, width, font){
        var linesThisCell = 0;

        for(var thisCellIndex = 0; thisCellIndex < cell.length; thisCellIndex++){

            // Paragraph
            if(jQuery(cell[thisCellIndex]).is("p")){
                var thisCellContent = jQuery(cell[thisCellIndex]).text();
                thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                linesThisCell += thisCellContentArray.length;
            }
            // (un-)geordnete Liste
            else if(jQuery(cell[thisCellIndex]).is("ul")|| jQuery(cell[thisCellIndex]).is("ol")){

            }
            // Keines der vorherigen Elemente / Text
            else{
                var thisCellContent = jQuery(cell[thisCellIndex]).text();

                // Shortcode ts_forms
                if(thisCellContent.startsWith("[ts_forms")){
                    var formId = pdfGetIdAttribute(thisCellContent);
                    // Multiform
                    if(jQuery("button[data-formid='"+formId+"']").hasClass("ts-forms-multiformbutton")){
                        // bisher nicht unterstützt
                    }
                    // Kein Multiform
                    else{
                        var tsFormGroups = jQuery("[data-formid='"+formId+"']").find(".form-group");
                        for(var formGroupIndex = 0; formGroupIndex < tsFormGroups.length; formGroupIndex++){
                            var labelText = pdfGetTsFormLabel(tsFormGroups[formGroupIndex]);
                            labelText = pdfReplaceSpecialCharacters(labelText);
                            if(labelText != ""){
                                doc.setFont(font, "bold");
                                var labelTextArray = doc.splitTextToSize(labelText, width);
                                linesThisCell += labelTextArray.length;
                                doc.setFont(font, "normal");
                            }
                            var tsFormField = pdfGetTsFormField(tsFormGroups[formGroupIndex]);
                            var fieldContent = tsFormField[0];
                            var contentSize = tsFormField[1];
                            var contentStyle = tsFormField[2];
                            var contentColor = tsFormField[3];

                            fieldContent = pdfReplaceSpecialCharacters(fieldContent);
                            // Zähle nur die Zeilen von nicht leeren Inhalten
                            if(fieldContent != ""){
                                // Bei Checkboxen wird ein Spiegelstrich ergänzt
                                if(jQuery(tsFormGroups[formGroupIndex]).find("input[type='checkbox']").is("input[type='checkbox']")){
                                    var bulletpointLength = (doc.getStringUnitWidth("- ")*doc.getFontSize())/(72/25.6);
                                    var fieldContentArray = doc.splitTextToSize(fieldContent, width-bulletpointLength);
                                    linesThisCell += fieldContentArray.length;
                                }
                                else{
                                    var fieldContentArray = doc.splitTextToSize(fieldContent, width);
                                    linesThisCell += fieldContentArray.length;
                                }
                            } 
                        }
                    }

                }
                // Shortcode coach_output_format_data
                else if(thisCellContent.startsWith("[coach_output_format_data")){
                    var outputId = pdfGetIdAttribute(thisCellContent);
                    var outputTitle = pdfGetTitleAttribute(thisCellContent);
                    var thisOutputId = "coach_output_format_data_"+outputId;
                    var thisOutputElement = jQuery('#'+thisOutputId);
                    // text = 1
                    if(jQuery(thisOutputElement).is("p")){
                        var thisTitle = pdfReplaceSpecialCharacters(outputTitle);
                        if(thisTitle != ""){
                            doc.setFont(font, "bold");
                            var thisTitleArray = doc.splitTextToSize(thisTitle, width);
                            linesThisCell += thisTitleArray.length;
                            doc.setFont(font, "normal");
                        }
                        var thisContent = pdfGetCoachOutputFormatDataContent(thisOutputElement,"text");
                        thisContent = pdfReplaceSpecialCharacters(thisContent);
                        var thisContentArray = doc.splitTextToSize(thisContent, width);
                        linesThisCell += thisContentArray.length;
                    }
                    // list = 1
                    else if(jQuery(thisOutputElement).is("ul")){
                        var thisTitle = pdfReplaceSpecialCharacters(outputTitle);
                        if(thisTitle != ""){
                            doc.setFont(font, "bold");
                            var thisTitleArray = doc.splitTextToSize(thisTitle, width);
                            linesThisCell += thisTitleArray.length;
                            doc.setFont(font, "normal");
                        }
                        var bulletpoint = "- ";
                        var bulletpointLength = (doc.getStringUnitWidth(bulletpoint)*doc.getFontSize())/(72/25.6);
                        var listElements = pdfGetCoachOutputFormatDataContent(thisOutputElement, "list");
                        for(var listElementIndex = 0; listElementIndex < listElements.length; listElementIndex++){
                            var el = listElements[listElementIndex];
                            el = pdfReplaceSpecialCharacters(el);
                            var elArray = doc.splitTextToSize(el, width-bulletpointLength);
                            linesThisCell += elArray.length;
                        }
                    }
                    // table = 1
                    else if(jQuery(thisOutputElement).is("table")){
                        // TODO
                    }
                }
                // Normaler Text
                else{
                    thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                    linesThisCell += thisCellContentArray.length;
                }
            }
        }
        return linesThisCell;
    }

    // Gibt Inhalt der Zelle einer Tabellenreihe als Array zurück. Außerdem Rückgabe eines Arrays, das den Style ("normal" oder "bold") für jede Zeile angibt
    function pdfGetCellContent(doc, cell, width){
        var contentArray = [];
        var styleArray = [];

        for(var thisCellIndex = 0; thisCellIndex < cell.length; thisCellIndex++){

            // Paragraph
            if(jQuery(cell[thisCellIndex]).is("p")){
                var thisCellContent = jQuery(cell[thisCellIndex]).text();
                thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                for(var contentIndex = 0; contentIndex < thisCellContentArray.length; contentIndex++){
                    contentArray.push(thisCellContentArray[contentIndex]);
                    styleArray.push("normal");
                }
            }
            // (un-)geordnete Listen
            else if(jQuery(cell[thisCellIndex]).is("ul")|| jQuery(cell[thisCellIndex]).is("ol")){
                // TODO
                // Noch nicht unterstützt
            }
            // Keines der vorherigen Elemente / Text
            else{
                var thisCellContent = jQuery(cell[thisCellIndex]).text();

                // Shortcode ts_forms
                if(thisCellContent.startsWith("[ts_forms")){
                    var formId = pdfGetIdAttribute(thisCellContent);
                    // Multiform
                    if(jQuery("button[data-formid='"+formId+"']").hasClass("ts-forms-multiformbutton")){
                        // bisher nicht unterstützt
                    }
                    // Kein Multiform
                    else{
                        var tsFormGroups = jQuery("[data-formid='"+formId+"']").find(".form-group");
                        for(var formGroupIndex = 0; formGroupIndex < tsFormGroups.length; formGroupIndex++){
                            var labelText = pdfGetTsFormLabel(tsFormGroups[formGroupIndex]);
                            labelText = pdfReplaceSpecialCharacters(labelText);
                            if(labelText != ""){
                                var labelTextArray = doc.splitTextToSize(labelText, width);
                                for(var labelIndex = 0; labelIndex < labelTextArray.length; labelIndex++){
                                    contentArray.push(labelTextArray[labelIndex]);
                                    styleArray.push("bold");
                                }
                            }
                            var tsFormField = pdfGetTsFormField(tsFormGroups[formGroupIndex]);
                            var fieldContent = tsFormField[0];
                            var contentSize = tsFormField[1];
                            var contentStyle = tsFormField[2];
                            var contentColor = tsFormField[3];

                            fieldContent = pdfReplaceSpecialCharacters(fieldContent);
                            // Schreibe nur Inhalt, der nicht leer ist
                            if(fieldContent != ""){
                                // Ergänze bei Checkboxen einen Spiegelstrich
                                if(jQuery(tsFormGroups[formGroupIndex]).find("input[type='checkbox']").is("input[type='checkbox']")){
                                    var bulletpointLength = (doc.getStringUnitWidth("- ")*doc.getFontSize())/(72/25.6);
                                    var fieldContentArray = doc.splitTextToSize(fieldContent, width-bulletpointLength);
                                    for(var fieldContentIndex = 0; fieldContentIndex < fieldContentArray.length; fieldContentIndex++){
                                        if(fieldContentIndex == 0){
                                            var checkboxString = "- "+fieldContentArray[fieldContentIndex];
                                        }
                                        else{
                                            var checkboxString = "  "+fieldContentArray[fieldContentIndex];
                                        }
                                        contentArray.push(checkboxString);
                                        styleArray.push("normal");
                                    }
                                }
                                else{
                                    var fieldContentArray = doc.splitTextToSize(fieldContent, width);
                                    for(var fieldContentIndex = 0; fieldContentIndex < fieldContentArray.length; fieldContentIndex++){
                                        contentArray.push(fieldContentArray[fieldContentIndex]);
                                        styleArray.push("normal");
                                    }
                                }
                            }
                            

                        }
                    }
                }
                // Shortcode coach_output_format_data
                else if(thisCellContent.startsWith("[coach_output_format_data")){
                    var outputId = pdfGetIdAttribute(thisCellContent);
                    var outputTitle = pdfGetTitleAttribute(thisCellContent);
                    var thisOutputId = "coach_output_format_data_"+outputId;
                    var thisOutputElement = jQuery('#'+thisOutputId);
                    // text = 1
                    if(jQuery(thisOutputElement).is("p")){
                        var thisTitle = pdfReplaceSpecialCharacters(outputTitle);
                        if(thisTitle != ""){
                            var thisTitleArray = doc.splitTextToSize(thisTitle, width);
                            for(var thisTitleIndex = 0; thisTitleIndex < thisTitleArray.length; thisTitleIndex++){
                                contentArray.push(thisTitleArray[thisTitleIndex]);
                                styleArray.push("bold");
                            }
                        }
                        var thisContent = pdfGetCoachOutputFormatDataContent(thisOutputElement,"text");
                        thisContent = pdfReplaceSpecialCharacters(thisContent);
                        var thisContentArray = doc.splitTextToSize(thisContent, width);
                        for(var thisContentIndex = 0; thisContentIndex < thisContentArray.length; thisContentIndex++){
                            contentArray.push(thisContentArray[thisContentIndex]);
                            styleArray.push("normal");
                        }
                    }
                    // list = 1
                    else if(jQuery(thisOutputElement).is("ul")){
                        var thisTitle = pdfReplaceSpecialCharacters(outputTitle);
                        if(thisTitle != ""){
                            var thisTitleArray = doc.splitTextToSize(thisTitle, width);
                            for(var thisTitleIndex = 0; thisTitleIndex < thisTitleArray.length; thisTitleIndex++){
                                contentArray.push(thisTitleArray[thisTitleIndex]);
                                styleArray.push("bold");
                            }
                        }
                        var bulletpoint = "- ";
                        var bulletpointLength = (doc.getStringUnitWidth(bulletpoint)*doc.getFontSize())/(72/25.6);
                        var listElements = pdfGetCoachOutputFormatDataContent(thisOutputElement, "list");
                        for(var listElementIndex = 0; listElementIndex < listElements.length; listElementIndex++){
                            var el = listElements[listElementIndex];
                            el = pdfReplaceSpecialCharacters(el);
                            var elArray = doc.splitTextToSize(el, width-bulletpointLength);
                            for(var elIndex = 0; elIndex < elArray.length; elIndex++){
                                if(elIndex == 0){
                                    var listString = bulletpoint+elArray[elIndex];
                                }
                                else{
                                    var listString = "  "+elArray[elIndex];
                                }
                                contentArray.push(listString);
                                styleArray.push("normal");
                            }
                        }
                    }
                    // table = 1
                    else if(jQuery(thisOutputElement).is("table")){

                    }
                }
                // Kein Shortcode / Text
                else{
                    thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                    for(var contentIndex = 0; contentIndex < thisCellContentArray.length; contentIndex++){
                        contentArray.push(thisCellContentArray[contentIndex]);
                        styleArray.push("normal");
                    }
                }
            }
        }

        return [contentArray, styleArray];
    }

    function pdfGBUGetNumberLinesCell(doc, cell, width, font){

        var linesThisCell = 0;

        for(var thisCellIndex = 0; thisCellIndex < cell.length; thisCellIndex++){
            // Paragraph
            if(jQuery(cell[thisCellIndex]).is("p")){
                var cellInnerContent = jQuery(cell[thisCellIndex]).contents();

                if(jQuery(cellInnerContent).is("b")){
                    // HIER FETTDRUCK
                    doc.setFont(font, "bold");
                    var thisCellContent = jQuery(cell[thisCellIndex]).text();
                    thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                    linesThisCell += thisCellContentArray.length;
                    doc.setFont(font, "normal");
                }
                else{
                    var thisCellContent = jQuery(cell[thisCellIndex]).text();
                    thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                    linesThisCell += thisCellContentArray.length;
                }
            }
            else if(jQuery(cell[thisCellIndex]).is("b")){
                var cellInnerContent = jQuery(cell[thisCellIndex]).contents();

                if(jQuery(cellInnerContent).is("p")){
                    doc.setFont(font, "bold");
                    var thisCellContent = jQuery(cell[thisCellIndex]).text();
                    thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                    linesThisCell += thisCellContentArray.length;
                    doc.setFont(font, "normal");
                }
                else{
                    doc.setFont(font, "bold");
                    var thisCellContent = jQuery(cell[thisCellIndex]).text();
                    thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                    linesThisCell += thisCellContentArray.length;
                    doc.setFont(font, "normal");
                }
            }
        }

        return linesThisCell;

    }

    function pdfGetGBUCellContent(doc, cell, width, font){
        var contentArray = [];
        var styleArray = [];

        for(var thisCellIndex = 0; thisCellIndex < cell.length; thisCellIndex++){
            // Paragraph
            if(jQuery(cell[thisCellIndex]).is("p")){
                // Rufe Inhalt des Paragraphen ab und überprüfe auf Style-Elemente
                var paragraphInnerContent = jQuery(cell[thisCellIndex]).contents();

                if(jQuery(paragraphInnerContent).is("b")){
                    // Fettdruck
                    doc.setFont(font, "bold");
                    var thisCellContent = jQuery(cell[thisCellIndex]).text();
                    thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                    for(var contentIndex = 0; contentIndex < thisCellContentArray.length; contentIndex++){
                        contentArray.push(thisCellContentArray[contentIndex]);
                        styleArray.push("bold");
                    }
                    doc.setFont(font, "normal");
                }
                else{
                    // Normaldruck
                    var thisCellContent = jQuery(cell[thisCellIndex]).text();
                    thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                    for(var contentIndex = 0; contentIndex < thisCellContentArray.length; contentIndex++){
                        contentArray.push(thisCellContentArray[contentIndex]);
                        styleArray.push("normal");
                    }
                }
            }
            else if(jQuery(cell[thisCellIndex]).is("b")){
                 // Rufe Inhalt des b-Tags ab und überprüfe auf weitere Style-Elemente
                var paragraphInnerContent = jQuery(cell[thisCellIndex]).contents();

                if(jQuery(paragraphInnerContent).is("p")){
                    doc.setFont(font, "bold");
                    var thisCellContent = jQuery(cell[thisCellIndex]).text();
                    thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                    for(var contentIndex = 0; contentIndex < thisCellContentArray.length; contentIndex++){
                        contentArray.push(thisCellContentArray[contentIndex]);
                        styleArray.push("bold");
                    }
                    doc.setFont(font, "normal");
                }
                else{
                    doc.setFont(font, "bold");
                    var thisCellContent = jQuery(cell[thisCellIndex]).text();
                    thisCellContent = pdfReplaceSpecialCharacters(thisCellContent);
                    var thisCellContentArray = doc.splitTextToSize(thisCellContent, width);
                    for(var contentIndex = 0; contentIndex < thisCellContentArray.length; contentIndex++){
                        contentArray.push(thisCellContentArray[contentIndex]);
                        styleArray.push("bold");
                    }
                    doc.setFont(font, "normal");
                }
            }
        }

        return [contentArray, styleArray];
    }
</script>