Namebadges

Table of Contents

  1. Canvas-Namebadges

    Um Namensschilder zu generieren, verwenden wir für üblich zwei verschiedene Varianten. Die erste Variante ist über SetaPDF ein PDF-Formular auszufüllen. Die zweite Variante ist über ein HTML5-Canvas. Beide Varianten haben bestimmte Vor- und Nachteile:

    SetaPDF:

    • + Massenexport möglich (für Vorproduktion)
    • - Browservorschau nicht möglich bzw. nur teilweise (neue Browser unterstützen das AcrobatReader-Plugin nicht mehr und die integrierten Reader sind suboptimal)

    Canvas:

    • + Browservorschau möglich, da es komplett nur im Browser abläuft
    • - derzeit kein Massenexport möglich

    Die Variante über SetaPDF wird für üblich in einer Action umgesetzt.

    Canvas-Namebadges

    Um ein Canvas-Namebadge zu erstellen, muss man im "kon2/namebadges"-Ordner z.B. eine "Participant.js"-Datei erstellen. Der Name ist hierbei der Objekt-Typ (es können auch Templates verwendet werden).

    Die Javascript-Datei wird lediglich eingelesen und in dem View-Skript "konquadrat/src/View/Backend/Namebadge/show.phtml" an dem Platzhalter "<?=$this->config?>" eingebunden. 

    Alle Positionsangaben sind in mm und Schriftgrößen in pt. Die Schriftarten müssen von den Browsern gefunden werden können, also müssten im public-Ordner hinterlegt werden.

    Verfügbare Variablen:

    • "path" - der absolute Pfad
    • "data" - alle Daten von dem Objekt; AbstractObject::getData(), falls vorhanden wird anschließend noch "getNamebadgeData(): array" aufgerufen - das Ergebnis von getData() wird überschrieben 

    Die Konfiguration kann wie folgt aussehen:

    function getNamebadgeConfig(data) {
        return {
            width: 86,
            height: 54,
            previewDpi: 120,
            printDpi: 1000,
    
            frontBlocks: [{
                type: 'text',
                name: 'VIP',
                value: data.Vip ? 'VIP' : '',
                x: 60,
                y: 15,
                width: 30,
                color: 'rgb(255,0,0)',
                font: path + 'namebadge/FrutigerLTCom-Bold.ttf',
                fontSize: 9,
                align: 'right'
            }, {
                type: 'text',
                name: 'Name',
                value: data.Firstname + ' ' + data.Lastname,
                x: 18,
                y: 40,
                width: 60,
                color: 'rgb(0,0,0)',
                font: path + 'namebadge/FrutigerLTCom-Bold.ttf',
                fontSize: 15
            }, {
                type: 'text',
                name: 'Street',
                value: data.Street + '',
                x: 18,
                y: 43.5,
                width: 60,
                color: 'rgb(0,0,0)',
                font: path + 'namebadge/FrutigerLTCom-Roman.ttf',
                fontSize: 9
            }, {
                type: 'text',
                name: 'City',
                value: data.Zipcode + ' ' + data.City,
                x: 18,
                y: 47,
                width: 60,
                color: 'rgb(0,0,0)',
                font: path + 'namebadge/FrutigerLTCom-Roman.ttf',
                fontSize: 9
            }],
            backBlocks: [{
                type: 'text',
                name: 'SomeText',
                value: data.SomeotherText,
                x: 14,
                y: 15,
                width: 60,
                color: 'rgb(0,0,0)',
                font: path + 'namebadge/FrutigerLTCom-Roman.ttf',
                fontSize: 9,
                multiLine: 2
                //autoResizeText: 'font-size'
            }, {
                type: 'text',
                value: '*12345678*',
                x: 15,
                y: 44,
                width: 56,
                color: 'rgb(0,0,0)',
                font: path + 'namebadge/code39.ttf',
                fontSize: 45,
                autoResizeText: 'condensed'
            }, {
                type: 'text',
                value: '12345678',
                x: 37,
                y: 47,
                width: 60,
                color: 'rgb(0,0,0)',
                font: path + 'namebadge/FrutigerLTCom-Roman.ttf',
                fontSize: 9
            }]
        };
    }