Expolinc Roll-Up Compact – Robustes und stilvolles Roll-up-System
PDF-Druckvorlage generieren Breite (cm): 85 100 Höhe (cm): 223 161 170 180 190 220 PDF mit Beschnitt generieren Produktionsmaße: ROT = Produktionsformat – BLAU = Zugeschnittenes Ro llup – GRÜN = Sicherheitsbereich – // Panel Toggle document.getElementById('calculatorToggleVis24').addEventListener('click', () => { const panel = document.getElementById('calculatorPanelVis24'); panel.style.display = panel.style.display === 'none' ? 'block' : 'none'; }); // --- Live-Legende (exakte Maße) — Geometrie unverändert --- const fmt = (n) => String(n).replace('.', ','); const fmtPair = (b, h) => `${fmt(b)} × ${fmt(h)} cm`; function updateLegend() { const breite = parseInt(document.getElementById('breiteSelect').value, 10); const hoehe = parseInt(document.getElementById('hoeheSelect').value, 10); const rotB = breite + 2; // sichtbar + 2 cm Breite const rotH = hoehe + 17; // sichtbar + 17 cm Höhe const blauB = rotB - 2 * 1; // = breite const blauH = rotH - 2 * 1; // = hoehe + 15 const gruenB = rotB - 2 * 1.5; // = breite - 1 const gruenH = hoehe - 2; // = sichtbar - 2 document.getElementById('rotOut').textContent = fmtPair(rotB, rotH); document.getElementById('blauOut').textContent = fmtPair(blauB, blauH); document.getElementById('gruenOut').textContent = fmtPair(gruenB, gruenH); } ['breiteSelect', 'hoeheSelect'].forEach(id => { document.getElementById(id).addEventListener('change', updateLegend); }); updateLegend(); // --- PDF-Generierung --- document.getElementById('generatePdfVis24').addEventListener('click', async () => { const breite = parseInt(document.getElementById('breiteSelect').value, 10); // sichtbar const hoehe = parseInt(document.getElementById('hoeheSelect').value, 10); // sichtbar // Geometrie — UNVERÄNDERT const ROT_SIDE_CM = 1; // +1 cm je Seite const ROT_TOP_CM = 1; // +1 cm oben const ROT_BOTTOM_CM = 16; // +16 cm unten const BLUE_INSET_CM = 1; // Blau 1 cm innerhalb Rot rundum const GREEN_SIDE_CM = 1.5; // Grün 1.5 cm von Rot links/rechts const GREEN_TOP_CM = 2.0; // Grün 2.0 cm von Rot oben const GREEN_BOTTOM_CM = 17.0; // Grün 17.0 cm von Rot unten const mmToPt = (mm) => mm * 2.83465; const cmToPt = (cm) => mmToPt(cm * 10); const visibleWpt = cmToPt(breite); const visibleHpt = cmToPt(hoehe); // ROT-Dokumentgröße const totalWidthPt = visibleWpt + 2 * cmToPt(ROT_SIDE_CM); const totalHeightPt = visibleHpt + cmToPt(ROT_TOP_CM + ROT_BOTTOM_CM); if (!window.PDFLib) { alert('PDF-Bibliothek nicht geladen.'); return; } const { PDFDocument, rgb, StandardFonts } = window.PDFLib; const pdfDoc = await PDFDocument.create(); const font = await pdfDoc.embedFont(StandardFonts.HelveticaBold); const page = pdfDoc.addPage([totalWidthPt, totalHeightPt]); // Linien page.drawRectangle({ x: 0, y: 0, width: totalWidthPt, height: totalHeightPt, borderColor: rgb(1,0,0), borderWidth: 1 }); // ROT const blueInsetPt = cmToPt(BLUE_INSET_CM); page.drawRectangle({ x: blueInsetPt, y: blueInsetPt, width: totalWidthPt - 2 * blueInsetPt, height: totalHeightPt - 2 * blueInsetPt, borderColor: rgb(0,0,1), borderWidth: 1 }); // BLAU const greenX = cmToPt(GREEN_SIDE_CM); const greenW = totalWidthPt - 2 * cmToPt(GREEN_SIDE_CM); const greenY = cmToPt(GREEN_BOTTOM_CM); const greenH = totalHeightPt - cmToPt(GREEN_TOP_CM + GREEN_BOTTOM_CM); page.drawRectangle({ x: greenX, y: greenY, width: greenW, height: greenH, borderColor: rgb(0,0.6,0), borderWidth: 1 }); // GRÜN // Texte (groß, fett), mit max. 60 cm Breite bei langen Passagen const headlineSize = 80; const infoSize = 50; const MAX_TEXT_WIDTH_CM = 60; const rotBreiteCm = breite + 2; const rotHoeheCm = hoehe + 17; const blauBreiteCm = rotBreiteCm - 2 * BLUE_INSET_CM; // = breite const blauHoeheCm = rotHoeheCm - 2 * BLUE_INSET_CM; // = hoehe + 15 const gruenBreiteCm = rotBreiteCm - 2 * GREEN_SIDE_CM; // = breite - 1 const gruenHoeheCm = hoehe - 2; // = sichtbar - 2 let yCursor = totalHeightPt - cmToPt(8); const drawCenteredText = (text, size, y, color = rgb(0, 0, 0)) => { const textWidth = font.widthOfTextAtSize(text, size); const x = (totalWidthPt - textWidth) / 2; page.drawText(text, { x, y, size, font, color }); }; const drawWrappedText = (text, size, y, maxWidthCm, color = rgb(0,0,0)) => { const maxWidthPt = cmToPt(maxWidthCm); const words = text.split(' '); let line = ''; const lines = []; for (let i = 0; i < words.length; i++) { const testLine = line + words[i] + ' '; const testWidth = font.widthOfTextAtSize(testLine, size); if (testWidth > maxWidthPt && i > 0) { lines.push(line.trim()); line = words[i] + ' '; } else { line = testLine; } } lines.push(line.trim()); for (const ln of lines) { const lw = font.widthOfTextAtSize(ln, size); const x = (totalWidthPt - lw) / 2; page.drawText(ln, { x, y, size, font, color }); y -= size * 1.2; // knapper Zeilenabstand } return y; }; drawCenteredText('VIS24 Druckvorlage: RollUp', headlineSize, yCursor); yCursor -= cmToPt(4); drawCenteredText(`Sichtbarer Bereich: ${breite} × ${hoehe} cm`, infoSize, yCursor); yCursor -= cmToPt(5); drawCenteredText(`ROT = Produktionsformat inkl. 10 mm Beschnitt: ${rotBreiteCm} × ${rotHoeheCm} cm`, infoSize, yCursor, rgb(1,0,0)); yCursor -= cmToPt(5); drawCenteredText(`BLAU = Endformat (zugeschnittenes Rollup): ${blauBreiteCm} × ${blauHoeheCm} cm`, infoSize, yCursor, rgb(0,0,1)); yCursor -= cmToPt(5); drawCenteredText(`GRÜN = Sicherheitsbereich: ${gruenBreiteCm} × ${gruenHoeheCm} cm`, infoSize, yCursor, rgb(0,0.6,0)); yCursor -= cmToPt(3.5); yCursor = drawWrappedText( 'Abstand der Texte/Informationen zum Rand des Endformats. Dies verhindert unerwünschten Anschnitt.', infoSize, yCursor, MAX_TEXT_WIDTH_CM ); // Kassette-Hinweis (mit festem Umbruch + max. 60 cm Breite) yCursor -= cmToPt(5); yCursor = drawWrappedText( 'Hinweis: Beim Roll-up ist am unteren Rand des Banners eine zusätzliche Fläche von 150 mm vorgesehen.', infoSize, yCursor, MAX_TEXT_WIDTH_CM ); yCursor -= cmToPt(1); yCursor = drawWrappedText( 'Sie dient ausschließlich der Befestigung in der Kassette.', infoSize, yCursor, MAX_TEXT_WIDTH_CM ); yCursor -= cmToPt(1); yCursor = drawWrappedText( 'Um unschöne Blitzer zu vermeiden, kann dieser Bereich farbig hinterlegt werden.', infoSize, yCursor, MAX_TEXT_WIDTH_CM ); // Download const pdfBytes = await pdfDoc.save(); const blob = new Blob([pdfBytes], { type: 'application/pdf' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `VIS24_Druckvorlage_${breite}x${hoehe}_plus16cm.pdf`; document.body.appendChild(a); a.click(); a.remove(); URL.revokeObjectURL(url); }); Expolinc Roll-Up Compact – Die ideale Lösung für Ihre Werbebotschaft Produktbeschreibung Das Expolinc Roll-Up Compact kombiniert langlebiges Design mit einfacher Handhabung. Es ist speziell dafür entwickelt, Ihre Marke oder Botschaft stilvoll und effektiv zu präsentieren. Dieses hochwertige Roll-Up eignet sich perfekt für Messen, Konferenzen, Verkaufsräume oder Promotions. Eigenschaften und Vorteile Stabile Aluminiumkonstruktion für Langlebigkeit Einfache Montage und Demontage ohne Werkzeuge Kompakte Tragetasche für maximalen Komfort Verfügbar in verschiedenen Breiten und Höhen Hochwertige Druckqualität für maximale Sichtbarkeit Technische Daten Material Hochwertiges Aluminium Grafikgröße 85 cm x 200 cm (Standard), andere Größen verfügbar Gewicht Ca. 3,5 kg inkl. Tragetasche Häufige Fragen (FAQ) 1. Was macht das Roll-Up Compact besonders? Die höhenverstellbare Teleskopstange (160–223 cm) macht das Roll-Up flexibel einsetzbar – kompakt und gleichzeitig wirkungsvoll. 2. Für welche Einsätze eignet es sich? Ideal für Messen, POS, Promotion-Aktionen und Firmenveranstaltungen – überall, wo kompakte Kommunikation zählt. 3. Wie wird es transportiert? Mitgelieferte Tragetasche schützt das System zuverlässig und erleichtert mobilen Einsatz. 4. Wie läuft der Aufbau ab? Werkzeugfrei in unter 2 Minuten – Stange aufstellen, Banner einhängen, fertig. 5. Gibt es Zubehör? Ja, u.a. LED-Leuchten, Ersatzteile und zusätzliche Bannerkassetten. 6. Ist es langlebig? Ja – dank Aluminium-Gehäuse und hochwertigen Druckmaterialien für häufige Einsätze geeignet. 7. Wie lagere ich das System richtig? Nach Gebrauch Banner einrollen und das System geschützt in der Tasche lagern – staubfrei und kompakt. 8. Warum Expolinc Compact? Weil es mobil, stabil, professionell und vielseitig einsetzbar ist – ideal für moderne Markenkommunikation.