Destilador de PDF casero

David Charro Ripa

16-11-2000

Paquetes

  1. lprng

  2. magicfilter

  3. gs

  4. freefont

  5. ¿Cómo construir una impresora que convierta a PDF?

Al estilo del Acrobat Distiller, podemos construirnos un impresora virtual para transformar nuestros documentos a PDF. Para ello seguiremos estos pasos

  1. Crear una impresora cuyo filtro de impresión modificaremos a nuestra conveniencia

  2. Compartirla en la red

  3. Desde cualquier equipo en red nos conectaremos a ella pensando que es una impresora postscript, por ejemplo en windows podríamos usar un driver de una laserwriter de apple

Explicaremos la primera idea pues las otras dos son aptas para otras recetas que incluso tú podrías hacer.

Filtro de impresión modificado

Crear la impresora

magicfilterconfig. Este comando nos ayudará a crear una impresora. Podemos elegir una impresora postscript. Luego cambiaremos manualmente a nuestro filtro.

Crear un filtro modificado

Partimos del filtro postscript /etc/magicfilter/ps600-filter. Lo modificaremos para que convierta a pdf y le llamaremos /etc/magicfilter/pdf-filter. A mí me quedaron así las primeras líneas, que son las que cambié.

#! /usr/sbin/magicfilter
#
# Configuración de un filtro del Magic filter para convertir a PDF
#
# This file is in the public domain.
#
# PostScript
0	%!		fpipe /usr/bin/gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=- -c save pop -f $FILE
0	\004%!		fpipe /usr/bin/gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=- -c save pop -f $FILE
# PDF
0	%PDF		cat
.
.
.

Creamos un pequeño filtro que nos hará de interfaz. Este es el que podremos cambiar después cómodamente para decidir dónde escribimos nuestro pdf. Puede ser algo tan sencillo como el que tengo en /etc/magicfilter/destiladora

#!/bin/sh
cat|/etc/magicfilter/pdf-filter>/tmp/archivo.pdf
chmod 666 /tmp/archivo.pdf

Así nos crea el pdf /tmp/archivo.pdf con permisos de lectura y escritura para todos

Modificar /etc/printcap

Necesitamos cambiar el /etc/printcap para que pase por nuestro filtro. Mi /etc/printcap es el siguiente

# This file was generated by /usr/sbin/magicfilterconfig.
#
destiladora|destiladora:\
:lp=/dev/null:sd=/var/spool/lpd/destiladora:\
:sh:pw#80:pl#72:px#1440:mx#0:\ :if=/etc/magicfilter/destiladora:\
:af=/var/log/lp-acct:lf=/var/log/lp-errs:

Por si intentara imprimir algo realmente, mandamos a /dev/null cualquier intento




Página creada en: 2004-11-04 11:41:02 +0000
© Copyright 2001, 2002, 2003, 2004, La Espiral, debian-laespiral@lists.debian.org
Permitida la copia y distribución textual, integral, siempre y cuando se mantenga este aviso.