import * as React from 'react'; import { Document, Page, View, Text, Image, StyleSheet, Font } from '@react-pdf/renderer'; import * as path from 'path'; // Wir nutzen Standard-Helvetica, da das Projekt Helvetica für sauberen Tech-Look vorsieht. const styles = StyleSheet.create({ // Size incl. 3mm bleed on all sides // 85x55 -> 91x61 -> 257.95 x 172.91 pt pageFront: { backgroundColor: '#001a4d', // KLZ Navy width: 257.95, height: 172.91, flexDirection: 'column', justifyContent: 'center', alignItems: 'center', position: 'relative', fontFamily: 'Helvetica', }, pageBack: { backgroundColor: '#FFFFFF', width: 257.95, height: 172.91, flexDirection: 'column', justifyContent: 'center', padding: 24, position: 'relative', fontFamily: 'Helvetica', }, logo: { width: 100, // Logo breite }, accentLine: { position: 'absolute', bottom: 0, left: 0, width: '100%', height: 8, backgroundColor: '#82ed20', // KLZ Green }, accentLineTop: { position: 'absolute', top: 0, left: 0, width: '100%', height: 8, backgroundColor: '#82ed20', // KLZ Green }, personInfo: { marginBottom: 16, }, name: { fontSize: 16, fontWeight: 'bold', color: '#000d26', letterSpacing: -0.5, marginBottom: 2, textTransform: 'uppercase', }, position: { fontSize: 8, color: '#82ed20', // Highlight im Text textTransform: 'uppercase', letterSpacing: 1, fontWeight: 'bold', }, contactGrid: { marginTop: 10, display: 'flex', flexDirection: 'column', gap: 4, }, contactRow: { flexDirection: 'row', alignItems: 'center', }, contactLabel: { width: 40, fontSize: 7, color: '#4b5563', fontWeight: 'bold', textTransform: 'uppercase', }, contactValue: { fontSize: 8, color: '#111827', }, logoTextWhite: { fontSize: 32, fontWeight: 700, color: '#FFFFFF', letterSpacing: 4, marginBottom: 4, }, logoTextBlue: { position: 'absolute', bottom: 24, right: 24, fontSize: 24, fontWeight: 700, color: '#001a4d', letterSpacing: 2, opacity: 0.3, }, }); export interface PersonData { name: string; position: string; phone: string; email: string; website: string; } interface PDFBusinessCardProps { person: PersonData; } export const PDFBusinessCard: React.FC = ({ person }) => { return ( {/* Front: Logo and Navy Background */} KLZ {/* Back: Contact Details */} {person.name} {person.position} Phone {person.phone} Email {person.email} Web {person.website} KLZ ); };