27 giugno 2012 - Linux 2.6.32-41-generic-pae -Ubuntu i686 GNU/Linux
- Ieri mi sono fatto uno script in 'bash/awk' (ho scoperto ieri awk, è meraviglioso, provatelo!) per intabellare e calcolare vari dati, filtrati da un file di testo, per poi creare un file di resoconto in testo semplice. Solo che, per distribuire ad altri questo file, dovrei farne tre versioni: Linux, Mac e Windows. Così ho pensato di convertirlo in PDF.
Con Synaptic ho cercato tra vari programmi installati, ne ho trovati molti che convertono da PS a PDF ma nessuno da testo a PDF. Googolando stessa cosa.
Idea! Faccio prima a farmi uno scriptino che utizza quello che ho, che a cercare in rete!
Avevo già utilizzato ps2pdf (credo che venga installato con Ghostscript) e ho visto che enscript converte testo in PS.
Ho tutto ciò che serve!
In un balletto, con poche righe di codice, mi sono levato il pensiero:
Più semplice di così!
Poi ho pensato che anche un piccolo script, da usarsi da solo, sarebbe stato comodo; così è nato txt2pdf.
Ho:
generalizzato l'input,
fatto un controllo su leggibilità e quindi esistenza del file,
verificato che i programmi necessari fossero installati,
convertito in PS, personalizzata l'header (spiegazione nei commenti) e verificato la corretta esecuzione,
convertito in PDF e verificato la corretta esecuzione,
cancellato il file .ps.
Fine! 8-)
Il file completo è questo: txt2pdf.sh; ha qualche commento in più ma utilizza il codice riportato finora.
Si potrebbe migliorare facendo qualche controllo aggiuntivo: come la verifica del mime e altro ...
...per ora lo lascio così! 8-p
Scaricare il file txt2pdf.sh, renderlo esguibile con chmod +x txt2pdf.sh.
Dalla directory in cui si è salvato, eseguirlo digitando: ./txt2pdf.sh file_da_convertire e premere il tasto Invio; verificato che non manchi nulla viene indicato dove e con che nome verrà creato il file PDF, se va bene premere s e poi Invio.
Se ci fossimo dimenticati di passare come parametro il nome del file da convertire, ci verrà chiesto di farlo. (Perché nessuno usa questo metodo?!?!?)
Per comodità andrebbe salvato nella directory user/local/bin o in un'altra directory presente nel PATH, in modo da poter eseguire lo script da qualsiasi posizione, naturalmente, indicando il percorso completo del file da convertire.
Se vedete errori o avete fatto miglioramenti siete pregati di farmi un fischio! info@ubaweb.it
Alla prossima 9-)
Porka miseria 8-\, per quello che devo fare io va bene ma... mi sono accorto che enscript non supporta la codifica UTF-8 e peggio ancora non supporta nemmeno quella ISO 8859-15 (che ha il simbolo dell'euro €); quindi se si utilizzano lettere accentate: il file di testo deve essere salvato in ISO 8859-1 o anche in ISO 8859-15 a patto che non si usino simboli non presenti in ISO 8859-1 come appunto €. Se il file non ha caratteri non presenti nell'ISO 8859-1 si può utilizzare anche l'UTF-8 che è la mia codifica di default, ma porka vakka... 8-|
1 luglio 2012 - Oggi sono tornato a lavorare sullo script, ho provato "a2ps" che dovrebbe supportare la codifica UTF-8 invece dopo varie prove ho verificato che purtroppo non supporta questa codifica. Peccato perché a2ps ha una marea di opzioni utili.
In Synaptic ho visto che u2ps converte file UTF-8 in PS, quindi l'ho installato con
sudo apt-get install gnome-u2ps.
Poi ho modificato il codice in modo da: eseguire enscript se il file da convertire è diverso da UTF-8, altrimenti eseguire u2ps.
Avrei potuto inserire del codice per convertire in UTF-8 il file da convertire in PDF, in modo da utilizzare solo u2ps; ma visto che a volte non è necessario utilizzare la codifica UTF-8 ho lasciato la possibilità di usare enscript.
Naturalmente ho aggiornato il file dello script txt2pdf.sh scaricabile.
Dimenticavo... l'estensione ".sh" può essere eliminata dal nome del file, non è necessaria; io generalmente la inserisco per identificare i vari tipi di linguaggio utilizzati negli script.
Se avete qualche suggerimento da darmi potete scrivermi all'indirizzo: info@ubaweb.it.
Alla prossima! 8-)
Tutto il contenuto di questo sito se non diversamente dichiarato è di Giovanni Ubaldi ed è distribuito con Licenza:
Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale.