Enriquecendo o artigo: Gerando arquivos PDF através do SAMBA

Publicado por Alessandro de Oliveira Faria (A.K.A. CABELO) em 17/09/2004

[ Hits: 11.666 ]

Blog: http://assuntonerd.com.br

 


Enriquecendo o artigo: Gerando arquivos PDF através do SAMBA



Em primeiro lugar gostaria de parabenizar o Fabio Bonilha pelo seu artigo:
Embora no Suse 9.1 Professional este recurso já venha habilitado por padrão, o artigo serve para fundamentar o conceito de funcionamento do mesmo.

Segue abaixo algumas dicas para deixar o serviço mais completo:

1 - Remover as linha referente ao cups:

Se você não usa o CUPS, remova as seguintes linhas:

printcap name = cups load printers = yes printing = cups

e adicione:

printing = bsd

2 - Criar um arquivo cujo o nome contenha Data, hora, o login e host.

Crie a impressora compartilhada conforme o exemplo abaixo:

[pdf]
     path = /tmp
     printable = yes
     guest ok = yes
     print command = /usr/local/bin/printpdf %s %u %m
     use client driver = yes

3 - Avisar ao cliente via mensageiro do Windows no nome do arquivo e o sucesso da operação.

Crie o arquivo printpdf com as respectivas alterações:

#!/bin/sh

DATE=`date +%d-%m-%Y-%H-%M-%S-$2-$3.pdf`
OUTDIR=/rede2/public/pdf
ps2pdf $1 $OUTDIR/$DATE.temp
mv $OUTDIR/$DATE.temp $OUTDIR/$DATE
echo "$DATE gerado com sucesso!" | smbclient -M $3 > /dev/null
rm $1

4 - Gerando o PDF Colorido:

Ao invés de usar a impressora HP Laserjet 4P/4MP Postscript, use a HP Color Laser 5/5M PS.

Espero que gostem das flores sugeridas para o artigo.

Outras dicas deste autor

O que a Microsoft espera que você não perceba

Astronomia 3D em GNU/Linux com OpenGL

Encontro Nacional LinuxChix 2007

Estampando a data em imagens com apenas um clique no KDE4

Instalando LibreOffice no Android

Leitura recomendada

Recuperando senha de admin no Ubuntu 12.04

savetextmode: diga adeus aos crashes do console

Repositórios para o Slackware Current para inserir no Gslapt

Iniciando sistema no modo gráfico ou modo texto (configurando "runlevel" padrão no Systemd)

Linpus Linux Lite do Acer Aspire One em pt_BR

  

Comentários
[1] Comentário enviado por engos em 20/09/2004 - 15:01h

Com essa dica complementar o artigo funcionou, antes não...

Ah, só uma obseração, o caminho OUTDIR do script deve existir, digo isso porque copiei e colei o script e não funcionou, quando procurei o que estava de errado que corrigi o caminho que substitui por /tmp. Se alguém fizer a mesma besteira já sabe o que fazer. :)

Valeu pela dica!

[2] Comentário enviado por wkpedro em 20/09/2004 - 16:12h

Muito boa essa dica. Só queria saber se dá para colocar o diretório home do usuário no OUTDIR ao invés de um diretório geral?

[3] Comentário enviado por cabelo em 21/09/2004 - 13:21h

Prezado Pedro Coelho:

Substitue no script a linha:

OUTDIR=/rede2/public/pdf

para:

OUTDIR=/home/$2

[4] Comentário enviado por reimassupilami em 18/02/2005 - 14:24h

cara, excelente... o artigo do Fabio já estava muito bom, achei uma idéia e tanto, mas esse complemento de matar mesmo... ficou muito bacana...

agora to com umas dúvidas aqui pra personalizar melhor a coisa: tem alguma forma de ao invés de gerar o arquivo com data e horario, gerar com o nome do arquivo original, mas com o .pdf na frente? naum sei se tem alguma variavel q pega isso... tem?

[5] Comentário enviado por leandrobernardo em 14/03/2005 - 09:52h

Configuração para Samba 3.X Fedora 2
no arquivo smb.conf

[pdf]
comment = Gerador de PDF
path = /var/tmp
guest ok = no
printable = yes
printing = bsd
printcap name = cups
print command = /usr/local/bin/printpdf %s %u %m
lpq command = /bin/true

[6] Comentário enviado por reimassupilami em 14/04/2005 - 16:40h

agora to com uma dúvida aqui pra personalizar melhor isso: tem alguma forma de ao invés de gerar o arquivo com data e horario, gerar com o nome do arquivo original, mas com o .pdf na frente? naum sei se tem alguma variavel q pega isso... tem?

preciso converter uma grande quantidade de arquivos pra pdf, dae para renomear um por um vai ser complicado... por exemplo, gostaria que ao imprimir um arquivo teste.doc fosse gerado um arquivo teste.pf... é possivel?

[7] Comentário enviado por brtrator em 27/04/2005 - 11:28h

em que eu faço este script?? no vi e salvo com que estenção??
montei tudo mas nao ta gerando nada???

[8] Comentário enviado por leandro.teixeira em 02/06/2005 - 16:04h

Grande cabelo, ótimo arquivo. Mas aí vai um pergunta cruel...

Esse PDF é gerado com proteção de alteração? ou tenho que usar o distiller? Tem como gerar esse arquivo com a proteção, sem o uso do distiller?

[9] Comentário enviado por reimassupilami em 02/06/2005 - 16:13h

owpa, eu não faço ideia do que seja esse distiller, mas tb preciso desse lance de proteger o pdf... como faz isso? que programa é esse?

[10] Comentário enviado por vanervainer em 10/06/2005 - 12:02h

Como poderia fazer para invés de converter o arquivo para .pdf converte-lo para .txt?

[11] Comentário enviado por brtrator em 04/10/2005 - 12:37h

Muito bom, mas 2 duvidas, nao apareceu a mensagem "gerado com sucesso", esta mensagem irá aparecer no Windows?? e como eu faço para acrescentar o nome original do aquivo enviado para imprimir??

[12] Comentário enviado por hujmcba em 22/11/2005 - 09:31h

e ai cabelo, tenho um problema e imagino que este artigo talvez me ajude. Estou fazendo um sistema em PHP no qual o usuario irá fazer um upload de um arquivo *.doc e este tem que ser convertido no servidor pra PDF... Existe alguma possibilidade de fazer isso seguindo esta dica + PHP? Um abraço,

Rafael Moura

[13] Comentário enviado por wellesximenes em 07/08/2006 - 20:40h

Quando se usa o suse com cups como deve ficar o samba global ?pois o meu não esta funcionando

[14] Comentário enviado por joserf em 26/09/2009 - 18:41h

para imprimir com o nome do arquivo mude o arquivo /usr/local/bin/printpdf e cole as configurações abaixo, lembrando que vc deve mudar DIR=/disco/pdf para o local que vc configurou no seu smb.conf


#!/bin/sh

DIR=/disco/pdf
DATE=`date +%b%d-%H%M%S`
NOME=`grep -m 1 -i "%%Title" "$1"`
if [[ `echo $NOME | fgrep "://"` ]]; then
NOMEARQUIVO=`echo $NOME | grep -m 1 -i "%%Title" | cut -d\. -f2`
else
NOMEARQUIVO=`grep -m 1 -i "%%Title" "$1" | cut -f 2- -d' '| cut -f 1 -d'.'| sed -e 's/[ ()]//g'`
fi

ps2pdf13 $1 $DIR/$(echo $NOMEARQUIVO | sed 's/\?//g' | tr -d "\r").pdf

rm -f /tmp/$1



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts