Mi è stato chiesto di mettere in piedi qualcosa per fare la conversione automatica di file provenienti da pacchetti office (.doc/.odt/.xls/.ppt) a immagini. un’immagine per pagina/slide.
Ritengo che la soluzione migliore sia passare attraverso openoffice.org e files pdf: con openoffice.org converto il file di input in un pdf, poi lo splitto [1] in un file per pagina e a questo punto converto ogni file pdf contenente una singola pagina in un’immagine (con convert, fornito da imagemagik).
Per lo split dei file .pdf avevo pensato di usare il classico pdftk, ma quando ho visto che dovevo installare gcj… Ho cercato un’alternativa.
Ho trovato stapler che sarebbe un sostituto di pdftk scritto in python facendo uso delle librerie pypdf. Funziona a meraviglia per quanto riguarda lo splitting, ma non offre nessuna opzione per specificare dove devono andare a finire i files di output.
Quindi ho forkato il progetto ed ho fatto le mie modifiche. Il risultato di queste operazioni sta sul repository di github. Ho già fatto un pull request, in modo che le mie modifiche siano integrate nel ramo principale. Mi sto interessando su come pacchettizzare stapler per ubuntu 12.04+.
Ok, adesso un po’ di comandi che ho composto che non voglio dimenticare
#splittare un file pdf in tanti files con una sola pagina per file:
stapler split INPUT.pdf -d output/
# convertire ognuno di questi files in un’immagine
for file in `ls output` ; do convert output/$file output-jpg/`echo $file | sed s/pdf/jpg/` ; done
Ok, adesso mi interessa sapere come posso piegare openoffice al mio volere.
All’idea di voler imparare a far trasformare dei files in pdf da openoffice.org senza dover usare l’interfaccia grafica o il mouse mi sento un po’ harry potter che vuole fare le magie senza la bacchetta. Il filo del mio mouse però non è fatto nè di corda di cuore di drago nè di piuma di fenice. Lol.
EDIT #1:
Ho appena scoperto che in realtà convert fa già molte cose per i fatti suoi:
convert sample.pdf sample.png
converte un pdf in un’immagine (ok lo sapevo) MA se questo pdf ha più di una pagina convert per i fatti suoi si prende la briga di creare diverse immagini per ogni pagina. Senza bisogno di stapler. Solo che i numeri non sono paddati: la pagina 1 è semplicemente sample_1.png invece di sample_01.png.
EDIT #2:
Per convertire un file .doc qualsiasi a pdf basta fare qualcosa come:
soffice –headless –convert-to pdf Z80MAN.doc
(si, come documento d’esempio ho usato il manuale di riferimento di Z80 Simulation, il simulatore del fantastico Z80 che usavamo a scuola – Ciao Mimino! <3).