15.5. Instalación de los controladores de impresión para los equipos MS Windows

CUPS no da soporte, directamente, a los clientes MS Windows; para ello se ha de hacer uso de Samba. La forma de hacerlo, es compartiendo las impresoras gestionadas por CUPS en Samba, como ya se ha visto en los capítulos dedicados a Samba (Parte II).

En esta sección se verá la forma de exportar los controladores de impresión para los equipos MS Windows. Los controladores se almacenan en la instalación de CUPS, y se comparten, vía Samba, con los clientes MS Windows. Para realizar esta labor, se puede hacer uso de la herramienta cupsaddsmb.

cupsaddsmb transfiere los controladores de impresión al recurso Samba [print$]. Recuerde que los clientes esperan tener los controladores almacenados en este recurso, al que accederán en el momento de la instalación para bajarse los controladores de impresión.

cupsaddsmb facilita la compartición de cualquier (o todas) impresora CUPS instalada en el sistema. También puede utilizar los controladores PostScript de Adobe así como los controladores PostScript de CUPS para Windows NT/2000/XP.

Los controladores de impresión de CUPS se pueden obtener desde la sección download de la página de CUPS. El paquete de controladores se denomina cups-samba-[version].tar.gz.

Actualmente, CUPS provee controladores para los clientes Windows NT, 2000 y XP, pero no para los clientes Windows 95, 98 y ME. Estos últimos han de utilizar los drivers que provee Adobe.

Antes de poder exportar los controladores de impresión, estos se han de ubicar en el directorio /usr/share/cups/drivers/. Las siguientes secciones mostrarán como “instalar” los controladores PostScript de CUPS y Adobe en este directorio.

15.5.1. Instalación de los controladores PostScript de CUPS para Windows NT/2000/XP

Antes de proceder con la instalación, ha de bajarse los controladores de la página de CUPS[28].

Se supone que el paquete con los controladores se encuentra en el directorio /tmp, por lo que se procederá, en primer lugar, a su desempaquetado:

Ejemplo 15.3. Desempaquetado de los controladores PostScript de CUPS

$ /bin/tar xzvf /tmp/cups-samba-5.0rc3.tar.gz -C /tmp
cups-samba.install
cups-samba.license
cups-samba.readme
cups-samba.remove
cups-samba.ss

Como el proceso de instalación de los controladores PostScript de CUPS es muy sencillo, no se va a utilizar el script de instalación, cups-samba.install, que adjuntan.

El archivo cups-samba.ss no es más que un archivo tar[29], cuyo contenido son los controladores en cuestión. Por este motivo se desempaquetará en el directorio /usr/share/cups/drivers/, como se muestra en el siguiente ejemplo:

Ejemplo 15.4. Desempaquetado de los controladores PostScript de CUPS en el directorio /usr/share/cups/drivers/

# /bin/mkdir -v -m 755 /usr/share/cups/drivers/
mkdir: se ha creado el directorio `/usr/share/cups/drivers/'
# /bin/tar xvf /tmp/cups-samba.ss -C /
/usr/share/cups/drivers/cups5.hlp
/bin/tar: Removing leading `/' from member names
/usr/share/cups/drivers/cupsdrv5.dll
/usr/share/cups/drivers/cupsui5.dll

A partir de este momento ya se encuentran disponibles los controladores PostScript de CUPS para Windows NT/2000/XP disponibles. Ahora sólo queda exportarlos en Samba, operación que se verá más adelante (Sección 15.5.3, “Exportando los controladores con cupsaddsmb”).

15.5.2. Instalación de los controladores PostScript de Adobe

Adobe proporciona controladores PostScript para los sistemas MS Windows 95/98/ME así como para MS Windows NT/2000/XP. Estos se pueden obtener de su página web, http://www.adobe.com/.

Los controladores PostScript de Adobe, actualmente, vienen en un archivo autoinstalable para los sistemas MS Windows, por lo que se tendrá que hacer uso de Wine para obtenerlos.

En primer lugar se ha de bajar el archivo que los contiene, que en este caso se denomina winstspa.exe (se corresponde con la versión española de estos controladores).

Ahora se ha de ejecutar el instalador, para ello se hace uso de wine, como se muestra en el siguiente ejemplo:

[Note]Nota

Se supone que wine ya se encuentra instalado y correctamente configurado.

Ejemplo 15.5. Ejecución del instalador de controladores PostScript de Adobe con Wine (primera parte)

$ /usr/bin/wine winstspa.exe

Tras la ejecución del comando del ejemplo anterior, comenzará el proceso de instalación de los controladores PostScript de Adobe en el sistema. Vea las siguientes capturas para más detalles:

Figura 15.54. Proceso de descompresión de los controladores y archivos de instalación

Proceso de descompresión de los controladores y archivos de instalación

Justo después de ejecutar el instalador, se procede a la descompresión de los controladores PostScript y de los archivos necesarios para la instalación en los sistemas MS Windows.

Estos archivos son copiados al directorio C:\Windows\Temp\, que en el caso del sistema donde se ha ejecutado Wine, se encuentra bajo el directorio $HOME/.wine/fake_windows/Windows/Temp.

El proceso de instalación creará un directorio temporal, cuyo nombre será similar a pft3405~tmp. Este directorio se creará bajo el directorio $HOME/.wine/fake_windows/Windows/Temp, y es ahí de donde se obtendrán los controladores PostScript de Adobe.

Figura 15.55. Comienza el proceso de instalación

Comienza el proceso de instalación

Tras descomprimir los archivos necesarios para la instalación, se ejecutará el instalador de los controladores PostScript de Adobe.

Figura 15.56. Pantalla de bienvenida del instalador

Pantalla de bienvenida del instalador

Una vez se ha llegado a la pantalla de bienvenida del instalador de los controladores PostScript de Adobe, se puede terminar la ejecución del programa.

[Important]Importante

No cancele la instalación desde el programa de instalación de los controladores (ya que esto haría que se borrasen del sistema), simplemente finalice la ejecución de Wine, bien sea matando el proceso o pulsando la combinación de teclas Ctrl+c, siempre y cuando esté ejecutando Wine desde un terminal, por ejemplo.

Ejemplo 15.6. Ejecución del instalador de controladores PostScript de Adobe con Wine (segunda parte)

$ /usr/bin/wine winstspa.exe [Ctrl+c]
$ cd ~/.wine/fake_windows/Windows/Temp
$ /usr/bin/tree
.
|-- pftc3c~tmp
|   |-- DATA.TAG
|   |-- Leame.wri
|   |-- SETUP.INI
|   |-- Setup.exe
|   |-- Win2000 1
|   |   |-- DEFPRTR2.PPD
|   |   |-- PS5UI.DLL
|   |   |-- PSCRIPT.HLP
|   |   |-- PSCRIPT.NTF
|   |   |-- PSCRIPT5.DLL
|   |   `-- PSCRPTFE.NTF
|   |-- WinNT 2
|   |   |-- ADOBEPSU.HLP
|   |   |-- AdobeJpn.ntf
|   |   |-- AdobeKor.ntf
|   |   |-- AdobePS5.dll
|   |   |-- AdobePS5.ntf
|   |   |-- AdobeZhS.ntf
|   |   |-- AdobeZhT.ntf
|   |   |-- DEFPRTR2.PPD
|   |   `-- adobepsu.dll
|   |-- WinXP 3
|   |   |-- DEFPRTR2.PPD
|   |   |-- PS5UI.DLL
|   |   |-- PSCRIPT.HLP
|   |   |-- PSCRIPT.NTF
|   |   |-- PSCRIPT5.DLL
|   |   `-- PSCRPTFE.NTF
|   |-- Windows 4
|   |   |-- ADOBEPS4.DRV
|   |   |-- ADOBEPS4.HLP
|   |   |-- DEFPRTR2.PPD
|   |   |-- ICONLIB.DLL
|   |   |-- PSMON.DLL
|   |   `-- adfonts.mfm
|   |-- _INST32I.EX_
|   |-- _ISDel.exe
|   |-- _Setup.dll
|   |-- _sys1.cab
|   |-- _sys1.hdr
|   |-- _user1.cab
|   |-- _user1.hdr
|   |-- data1.cab
|   |-- data1.hdr
|   |-- lang.dat
|   |-- layout.bin
|   |-- os.dat
|   |-- pftw1.pkg
|   |-- setup.bmp
|   |-- setup.ins
|   `-- setup.lid
`-- plfa2b.tmp

5 directories, 48 files
1

Controladores PostScript de Adobe para MS Windows 2000.

2

Controladores PostScript de Adobe para MS Windows NT.

3

Controladores PostScript de Adobe para MS Windows XP.

4

Controladores PostScript de Adobe para MS Windows 9x.

En el Ejemplo 15.6, “Ejecución del instalador de controladores PostScript de Adobe con Wine (segunda parte)” se ha mostrado el listado de controladores PostScript que provee Adobe. Antes de copiarlos al directorio /usr/share/cups/drivers se van a renombrar, de forma que queden todos los archivos en mayúsculas. El proceso se muestra a continuación:

Ejemplo 15.7. Convirtiendo a mayúsculas los controladores PostScript de Adobe

En este ejemplo se hace uso del script presente en el Apéndice K, Script para convertir a mayúsculas el archivo pasado como argumento. Se supone que el script está almacenado en el directorio /usr/local/bin.

$ cd ~/.wine/fake_windows/Windows/Temp/pftc3c~tmp
$ for x in "Win2000/* Windows/* WinNT/* WinXP/*";
> do
>    /bin/bash /usr/local/bin/uppercase $x;
> done
/usr/local/bin/uppercase: Win2000/DEFPRTR2.PPD not changed.
/usr/local/bin/uppercase: Win2000/PS5UI.DLL not changed.
/usr/local/bin/uppercase: Win2000/PSCRIPT5.DLL not changed.
/usr/local/bin/uppercase: Win2000/PSCRIPT.HLP not changed.
/usr/local/bin/uppercase: Win2000/PSCRIPT.NTF not changed.
/usr/local/bin/uppercase: Win2000/PSCRPTFE.NTF not changed.
/usr/local/bin/uppercase: Windows/adfonts.mfm -> Windows/ADFONTS.MFM
/usr/local/bin/uppercase: Windows/ADOBEPS4.DRV not changed.
/usr/local/bin/uppercase: Windows/ADOBEPS4.HLP not changed.
/usr/local/bin/uppercase: Windows/DEFPRTR2.PPD not changed.
/usr/local/bin/uppercase: Windows/ICONLIB.DLL not changed.
/usr/local/bin/uppercase: Windows/PSMON.DLL not changed.
/usr/local/bin/uppercase: WinNT/AdobeJpn.ntf -> WinNT/ADOBEJPN.NTF
/usr/local/bin/uppercase: WinNT/AdobeKor.ntf -> WinNT/ADOBEKOR.NTF
/usr/local/bin/uppercase: WinNT/AdobePS5.dll -> WinNT/ADOBEPS5.DLL
/usr/local/bin/uppercase: WinNT/AdobePS5.ntf -> WinNT/ADOBEPS5.NTF
/usr/local/bin/uppercase: WinNT/adobepsu.dll -> WinNT/ADOBEPSU.DLL
/usr/local/bin/uppercase: WinNT/ADOBEPSU.HLP not changed.
/usr/local/bin/uppercase: WinNT/AdobeZhS.ntf -> WinNT/ADOBEZHS.NTF
/usr/local/bin/uppercase: WinNT/AdobeZhT.ntf -> WinNT/ADOBEZHT.NTF
/usr/local/bin/uppercase: WinNT/DEFPRTR2.PPD not changed.
/usr/local/bin/uppercase: WinXP/DEFPRTR2.PPD not changed.
/usr/local/bin/uppercase: WinXP/PS5UI.DLL not changed.
/usr/local/bin/uppercase: WinXP/PSCRIPT5.DLL not changed.
/usr/local/bin/uppercase: WinXP/PSCRIPT.HLP not changed.
/usr/local/bin/uppercase: WinXP/PSCRIPT.NTF not changed.
/usr/local/bin/uppercase: WinXP/PSCRPTFE.NTF not changed.

Ahora sólo queda copiar los controladores necesarios al directorio /usr/share/cups/drivers. El siguiente ejemplo muestra como hacerlo:

Ejemplo 15.8. Copiando los controladores PostScript de Adobe a /usr/share/cups/drivers

Sustituya la variable $HOME, por el directorio home del usuario donde se encuentran los controladores PostScript de Adobe.

El contenido del script mover-controladores se encuentra en el Apéndice L, Script para mover los controladores PostScript de Adobe al directorio /usr/share/cups/drivers.

# cd $HOME/.wine/fake_windows/Windows/Temp/pftc3c~tmp
# /bin/bash /usr/local/bin/mover-controladores
`PATH/Windows/ADFONTS.MFM' -> `/usr/share/cups/drivers/ADFONTS.MFM'
`PATH/Windows/ADOBEPS4.DRV' -> `/usr/share/cups/drivers/ADOBEPS4.DRV'
`PATH/Windows/ADOBEPS4.HLP' -> `/usr/share/cups/drivers/ADOBEPS4.HLP'
`PATH/WinNT/DEFPRTR2.PPD' -> `/usr/share/cups/drivers/DEFPRTR2.PPD'
`PATH/WinXP/DEFPRTR2.PPD' -> `/usr/share/cups/drivers/DEFPRTR2.PPD'
`PATH/Win2000/DEFPRTR2.PPD' -> `/usr/share/cups/drivers/DEFPRTR2.PPD'
`PATH/Windows/DEFPRTR2.PPD' -> `/usr/share/cups/drivers/DEFPRTR2.PPD'
`PATH/Windows/ICONLIB.DLL' -> `/usr/share/cups/drivers/ICONLIB.DLL'
`PATH/Windows/PSMON.DLL' -> `/usr/share/cups/drivers/PSMON.DLL'
`PATH/WinNT/ADOBEPS5.DLL' -> `/usr/share/cups/drivers/ADOBEPS5.DLL'
`PATH/WinNT/ADOBEPSU.DLL' -> `/usr/share/cups/drivers/ADOBEPSU.DLL'
`PATH/WinNT/ADOBEPSU.HLP' -> `/usr/share/cups/drivers/ADOBEPSU.HLP'
el modo de `/usr/share/cups/drivers/ADFONTS.MFM' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/ADOBEPS4.DRV' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/ADOBEPS4.HLP' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/ADOBEPS5.DLL' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/ADOBEPSU.DLL' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/ADOBEPSU.HLP' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/cups5.hlp' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/cupsdrv5.dll' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/cupsui5.dll' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/DEFPRTR2.PPD' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/ICONLIB.DLL' cambia a 0644 (rw-r--r--)
el modo de `/usr/share/cups/drivers/PSMON.DLL' cambia a 0644 (rw-r--r--)

15.5.3. Exportando los controladores con cupsaddsmb

Una vez copiados los controladores de impresión PostScript, tanto de Adobe como de CUPS al directorio /usr/share/cups/drivers/, se han de exportar en Samba; para ello se hará uso de la herramienta cupsaddsmb.

A parte de exportar los controladores de Adobe y CUPS, también se exportarán los controladores de las impresoras que se han añadido en la Sección 15.4, “Creación de la estructura de impresión”.

[Note]Nota

Actualmente en el directorio /usr/share/cups/drivers/ se encuentran los controladores PostScript, para MS Windows NT/2000/XP, tanto de CUPS como de Adobe. Al exportar dichos controladores con la herramienta cupsaddsmb, esta priorizará la instalación de los controladores creados por el proyecto CUPS, sobre los creados por Adobe.

Esto significa que exportará los controladores del proyecto CUPS para los sistemas operativos MS Windows NT/2000/XP, en lugar de los controladores que provee Adobe; y los controladores de Adobe para los sistemas operativos MS Windows 95/98/ME.

El siguiente ejemplo mostrará como realizar esta operación:

Ejemplo 15.9. Exportando los controladores de impresión con cupsaddsmb

La opción -a le dice al comando cupsaddsmb que añada todas las impresoras presentes en el sistema.

$ /usr/bin/tree /var/lib/samba/printers

/var/lib/samba/printers
|-- W32X86
`-- WIN40

2 directories, 0 files
$ /usr/sbin/cupsaddsmb -U root -a
Password for root required to access localhost via SAMBA: [Clave]
$ /usr/bin/tree /var/lib/samba/printers
/var/lib/samba/printers
|-- W32X86 1
|   `-- 2
|       |-- InyeccionBN.ppd
|       |-- InyeccionColor.ppd
|       |-- LaserBN.ppd
|       |-- LaserColor.ppd
|       |-- Multifuncion.ppd
|       |-- Plotter.ppd
|       |-- Sublimacion.ppd
|       |-- cups5.hlp
|       |-- cupsdrv5.dll
|       `-- cupsui5.dll
`-- WIN40 2
    `-- 0
        |-- ADFONTS.MFM
        |-- ADOBEPS4.DRV
        |-- ADOBEPS4.HLP
        |-- DEFPRTR2.PPD
        |-- ICONLIB.DLL
        |-- InyeccionBN.PPD
        |-- InyeccionColor.PPD
        |-- LaserBN.PPD
        |-- LaserColor.PPD
        |-- Multifuncion.PPD
        |-- PSMON.DLL
        |-- Plotter.PPD
        `-- Sublimacion.PPD

4 directories, 23 files
1

Controladores de impresión para MS Windows NT/2000/XP exportados mediante samba, gracias al recurso [print$]

2

Controladores de impresión para MS Windows 95/98/ME exportados mediante samba, gracias al recurso [print$]

[Note]Nota

En el Apéndice M, Salida de la ejecución del comando /usr/sbin/cupsaddsmb -v -U root -a se muestra la ejecución del comando cupsaddsmb con la opción -v (modo verbose).

Una vez finalizada la exportación de los controladores de impresión, ya se tendría el sistema preparado para que los clientes MS Windows hagan uso de las impresoras administradas por CUPS.



[28] En el momento de generar esta documentación, la versión de estos controladores era la 5.0rc3

[29] $ /usr/bin/file /tmp/cups-samba.ss
cups-samba.ss: tar archive