Files
troxler-skat/generate_back.js
2026-05-31 14:39:45 -05:00

81 lines
4.2 KiB
JavaScript

const fs = require('fs');
const path = require('path');
// Exakte Maße in Pixeln für 300 DPI (2.3125" x 3.5625")
const width = 694;
const height = 1069;
const svgContent = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${width} ${height}" width="${width}" height="${height}">
<defs>
<linearGradient id="bgGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#111827" />
<stop offset="100%" stop-color="#1F2937" />
</linearGradient>
<linearGradient id="goldGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#D4AF37" />
<stop offset="50%" stop-color="#F3E5AB" />
<stop offset="100%" stop-color="#AA7C11" />
</linearGradient>
<g id="pattern-quarter">
<path d="M 0 0 L 150 150 L 0 300 Z" fill="none" stroke="#E53935" stroke-width="2" opacity="0.4"/>
<path d="M 0 0 L 120 120 L 0 240 Z" fill="none" stroke="#FDD835" stroke-width="2" opacity="0.4"/>
<path d="M 0 0 L 90 90 L 0 180 Z" fill="none" stroke="#43A047" stroke-width="2" opacity="0.4"/>
<path d="M 0 0 L 60 60 L 0 120 Z" fill="none" stroke="#2196F3" stroke-width="2" opacity="0.3"/>
</g>
</defs>
<rect width="${width}" height="${height}" rx="35" fill="url(#bgGradient)" />
<rect x="25" y="25" width="${width - 50}" height="${height - 50}" rx="20" fill="none" stroke="url(#goldGradient)" stroke-width="3" opacity="0.8" />
<rect x="35" y="35" width="${width - 70}" height="${height - 70}" rx="15" fill="none" stroke="#ffffff" stroke-width="1" opacity="0.1" />
<g transform="translate(35, 35)">
<use href="#pattern-quarter" />
<use href="#pattern-quarter" transform="rotate(90) scale(1,-1)" />
</g>
<g transform="translate(${width - 35}, 35) scale(-1, 1)">
<use href="#pattern-quarter" />
<use href="#pattern-quarter" transform="rotate(90) scale(1,-1)" />
</g>
<g transform="translate(35, ${height - 35}) scale(1, -1)">
<use href="#pattern-quarter" />
<use href="#pattern-quarter" transform="rotate(90) scale(1,-1)" />
</g>
<g transform="translate(${width - 35}, ${height - 35}) scale(-1, -1)">
<use href="#pattern-quarter" />
<use href="#pattern-quarter" transform="rotate(90) scale(1,-1)" />
</g>
<g transform="translate(${width / 2}, ${height / 2})">
<rect x="-120" y="-120" width="240" height="240" rx="20" fill="none" stroke="url(#goldGradient)" stroke-width="4" transform="rotate(45)" />
<rect x="-100" y="-100" width="200" height="200" rx="15" fill="none" stroke="#ffffff" stroke-width="1" opacity="0.2" transform="rotate(45)" />
<circle cx="0" cy="0" r="70" fill="none" stroke="#E53935" stroke-width="3" opacity="0.7" />
<circle cx="0" cy="0" r="60" fill="none" stroke="#FDD835" stroke-width="3" opacity="0.7" />
<circle cx="0" cy="0" r="50" fill="none" stroke="#43A047" stroke-width="3" opacity="0.7" />
<circle cx="0" cy="0" r="40" fill="none" stroke="#212121" stroke-width="3" opacity="0.7" />
<circle cx="0" cy="0" r="30" fill="#111827" stroke="url(#goldGradient)" stroke-width="2" />
<g transform="translate(0, -250)">
<text x="0" y="0" font-family="'Helvetica Neue', Helvetica, Arial, sans-serif" font-weight="900" font-size="36" fill="url(#goldGradient)" text-anchor="middle" letter-spacing="6">TROX</text>
</g>
<g transform="rotate(180) translate(0, -250)">
<text x="0" y="0" font-family="'Helvetica Neue', Helvetica, Arial, sans-serif" font-weight="900" font-size="36" fill="url(#goldGradient)" text-anchor="middle" letter-spacing="6">TROX</text>
</g>
</g>
</svg>`;
// Zielordner überprüfen und anlegen, falls noch nicht vorhanden
const outputDir = path.join(__dirname, 'karten_export_v2');
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir);
}
// SVG Datei speichern
const fileName = 'trox_card_back.svg';
fs.writeFileSync(path.join(outputDir, fileName), svgContent);
console.log('Erfolgreich! Die Rückseite wurde als "trox_card_back.svg" im Ordner "karten_export_v2" generiert.');