Ho un'applicazione WSGI che genera fatture e le archivia come PDF.Genera ODT/DOC (X) e converti in PDF, senza OO.o/MS
Finora ho risolto problemi simili con FPDF (o equivalenti), generando il PDF da zero come una GUI. Purtroppo questo significa che l'intera logica di formattazione (posizionamento di intestazioni, piè di pagina e contenuto, stile) si trova nell'applicazione, dove in realtà non dovrebbe essere.
Poiché i modelli esistono già nei formati Office (ODT, DOC, DOCX), preferirei semplicemente utilizzarli come base e inserire il contenuto effettivo. Ho trovato il framework Appy, che fa più che altro con i file ODT annotati.
Ciò lascia ancora aperto il problema più grande, ovvero: conversione di ODT (o DOC o DOCX) in PDF. Su un server Esecuzione di Linux. Senza librerie GUI. E così, senza OO.o o MS Office.
È possibile o è meglio mantenere lo stile nel mio codice?
Il contenuto effettivo che verrebbe compilato in realtà è piuttosto limitato: alcuni paragrafi, alcuni dei quali potrebbero essere facoltativi, un titolo o due, sempre nello stesso posto e poche righe di un tavolo. In HTML questo sarebbe banale.
MODIFICA: In sostanza, voglio una libreria in grado di generare file ODT da file ODF che fungono da modelli e una libreria in grado di convertire il risultato in PDF (che è probabilmente il punto cruciale).
ho pensato che il problema di questo approccio è che piè di pagina/avrebbero ancora bisogno di essere gestite direttamente intestazioni - devo continuare a piè di pagina nella stessa posizione in ogni pagina. So che i CSS hanno molte opzioni di stampa, ma non sono sicuro che sia in grado di farlo (dimostrami che sbaglio). –
Sembra che XHTML2PDF/Pisa supporti intestazioni e piè di pagina tramite alcune estensioni CSS. Dai un'occhiata a http://www.xhtml2pdf.com/doc/pisa-en.html - la sezione 7.4 contiene un esempio su come creare un piè di pagina su ogni pagina in un documento. –
Questo sembra fare il trucco. Grande! Dovrò giocherellare un po ', ma penso che sia una soluzione perfetta per mantenere lo stile fuori dal codice. Lascia comunque la ridondanza di ricreare un modello ODF/DOC (X) come XHTML/CSS +, ma questa è solo una preoccupazione minore. –