Ho bisogno di pre-produrre un milione o due file PDF da un semplice modello (poche pagine e tabelle) con caratteri incorporati. Di solito, rimango a un livello basso in un caso come questo, e compongo tutto con una libreria come ReportLab, ma mi sono unito a tarda ora nel progetto.Un modo affidabile e veloce per convertire un file ODT zillion in PDF?
Attualmente, ho un template.odt e uso i marcatori nei file content.xml per riempire con i dati di un DB. Posso creare facilmente i file ODT, guardano sempre con rigore.
Per l'ODT alla conversione PDF, sto utilizzando OpenOffice in modalità server (e PyODConverter w/named pipe), ma non è molto affidabile: in un lotto di documenti, c'è finalmente un punto dopo il quale tutti i trattati i file vengono convertiti in rifiuti (caratteri e lettere errati sparsi su tutta la pagina).
Il problema non è prevedibilmente riproducibile (non dipende dai dati), succede in OOo 2.3 e 3.2, in Ubuntu, XP, Server 2003 e Windows 7. Il rilevatore Heisenbug sta ticchettando.
Ho provato a ridurre la dimensione dei lotti e riavviare OOo dopo ciascuno; ancora, una piccola percentuale dei documenti sono incasinati.
Naturalmente scriverò su questo nelle mailing list Ooo, ma nel frattempo, ho una consegna e ho già perso troppo tempo.
Dove posso andare?
evitare completamente il formato ODT e andare per un altro sistema di template.
- suggerimenti? Tutto ciò che richiede pochi secondi per essere eseguito è troppo lento. OOo impiega circa un secondo e somme a 15 giorni di tempo di elaborazione. Ho dovuto scrivere un programma per raggruppare i lavori su diversi client.
Conservare il formato ma passare a un altro strumento/programma per la conversione.
- Quale? Ci sono molte applicazioni nel repository shareware o commerciali per Windows, ma provarle ognuna è un compito scoraggiante. Alcuni sono troppo lenti, alcuni non possono essere eseguiti in batch senza acquistarli prima, alcuni non possono funzionare da riga di comando, ecc.
- Gli strumenti open source tendono a non reinventare la ruota e spesso dipendono da openoffice.
Conversione in un formato .DOC intermedio potrebbe aiutare ad evitare il bug di OOo, ma sarebbe il doppio del tempo di elaborazione e complicare un compito che è già troppo peloso.
Provare a produrre i PDF due volte e confrontarli, scartando l'intero lotto se c'è qualcosa di sbagliato.
- Sebbene i documenti siano uguali, non conosco alcun modo per confrontare il contenuto binario.
Riavviare OOo dopo l'elaborazione di ciascun documento.
- ci sarebbe voluto molto più tempo per produrli
- sarebbe abbassare la percentuale dei file sbagliato, e rendono molto difficile la loro identificazione.
Andare per ReportLab e ricreare le pagine al livello di programmazione. Questo è l'approccio che proverò tra qualche minuto.
Impara a formattare correttamente gli elenchi puntati
grazie mille.
Modifica: sembra che non sia possibile utilizzare ReportLab, non mi consente di incorporare il carattere. Il mio font è disponibile nelle versioni TrueType e OpenType.
Il TrueType dice "TTFError: Font non consente subsetting/embedding (0100)".
La versione di OpenType indica che "i profili di [...] postscript di TTFError non sono supportati".
Molto molto divertente.
C'è un modo per rilevare in modo affidabile il danneggiamento nei file PDF risultanti? Qualche tipo di firma che contengono tutti? Potrebbe essere la soluzione a breve termine più semplice per riavviare semplicemente OOo e ricostruire il documento corrente quando viene prodotto un file PDF danneggiato. –
Non sono riuscito a trovare un modo. La dimensione del file è simile, a volte le lettere si diffondono nella pagina, a volte vengono utilizzati i tipi di carattere errati e talvolta il carattere è quello giusto ma viene visualizzato in grassetto. –