Tuesday, October 20, 2009

Solaris - PDF Printer

Precisei encarar este desafio de configurar uma impressora de PDF em Solaris, para receber a impressão de documentos em PostScript apartir do Kondor.

Encontrei este link que ajudou bastante:

http://aplawrence.com/SCOFAQ/FAQ_scotec7printtofile.html

Então os passos que fiz e cheguei ao sucesso são...

Criar a pasta que irá conter o script que receberá a os dados de impressão:

# mkdir /usr/local/PDFprinter


Criar uma outra pasta que irá conter o arquivos de PDF:

# mkdir /var/PDFprinter


Gerar este arquivo de script em /usr/local/PDFprinter/start que será usado para preparar o device da impressora e manter o device em sincronização com o script de impressão:

mknod /dev/PDFprinter p
chmod 777 /dev/PDFprinter
while true
do
cat /dev/PDFprinter | /usr/local/PDFprinter/print
done


Permissões de execussão:

# chmod +x /usr/local/PDFprinter/start


Gerar o script de impressão em /usr/local/PDFprinter/print:

date=`date "+%G%m%d_%H%M%S"`
tempFileName="/tmp/PDFprinter_$date"
while read stuff
do
echo $stuff >> $tempFileName
done
cat $tempFileName | grep -v "#####" > $tempFileName.tmp
mv $tempFileName.tmp $tempFileName
fileName="/var/PDFprinter/PDFprinter_$date.pdf"
ps2pdf -sPAPERSIZE=a4 $tempFileName $fileName


O comando ps2pdf faz parte do pacote ghostscript:

http://www.sunfreeware.com/programlistsparc10.html#ghostscript

E para definir o tamanho do papel é com o parâmetro ps2pdf -sPAPERSIZE=a4 ...

Permissões de execussão:

# chmod +x /usr/local/PDFprinter/print


Preparar e iniciar o device da impressora:

# /usr/local/PDFprinter/start &


Registrar o device da impressora e activar a impressora:

# lpadmin -p PDFPrinter -v /dev/PDFprinter
# accept PDFPrinter
# enable PDFPrinter


Agora é só mandar alguma coisa em PostScript para imprimir nesta impressora e ver o resultado em arquivos temporários em /tmp, e caso gere o PDF com sucesso deverá estar em /var/PDFprinter;