Impressora PDF via Samba para estações Windows

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.

[ Hits: 51.421 ]

Por: Hernandi F. Krammes em 01/02/2006


O script printpdf



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

Esta é a parte do Linux.

Página anterior     Próxima página

Páginas do artigo
   1. Impressora PDF via samba para estações Windows
   2. Requisitos e descrição do funcionamento
   3. Configuração do Samba
   4. O script printpdf
   5. Configuração da impressora no Windows
Outros artigos deste autor

Impressora JPG no Linux compartilhada para Windows

Leitura recomendada

Fazendo backup do seu MySQL com API do Dropbox

Configurando OpenSSH no Windows Server 2003 para autenticação por chave (sem senha)

Terminal Didático - Shell Script via WEB (PHP + Bootstrap)

Redundância de links - Mon + Shell Script

Colocado o "Motion" na inicialização do Ubuntu 7.04

  
Comentários
[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.

[2] Comentário enviado por thiagop em 01/02/2006 - 15:56h

Muito bom o artigo!

Como disse "agk", realmente nosso pinguim é muito flexível :)

Abraços!

[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...

Mas valeu a tentativa!

[]s

[4] Comentário enviado por Crash  em 02/02/2006 - 13:24h

Galera não testei esse esquema ainda, mas uma duvida isso imprimiria html normalente? Mas eu acho que não!

[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.

[6] Comentário enviado por Crash  em 02/02/2006 - 16:52h

Legal então a parada é fina!! realmente vale a pena implementar!

[7] Comentário enviado por hideoux em 25/04/2006 - 23:18h

olá, não testei ainda, mas uma dúvida:
poderei converter uma página html aberta no meu linux no qual está o meu samba?

abraço,
hideo

[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:

DIR=/home/grupos/pdf

NOME=`grep -m 1 -i "%%Title" "$1"`
if [[ `echo $NOME | fgrep "http://"` ]]; 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

[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:
^[%[email protected] 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 ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts