Utilizando o Samba para imprimir em PDF

Bem pessoal,

Tentarei mostrar de uma maneira bem fácil me baseando em várias leituras de tutoriais, livros e dicas na internet como configurar o Samba para gerar arquivos PDF. Trata-se de uma impressora virtual no Samba, em que dessa forma todo e qualquer trabalho de impressão que for enviado para a impressora PDF será gerado um arquivo na pasta home do usuário.

Iniciando o processo:

Para utilizarmos nossa configuração, inicialmente é necessário ter instalado no Linux o pacote GhostScript, pois este será utilizado para a conversão dos arquivos PDF. Para isso é necessário utilizar os gerenciadores de pacotes disponíveis na distribuição que foi adotada ou checar se os mesmos já estão instalados.Para quem não sabe para checar caso utilize uma distro baseada em Debian ou o próprio Debian (que é o meu caso claro) o comando é dpkg –get-selections > lista_de_pacotes.txt e será gerado em seu diretório home ou outro que você tenha direito de escrita uma lista de todos os pacotes instalados no sistema.

Após ter instalado ou verificado se o pacote GhostScript já está presente no seu Linux, vamos então iniciar o trabalho com Samba. Criei um arquivo de configuração exemplo para tomarmos como base:

[global] workgroup = Empresa netbios name = Servidor server string = Linux 
printcap name = /etc/printcap
load printers = yes
printing = cups log file = /var/log/samba/log.%m
log level = 1
max log size = 100
debug level = 2
security = user
domain master = no
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
read raw = yes
write raw = yes
max xmit = 65535
getwd cache = yes

[homes]
Comment = Pasta home
public = no
path = /home/%u
browseable = yes
writable = yes
create mask = 0600
directory mask = 0700

[impressora-pdf]
comment = gerador de pdf
path = /var/tmp guest ok = no
printable = yes printing = bsd
printcap name = cups
use client driver = yes
print command = /etc/samba/pdf_printer \"%s" "%H" "//L/%u" "%m" "%I" "%J" &
lpq command = /bin/true

Esta é uma configuração básica para a geração de arquivo PDF, que possui um compartilhamento [home] no qual serão gerados os arquivos PDF propriamente dita, onde o caminho print command irá gerar o novo documento PDF na pasta home do usuário. Como estamos trabalhando com variáveis, o mais interessante é que esta impressora estará diponível para toda a rede e os arquivos PDF serão gerados na pasta home de qualquer usuário que solicitar a impressão.

O script de impressão:

Para que o mecanismo de impressão funcione corretamente será necessário criar o script de impressão /etc/samba/pdf_printer. Para isso:

# nano /etc/samba/pdf_printer

Insira o código que pode ser obtido aqui

O script samba-print-pdf (pdf_printer) é bastante complexo, porém funcional. Tive a oportunidade de testá-lo no Ubuntu e no OpenSuse.

Importante: É necessário dar permissão de execução para o script. Isso será feito com o comando:

# chmod +x /etc/samba/pdf_printer

Instalando no Windows:

Nos clientes Windows, basta instalar a impressora normalmente com o driver da impressora Color Laser 5/5M PS, sendo esta nativa no Windows e como uma impressora de rede o caminho \\seu-servidor-samba\pdf-printer. Um detalhe importante é que o driver para instalação dessa impressora deverá ser o da impressora citada acima, pois até o momento foi o único que testei e tive sucesso.

Observação: Se o “Serviço Mensageiro” do Windows estiver habilitado, toda vez que for imprimir na impressora PDF será gerada uma mensagem informando ao usuário o caminho e nome do arquivo gerado.

É isso pessoal espero realmente ter ajudado mais uma vez. Até a próxima.

Greyson escreveu 109 artigos

Tecnólogo em Análise e desenvolvimento de sistemas, gosta muito de telecom, redes de computadores, jogos, entusiasta de tecnologias livres, mais precisamente do GNU/Linux.

Deixe um comentário

Seu endereço de email não será publicado. Os campos com * são obrigatórios

Você pode usar estes tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>