Motiv-Entwurf eingepasst (meet, in Trim-Fläche) + sevDesk-Diagnose-Logs
- Motiv-A6-Layout: Motiv vollständig in 148×105 eingepasst (meet, mittig) auf weißem A6-Grund statt randabfallend beschnitten (slice). - skrift-sevdesk: Lade-Log (Token gesetzt/fehlt) + Logs je Auftrag (source-Gate, bereits erstellt) zur Diagnose, warum ggf. nichts erzeugt wird. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -211,9 +211,11 @@ const handler = (router, { services, getSchema, logger }) => {
|
||||
if (!meta?.filename_disk) throw new Error(`Motiv-Datei ${fileId} nicht gefunden.`);
|
||||
const base64 = fs.readFileSync(path.join(UPLOAD_ROOT, meta.filename_disk)).toString('base64');
|
||||
const mime = meta.type || 'image/png';
|
||||
// A6 quer randabfallend: Motiv füllt die volle Beschnittfläche (cover), mittig.
|
||||
// A6 quer: Motiv wird VOLLSTÄNDIG in die Trim-Fläche (148×105) eingepasst
|
||||
// (mittig, nichts beschnitten) auf weißem A6-Grund inkl. 2 mm Beschnitt.
|
||||
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="152mm" height="109mm" viewBox="0 0 152 109">`
|
||||
+ `<image href="data:${mime};base64,${base64}" x="0" y="0" width="152" height="109" preserveAspectRatio="xMidYMid slice"/>`
|
||||
+ `<rect x="0" y="0" width="152" height="109" fill="#ffffff"/>`
|
||||
+ `<image href="data:${mime};base64,${base64}" x="2" y="2" width="148" height="105" preserveAspectRatio="xMidYMid meet"/>`
|
||||
+ `</svg>`;
|
||||
const files = new FilesService({ schema, accountability: null });
|
||||
const storage = (process.env.STORAGE_LOCATIONS || 'local').split(',')[0].trim() || 'local';
|
||||
|
||||
Reference in New Issue
Block a user