Convertire file di testo in pdf

Inserito da il21 June 2007, 1928 visite totali

Nel mondo dell’informatica capita molto spesso di dover lavorare con dei semplici file di testo, che possono essere dei log o report di detterminate elaborazioni.

Capita altrettanto frequentemente di avere la necessità di avere a disposizione lo stesso file in altri formati. Uno dei formati più portabili e senza ombra di dubbio il formato PDF di Adobe.

Lo script qui proposto ha la funzione di convertire dei semplici file di testo in PDF e per poter essere eseguito con successo occorre avere installati sul proprio sistema enscript e ghostscript.

L’uso di TXTOPDF è molto semplice: dopo averlo reso eseguibile

chmod +x txtopdf

e averlo copiato in /usr/bin, operazione di norma possibile solo con i privileggi di root, basta eseguirlo passando come parametro il nome del file che si vuole convertire

cp txtopdf /usr/bin/
txtopdf path_file_di_testo

Se non potete copiare txtopdf in una dir del PATH per eseguirlo dovrete digitare ogni volta il path completo (ovvero digitare l’intero percorso di dove si trova lo script).

Un altro modo, valido per qualsiasi altro script o programma, è quello di aggiungere un alias nel proprio file .bashrc in modo da diminuire i caratteri digitati:

alias txtopdf="~/prove/script/txtopdf"

Txtopdf da prima converte il file di testo in formato postscript e poi questo viene convertito in pdf.

#!/bin/sh
#**********************************#
##********************************##
#Autore : Lucio Zara (pennega)
#Mail : pennega@gmail.com
#Nome : txtopdf
#Licenza : GPL
##*******************************##
#*********************************#

#script che traforma un semplice file di testo, passato in input, in pdf
#da prima si trasforma il testo in postscript
#e poi il postscript in pdf
######NB 
#	non vengono passati parametri hai programmi per la trasformazione
#	se ti serve cambiare alcuni parametri leggi le pagine di man per scoprire come fare
#	per poter funzionare occorrono enscript e ghostscript
#
######BUG
#	ci sono dei problemi con la conversione delle lettere accentate
#	il pdf creato non sembra in standard
#	vari ed eventuali
#Versione 0.4

# nome e locazione degli eseguibili
TXT2PS_NAME="enscript"
PS2PDF_NAME="ps2pdf"
TXT2PS=`which $TXT2PS_NAME`
PS2PDF=`which $PS2PDF_NAME`

#opzioni per enscript
HEADER="-B" #header delle pagine vuoto
ELANG="-Ebash" #evidenzia le parole chiave nei linguaggi di prog.
EFONT="-f arial12" #setta il carattere e la grandezza
ENC="-X ascii" #setta la codifca

#controllo se i programmi esistono
if [ -e "$TXT2PS" ]; then
	echo -e "\n\tEnscript trovato"
else
	echo -e "\n\tTi manca enscript. Installalo"
	exit 1
fi

if [ -e "$PS2PDF" ] ;then
	echo -e "\n\tGhostscript trovato"
else
	echo -e "\n\tTi manca ghostscript. Installalo"
	exit 1
fi

if [ -z "$1" ]; then
	echo "questa è 1 $1"
	echo -e "\n\tDevi usare \"$0 file_txt\""
	exit 1
else
	echo -e "\n\tProcedo alla conversione del file"
	#crea il file .ps
	#se volete passare dei parametri fatelo dopo $1
	$TXT2PS $1 -q -o $1.ps 
	#controllo se la creazione del file è andata a buon fine
	RSR=`echo $?`
	if [ "$RSR" != "0" ];then 
		echo -e "\n\tC'è stato un errore nella conversione del file:"
		echo -e "\n\t\tConversione da S1 a $1.ps fallita!"	
		exit 1
	fi	
	#crea il file .pdf
	$PS2PDF $1.ps $1.pdf
	RSR=`echo $?`
	if [ "$RSR" != "0" ];then
		echo -e "\n\tC'è stato un errore nella conversione del file:"	
		echo -e "\n\t\tConversione da $1.ps a $1.pdf fallita!"
		exit 1
	fi
	#rimuovo file .ps
	rm $1.ps
	echo -e "\n\tFile convertito regolarmente in $1.pdf"
	exit 0
fi

Il file .ps viene eliminato una volta completata la conversione nel file pdf e quest’ultimo viene salvato nello stesso path del file di origine.

Enscript è un programma che ammette molti parametri per migliorare la conversione del file, lo script qui riportato usa le impostazioni di default. Per conoscere tutti i parametri uttilizzabili si legga il man di enscript.

TXTOPDF è disponibile anche per il download sul server FTP.

Idee, critiche e migliorie sono come sempre bene accette 😉

3 commenti per “Convertire file di testo in pdf”

  1. Massimo Sedda scrive:

    Thank you Kafka, I have really appreciated all your suggestions on how to convert txt files to pdf files. Now I can work on my computer more comfortably than i could before. Thank you all guys. See you!

  2. Paolo scrive:

    Per svolgere la stessa operazione c’è anche il programma CUPS-PDF.
    Dalla finestra di stampa di un qualunque editor di testo si può scegliere di indirizzare il job anzichè a una periferica ad un file .pdf. Richiede che CUPS sia installato. Ciao

  3. pennega scrive:

    Si ottima soluzione anche quella però un pò scomoda se lo devi fare con tanti file, mentre con lo scriptino basta implementare un for e fa tutto con un solo comando… funzionalità che credo introdurrò presto 😉

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *