Este arquivo mostra como configurar uma impressora PDF para ser utilizada pelas estações Windows através do Samba, no Linux, com alta qualidade e rapidez.
Não sou um expert em programação de script do Linux, mas consegui fazer algo legal que faz o que eu quero. Detalhes são: coloque o script dentro de /usr/bin, assim você consegue executar ele mais facilmente. Não esqueça de setar as permissões de execução:
chmod +x <script em questão>
No caso acima nomeei o script como printpdf, para ficar mais fácil de saber para que serve.
O nome do arquivo final gerado é extraído de dentro do próprio PS, da variável "%%Title:".
Cuidado para que o formato de saída PS esteja configurado para não compactar(mais informações na próxima seção). Reinicie o Samba.
Abaixo o script, copie e cole à vontade.
#!/bin/bash
# Script para impressão de PostScript para PDF
# Entrada pelo programa externo samba
# O Documento final e salvo com o nome armazenado em
# "%%Title: " do arquivo PS
# gravado no arquivo ps, caso o nome seja Microsoft, renomeie ele
# Feito por Hernandi Krammes F. - 02-04-2004
DATE=`date +%b%d-%H%M` # nome aleatório para o arquivo,
# assim +1 pode imprimir ao mesmo tempo
OUTDIR=/base/p/pdf # onde os dados serão salvos
# meio complexo, mas funciona perfeito! Se alguém tiver outra forma mais limpa
NOMEARQUIVO=`grep -m 1 -i "%%Title" "$1" |cut -f 2- -d' '|cut -f 1 -d'.'|sed -e 's/[
()]//g'`
# MUITA ATENÇÃO!!!! alguns programas não geram corretamente o campo %%Title no
# arquivo PS. Portanto, alguns IF podem ser necessários, caso queira usar com programas
# que geram saídas certas com os nomes e os que não geram saídas certas. Também,
# pode ser usado somente a data acima, evitando estes Ifs e podendo gerar os nomes
# finais com usuário+data. Fica a critério de quem vai utilizar. A linha que captura o
# nome do arquivo, acima, é MUITO EFICIENTE
#para testes, exibia o nome do arquivo
echo $NOMEARQUIVO
# aqui esta a mágica, ps2pdf13. Existem outros scripts que fazem o mesmo serviço. #Parece que tem alguns que já conseguem até mesmo bloquear o arquivo, e gera-lo com #chaves criptográficas?! Bom, muito simples isto
ps2pdf13 $1 /tmp/$NOMEARQUIVO.temp
#o arquivo gerado é $nomearquivo.temp
#movemos ele para a pasta de saída com o nome correto
mv /tmp/$NOMEARQUIVO.temp $OUTDIR/$NOMEARQUIVO.pdf
# apagamos o arquivo temporário gerado pelo samba e pronto!
rm $1
[1] Comentário enviado por agk em 01/02/2006 - 08:38h
Realmente interessante, sem contar que também é muito útil, imagine, mandar qualquer documento para a impressora e ter ele em pdf.
Parabéns, ótimo artigo, bem explicado, mostra como é simples e flexível o nosso querido pinguim.
[3] Comentário enviado por engos em 02/02/2006 - 10:35h
O assunto é interessante, mas já existem artigos e dicas mostrando a mesma coisa, não consegui detectar nada de especial ao ponto de ser feito outro artigo...
[5] Comentário enviado por agk em 02/02/2006 - 16:43h
Olha pelos testes que fiz isso imprime qualquer coisa, pois está salvando como postscript (ps) e depois convertendo para pdf. Sabe aquelas páginas de internet com inscrição e que tem boleto com código de barras, pois é você pode guardar uma cópia delas em pdf :).
Eu já armazenava cópias de páginas em pdf usando o mozilla, imprimindo para arquivo (.ps) e depois convertendo para pdf, funcionava muito bem, só que agora ficou mais prático, manda imprimir e pronto, já está em pdf.
[8] Comentário enviado por fla_torres em 11/09/2006 - 15:09h
Olá, utilizei seu artigo para configurar uma impressora pdf aqui, segue algumas alteraçoes no shell, pois eu tinha problemas no nome dos arquivos via web:
[9] Comentário enviado por adrianoc em 31/10/2008 - 13:08h
muito bom este arquivo mas eu estou com um problema com os arquivos que possui acentuação, exemplo:
se o arquivo se chama "Ficha de Filiação.txt", ele retorna "Ficha de Filia\347\343o.txt", aí na hora de salvar o arquivo pdf, vira uma zona e fica irreconhecível no windows.
abaixo o cabeçalho do aquivo PS:
^[%-12345X@PJL JOB
@PJL ENTER LANGUAGE=POSTSCRIPT
%!PS-Adobe-3.0
%%Title: (Ficha de Filia\347\343o.txt - Bloco de notas)
%%Creator: PScript5.dll Version 5.2.2
%%CreationDate: 10/31/2008 12:49:11
%%For: adriano
parece que o ps2pdf não está aceitando acentuação, usei tb ps2pdf13 e ps2pdf14, tem como configurar isso ?