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: 52.957 ]

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

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

BigBashView, interface gráfica para o seu shell script

Solução para provedores - Receber aviso no celular quando ocorrer perda de pacote, hosts parados ou pacotes duplicados

Backup em HDs da rede

Convertendo TXT ou HTML em OGG

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


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts