81 lines
4.2 KiB
JavaScript
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.'); |