Um amigo me perguntou se eu sabia fazer a conversão de docs para PDF de forma automatizada no Linux. Eu disse que não mas que podia dar uma pesquisada rapidamente e fazer algo com shell script. Depois de ler algumas páginas do stack overflow e testar diversas formas de fazer a exportação para PDF, eu encontrei o que me pareceu mais legal. A utilização do libreoffice através da linha de comando.

O resultado foi o seguinte:

doc2PDF.sh


#!/bin/bash
#Author: Rodrigo Lira  

EXCLUDE=".pdf|.sh"

TODAY=`date +'%Y%m%d'`
files=`find . | egrep -v "$EXCLUDE"`

echo $files

if [ ! -z "$files" ] 

then	
	for file in $files
	do
#		name=`echo "$file" | awk -F "." '{ print $2 }'`
		echo "Converting $file"
        soffice --headless --convert-to pdf $file
	done

fi

Para minha surpresa, ele disse que na verdade o problema era transformar código fonte, ou seja arquivos de texto para PDF.
Refiz rapidamente o código para utilizar duas outras ferramentas: o enscript e o ps2pdf. O resultado foi o seguinte:

txt2PDF.sh


#!/bin/bash
#Author: Rodrigo Lira  

INCLUDE=".c$|.sh$|.java"

TODAY=`date +'%Y%m%d'`
files=`find . | egrep "$INCLUDE"`

echo $files

if [ ! -z "$files" ] 

then	
	for file in $files
	do
		name=`echo "$file" | awk -F "." '{ print $2 }'`
		echo "Converting $file"
        #soffice --headless --convert-to pdf $file
        enscript -p .${name}.ps ${file}
        ps2pdf .${name}.ps .${name}.pdf
        rm .${name}.ps
	done

fi

Em ambos, o script apenas convertem os arquivos que estão na mesma pasta dele, mas isso pode ser facilmente modificado.

Rodrigo Lira,