Commits

Auto Magazine: el MVP funciona de punta a punta amb el número real

El material real destapa els errors, l'exportació a imprenta arriba amb CMYK i preflight, i la fase core es tanca amb l'informe tot en verd.

· auto-magazine · milestone

El projecte ha arribat on volia arribar des del primer dia: l'informe d'impremta, tot en verd, amb el número real de l'usuari dins. El criteri d'acceptació del mapa wayfinder —un número maquetat i exportat de principi a fi, passant el preflight i sense edició manual intermèdia— es va complir i va tancar la fase core amb trenta-set tests en verd.

El material real destapa el que no veuen els tests

La matinada va venir carregada. Maquetar en producció no funcionava i els logs del contenidor van mostrar un AssertionError dins de WeasyPrint: la capitular, una lletra inicial amb float a ::first-letter, funciona quan l'article comença en pàgina neta, però rebenta quan el flux continu parteix el primer paràgraf entre dues pàgines. Vam retirar el float i la lletra es queda gran i del color de marca sense flotar; la capitular flotant de veritat queda apuntada com a desig de disseny que avui no és fiable en WeasyPrint.

Tot seguit, les fotos dels articles reals no apareixien: estaven ancorades com a imatges flotants de Word (wp:anchor), que la llibreria python-docx no exposa per defecte. L'extracció ara les llegeix directament del XML del document, en ordre d'aparició, junt amb les imatges inserides al text. I encara en va quedar una de subtil: la foto destacada que surt de la subcarpeta desapareixia del PDF perquè dues llistes es repartien la responsabilitat. La galeria l'excloïa per ser la destacada, i l'espai de destacada només sabia dibuixar imatges incrustades al document. Ara la resolució és única: la destacada es dibuixa vingui d'on vingui (identificada per la seva empremta digital o SHA1) i tota la resta cau a la galeria, amb la garantia que cap imatge es queda sense lloc.

Exportar a impremta, amb franquesa

La sisena fase va portar el botó «Exportar a impremta»: conversió a CMYK (el model de color que fan servir les màquines d'impressió amb cian, magenta, groc i negre) real amb Ghostscript, metadades amb pikepdf i un preflight automàtic. El preflight és un control de qualitat que verifica que el document compleix tots els requisits tècnics abans d'imprimir. L'informe surt en verd o vermell al panell i comprova que les pàgines siguin múltiple de 4, el TrimBox (la mida final de tall) a totes les pàgines, el sagnat mínim de 3 mil·límetres i la resolució efectiva de les imatges.

Vam prendre dues decisions d'honestedat: sense Ghostscript a l'entorn el procés segueix, però la conversió a CMYK queda en vermell —el PDF mai es dona per vàlid a mitges— i els checks sense binari declaren «no disponible» en lloc de fingir una mesura. I encara en va sortir una de bona: l'informe arrossegava el color CMYK en vermell sense més detall, i la causa era un -d on havia d'anar un -s: ColorConversionStrategy és un paràmetre de cadena, i s'estava passant com a flag. Amb l'opció ben passada, el PDF final porta imatges en DeviceCMYK de veritat, verificat amb pikepdf.

El MVP, de punta a punta

Amb tot això, la fase core es tanca completa: hotfolder (una carpeta vigilada que processa els fitxers automàticament quan hi deixes material), extracció per capes amb IA, maquetació amb plantilles planes i tema, paginació amb flux continu i múltiple de 4, i exportació a impremta amb CMYK i preflight. Cap d'aquestes errades hauria aparegut amb material sintètic: provar amb el número real de l'usuari va ser el que les va destapar totes. Obre la fase de revisió i polit, amb les friccions ja apuntades al mapa i les millores que l'usuari vulgui demanar.