Mi Blog
👉 Cómo compartir una impresora PDF con Samba

Cómo compartir una impresora PDF con Samba

 
(4 votos)

Crear una impresora virtual PDF y compartirla en red es muy sencillo con GNU/Linux y Samba. Aunque la mayoría de las nuevas aplicaciones suele tener un "Exportar a PDF", en ocasiones, sobretodo con equipos o aplicaciones viejas dicha opción no es posible. Con Samba, podremos crear una impresora virtual, compartirla en nuestra red e imprimir a PDF desde cualquier equipo que admita un driver genérico de PostScript.

Seguid leyendo y os enseñaré como montar un servidor de que imprima ficheros a PDF y los guarde en el $HOME de los usuarios...

 

 

¿QUÉ ES SAMBA?

Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que computadoras con GNU/LinuxMac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autentificar con su propio archivo de usuarios.

Entre los sistemas tipo Unix en los que se puede ejecutar Samba, están las distribuciones GNU/Linux, Solaris y las diferentes variantes BSD entre las que podemos encontrar el Mac OS X Server de Apple.

 

 

Una Fake Printer es una impresora falsa que convierte los ficheros a otro formato

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • PC con GNU/Linux y Samba instalado y funcionando
  • PC Windows cliente
  • Conexión a Internet

 

 

2.- PREREQUISITOS

En este tutorial no se van a detallar los pasos para instalar y configurar Samba en el equipo con GNU/LINUX. Si necesitáis un tutorial paso a paso aquí tenéis uno que escribí hace unos días: Cómo instalar y configurar SAMBA en GNU/LINUX Debian

 

 

3.- INSTALACIÓN DE PS2PDF

Para poder convertir los ficheros que lleguen a la "Fake Printer" de Samba, necesitamos tener instalado el binario ps2pdf. Para instalar ps2pdf en GNU/Linux Debian o Ubuntu ejecutaremos el siguiente comando:

raul@debian:~$ sudo apt-get install ghostscript

 

 

4.- INSTALAR Y CONFIGURAR PDFPRINT.SH

Debemos descargar un pequeño script de bash que será el encargado de ejecutarse a través de Samba y que ejecutará ps2pdf para convertir los Postscript (ficheros para imprimir) que enviemos desde el cliente a formato PDF. Descargaremos el fichero de la siguiente dirección: https://wiki.samba.org/index.php/File:Pdfprint.sh.txt o tambien dejo al final de este post una copia del script. Lo descargaremos en /usr/local/bin/ , le quitaremos la extensión txt y ejecutaremos el siguiente comando para darle permisos de ejecución:

raul@debian:~$ sudo chmod 755 /usr/local/bin/Pdfprint.sh

5.- CONFIGURAR LA IMPRESORA PDF EN SAMBA

Como queremos guardar los PDFs en el directorio $HOME del usuario, debemos tener los $HOMES de los usuarios compartidos para que puedan descargarse los PDFs impresos por red:

[Homes]
comment = Home Directories
browseable = no
read only = yes
create mask = 0644
directory mask = 0755
valid users = %S

 

 

Para añadir la impresora virtual PDF, al final del fichero /etc/samba/smb.conf, debemos añadir las siguientes líneas. Con esta configuración, los PDFs se guardarán en el directorio /home/<usuario>/Documentos/. Recordad, que esta configuración solo funciona para usuarios que tengan $HOME en el servidor. Con una pequeña variación podemos hacer que todo el mundo pueda imprimir y los PDFs se dejen en un recurso público accesible por todos, pero en este casi lo haré solo para usuarios de sistema:

[PDFprinter]
comment = Samba Virtual PDF Printer
printing = LPRNG
path = /var/spool/samba
printable = yes
public = no
lpq command =
lprm command =
print command = /usr/local/bin/Pdfprint.sh -s %f -d /home/%U/Documentos -o %U -m 600 -l /tmp/Pdfprint.log

 

 

Para aplicar los cambios, reiniciaremos el servidor de Samba:

raul@debian:~$ sudo service smbd restart

 

 

6.- CONFIGURACIÓN DE LOS CLIENTES WINDOWS

Configurar los equipos clientes Windows es muy sencillo. Desde el explorador de ficheros, haciendo click en Red, veremos la impresora compartida llamada PDFPrinter:

Samba PDF PrinterImpresora PDF a través de red

 

 

Con el botón derecho, haremos click y seleccionaremos "Conectar...":

Samba PDF PrinterConectar la impresora

 

 

Como no tenemos instalador drivers para la impresora, obtendremos un mensaje de error:

Samba PDF PrinterError: Controlador no encontrado

 

 

Instalaremos un driver genérico PostScript. En este caso, he seleccionado el driver de HP de Postscript de la impresora HP Color LaserJet 2800 Series PS:

Samba PDF PrinterInstalar controlador genérico PostScipt

 

 

Una vez instalados los drivers, en el listado de "Impresoras y faxes" veremos la impresora añadida y marcada como por defecto:

Samba PDF PrinterListado de impresoras y faxes

 

 

Ahora, realizaremos una prueba de impresión. Abriremos un navegador con una página Web y la imprimiremos a PDF:

Samba PDF PrinterImprimir página web

 

 

Seleccionaremos la impresora PDFprinter y haremos click en "Imprimir":

Samba PDF PrinterConfiguración de impresión

 

 

Si revisamos el fichero de logs (/tmp/Pdfprinter.log) en el servidor, veremos que efectivamente el fichero se ha convertido correctamente y se ha guardado en el $HOME del usuario raul:

raul@debian:~$ cat /tmp/Pdfprint.log 
jun 11 10:07:59 Successfully converted "smbprn.7zww7i" to "/home/raul/Documentos/Samba_PDF_Printer_2020-06-11_10-07-56.pdf".

 

 

Una vez imprimido el fichero, se guardará en el $HOME del usuario:

Samba PDF PrinterPDF generado

 

 

En la siguiente imagen se puede ver la página web impresa a PDF:

Samba PDF PrinterFichero PDF

 

 

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.