Objetivos de la práctica
- Identificar los tipos de impresora (inyección, láser, térmica, matricial, 3D) y sus consumibles.
- Distinguir los lenguajes de impresión (PCL, PostScript, raw) y los protocolos de red (IPP, LPD, RAW 9100).
- Instalar una impresora local virtual en Windows (Microsoft Print to PDF) y otra desde el driver del fabricante sin tener el equipo.
- Montar un servidor CUPS en una VM Linux y añadir una impresora con cups-pdf.
- Compartir la impresora del servidor CUPS por red y conectarse a ella desde la VM Windows usando IPP.
- Gestionar la cola de impresión en Windows (GUI) y en Linux (
lpq,lp,cancel). - Diagnosticar problemas frecuentes: trabajos atascados en cola, driver incorrecto, impresora "fuera de línea", spooler parado.
Parte 0 - Conceptos previos (40 min)
0.1 - Tipos de impresora
| Tipo | Cómo imprime | Consumibles | Para qué se usa |
|---|---|---|---|
| Inyección de tinta | Lanza gotitas de tinta líquida sobre el papel | Cartuchos de tinta (CMYK) y a veces cabezal | Hogar, fotos, bajo volumen |
| Láser | Funde tóner (polvo) sobre el papel mediante calor | Tóner, tambor (drum), fusor | Oficina, alto volumen, blanco y negro o color |
| Térmica | Calienta zonas de un papel especial que se oscurece | Solo papel térmico (no hay tinta) | Tickets, etiquetas, balanzas, TPV |
| Matricial | Una matriz de agujas golpea una cinta entintada contra el papel | Cinta de tela entintada | Documentos con copia (autocopiativos), industrial, talleres |
| 3D | Deposita material capa a capa (FDM) o solidifica resina con luz (SLA) | Filamento (PLA, PETG, ABS) o resina | Prototipado, piezas a medida |
0.2 - Lenguajes de impresión y drivers
Cuando pulsas Imprimir, el sistema operativo no envía un PDF tal cual: el driver traduce el documento a un lenguaje que la impresora entiende. Los más habituales son:
- PCL (Printer Command Language, HP): muy extendido en láser de oficina. Eficiente.
- PostScript (PS): lenguaje de descripción de página. Imprescindible en artes gráficas.
- PDF directo: muchas impresoras modernas aceptan PDF como entrada nativa.
- RAW: el sistema envía datos sin procesar a la impresora (lo decide el driver).
- GDI / Host-based: impresoras "tontas" que dependen totalmente del PC para componer la página. Más baratas, pero peor compatibilidad con Linux.
0.3 - Protocolos de impresión en red
| Protocolo | Puerto | Cuándo se usa |
|---|---|---|
| IPP (Internet Printing Protocol) | 631 / TCP | Estándar moderno. Es el que usa CUPS y AirPrint. Soporta cifrado (IPPS). |
| LPD/LPR | 515 / TCP | Protocolo clásico de Unix. Aún se usa por compatibilidad. |
| RAW socket / JetDirect | 9100 / TCP | HP. Conexión directa al puerto 9100 sin protocolo encima. Muy común en redes pequeñas. |
| SMB (compartido Windows) | 445 / TCP | Cuando un Windows comparte la impresora. |
0.4 - ¿Por qué hacemos esto en VMs y sin impresora física?
El sistema operativo no distingue entre una impresora real y una virtual: usa el mismo spooler (servicio que gestiona la cola), el mismo driver y los mismos protocolos. Por eso:
- Podemos instalar drivers reales del fabricante (HP, Brother, Canon...) sin tener la impresora delante.
- Podemos imprimir, gestionar la cola, pausar y cancelar trabajos exactamente igual.
- Podemos compartir por red entre VMs y simular un escenario de oficina con servidor de impresión.
- Lo único que no podemos hacer es tocar el hardware (cambiar tóner, retirar atascos). Eso lo cubrimos con preguntas guiadas al final.
Parte 1 - Identificación de impresoras de catálogo (20 min)
Busca en el catálogo online de un fabricante (HP, Brother, Canon, Epson) tres modelos diferentes: una de inyección, una láser y una multifunción láser. Rellena la tabla con datos reales del fabricante.
| Aspecto | Modelo 1 (inyección) | Modelo 2 (láser) | Modelo 3 (multifunción láser) |
|---|---|---|---|
| Marca y modelo exacto | |||
| Color o monocromo | |||
| Velocidad (ppm) | |||
| Conexiones (USB / Ethernet / Wi-Fi) | |||
| Lenguaje (PCL / PostScript / GDI) | |||
| Consumibles (referencia) | |||
| Coste por página estimado |
¿Cuál de los tres elegirías para una oficina pequeña que imprime 200 páginas de texto al día y por qué?
Parte 2 - Impresora virtual local en Windows (40 min)
Arranca tu VM Windows 10/11. Vamos a usar y a configurar la impresora virtual que ya trae Windows: Microsoft Print to PDF. Es una impresora real desde el punto de vista del sistema (driver, cola, propiedades), pero en lugar de papel produce un PDF.
2.1 - Comprobar que la impresora virtual existe
- Ve a Configuración → Bluetooth y dispositivos → Impresoras y escáneres.
- Comprueba que aparece Microsoft Print to PDF. Si no está, ve a Características opcionales y actívala (o desde Activar o desactivar características de Windows → Impresión en PDF de Microsoft).
- Haz clic en ella y pulsa Propiedades de la impresora. Mira las pestañas General, Compartir, Puertos, Opciones avanzadas.
| ¿Qué puerto usa Microsoft Print to PDF? | |
| ¿Qué driver aparece en Opciones avanzadas? | |
| ¿Está compartida por defecto? |
2.2 - Imprimir contra la impresora virtual
- Abre el Bloc de notas, escribe un texto cualquiera y pulsa Ctrl+P.
- Selecciona Microsoft Print to PDF y pulsa Imprimir.
- Te pedirá la ruta y el nombre del archivo de salida. Guárdalo en el escritorio como
prueba1.pdf. - Ábrelo y comprueba el resultado.
2.3 - Añadir una segunda impresora "manual" con driver del fabricante
Vamos a añadir una segunda impresora simulando una HP LaserJet, sin tener el equipo. Windows admite añadir impresoras manuales con cualquier driver disponible.
- En Impresoras y escáneres pulsa Agregar dispositivo.
- Espera unos segundos y pulsa Agregar manualmente.
- Elige Agregar una impresora local o de red con configuración manual y siguiente.
- En Usar un puerto existente selecciona
FILE:(imprimir a archivo). Siguiente. - En la lista de fabricantes elige HP (o Generic si no carga la lista) y un modelo cualquiera, por ejemplo HP LaserJet Pro M404 o el genérico Generic / Text Only.
- Si te pregunta, deja Usar el controlador instalado actualmente.
- Dale un nombre que reconozcas, por ejemplo
Laser-Aula-Virtual. Siguiente. - Cuando termine, marca NO compartir de momento. Finalizar.
2.4 - Imprimir contra la impresora "manual"
- Abre el Bloc de notas, escribe algo y pulsa Ctrl+P.
- Elige Laser-Aula-Virtual e imprime.
- Como su puerto es
FILE:, te pedirá una ruta. PonC:\Users\<tu_usuario>\Desktop\salida.prn. - El archivo
.prncontiene el flujo de datos tal cual lo recibiría la impresora real (PCL o PostScript según el driver).
salida.prn con el Bloc de notas y mira las primeras líneas. ¿Ves comandos extraños tipo %-12345X@PJL o %!PS-Adobe? Pega aquí el principio del archivo y di si es PCL o PostScript:
| Nombre exacto que diste a la impresora "manual" | |
| Driver elegido | |
| Tamaño aproximado del archivo .prn generado | |
| ¿El contenido del .prn es legible? ¿Qué lenguaje usa? |
Parte 3 - Servidor CUPS en la VM Linux (60 min)
Arranca tu VM Ubuntu. CUPS (Common Unix Printing System) es el subsistema de impresión que usan Linux y macOS. Vamos a instalarlo, añadir una impresora virtual con cups-pdf (que imprime a PDF en una carpeta) y prepararla para compartir por red.
3.1 - Instalar CUPS y cups-pdf
- Abre una terminal en Ubuntu.
- Actualiza el índice e instala los paquetes:
sudo apt update sudo apt install -y cups cups-pdf printer-driver-all sudo systemctl enable --now cups systemctl status cups --no-pager
¿Está cups activo (active running)? | |
| Puerto en el que escucha CUPS por defecto |
3.2 - Añadir tu usuario al grupo de administración
sudo usermod -aG lpadmin $USER # cierra sesión y vuelve a entrar para que tome efecto, o: newgrp lpadmin
3.3 - Acceder a la interfaz web de CUPS
- Abre Firefox dentro de la VM Ubuntu y ve a
http://localhost:631. - Verás el panel de administración de CUPS. Pestañas: Home, Administration, Classes, Help, Jobs, Printers.
- Ve a Printers: deberías ver ya una entrada llamada PDF (cups-pdf).
3.4 - Imprimir a PDF desde Linux
- Abre cualquier documento (por ejemplo Archivos → Documentos, o crea uno con
nano prueba.txty escribe varias líneas). - Imprime desde la línea de comandos eligiendo la impresora PDF:
echo "Hola desde CUPS" > prueba.txt lp -d PDF prueba.txt lpstat -o # ver trabajos en cola lpstat -p -d # ver impresoras y la predeterminada
El PDF resultante aparecerá en ~/PDF/ (carpeta home del usuario). Compruébalo:
ls -la ~/PDF/
| Comando que usaste para imprimir | |
| Ruta donde aparece el PDF generado | |
Salida de lpstat -p |
3.5 - Añadir una segunda impresora "genérica" (sin hardware)
Igual que en Windows, en Linux también podemos añadir una impresora con un driver del fabricante sin tenerla físicamente.
- En
http://localhost:631ve a Administration → Add Printer. - Te pedirá usuario y contraseña: usa los del usuario Linux que está en
lpadmin. - En Other Network Printers elige AppSocket/HP JetDirect.
- Pon una URL falsa:
socket://192.0.2.10:9100(es una IP reservada que no existe; sirve para crear la entrada). - Nombre:
HP-Generic. Marca Share This Printer. - Marca HP y elige un modelo, por ejemplo HP LaserJet Series PCL 6.
- Continúa hasta el final.
Parte 4 - Compartir CUPS por red y conectarse desde Windows (40 min)
4.1 - Configurar la red entre las dos VM
Las dos VM tienen que verse entre sí y tener salida a internet (para descargar paquetes y drivers). Vamos a usar Adaptador puente: cada VM coge IP del router de la red real igual que si fuese un PC más. Es la forma más sencilla y con menos configuración.
- Apaga las dos VM.
- En cada VM: Configuración → Red → Adaptador 1 = Adaptador puente sobre la tarjeta de red activa del host (Wi-Fi o Ethernet, la que esté conectada).
- Arranca las dos VM.
- Anota la IP de cada una:
- Linux:
ip aohostname -I - Windows:
ipconfigen CMD
- Linux:
- Comprueba la conectividad: desde la VM Windows haz
ping IP-Linuxy al revés.
| IP de la VM Linux (servidor de impresión) | |
| IP de la VM Windows (cliente) | |
| ¿Hace ping en ambos sentidos? |
4.2 - Habilitar compartir CUPS en la VM Linux
Por defecto CUPS sólo escucha en localhost. Hay que abrirlo a la red:
sudo cupsctl --share-printers --remote-any sudo systemctl restart cups # permitir el puerto si tienes UFW activo sudo ufw allow 631/tcp || true
Comprueba que escucha en todas las interfaces:
sudo ss -tlnp | grep 631
4.3 - Acceder a la web de CUPS desde la VM Windows
- En la VM Windows abre el navegador y ve a
http://IP-Linux:631. - Si te lo pide, acepta avisos de certificado.
- Pestaña Printers: deberías ver PDF y HP-Generic.
- Haz clic en PDF: copia la URL
ipp://...que aparece (la usaremos en el siguiente paso).
4.4 - Añadir la impresora IPP en Windows
- En Windows: Configuración → Impresoras y escáneres → Agregar dispositivo → Agregar manualmente.
- Marca Seleccionar una impresora compartida por nombre.
- Escribe la URL:
http://IP-Linux:631/printers/PDF. - Cuando te pida driver, elige Generic / MS Publisher Color Printer o un genérico PostScript.
- Termina y dale un nombre:
PDF-Servidor-Linux.
4.5 - Imprimir desde Windows contra el servidor Linux
- Desde el Bloc de notas en Windows imprime usando
PDF-Servidor-Linux. - Vete a la VM Linux y mira la carpeta
~/PDF/: debe aparecer un nuevo PDF generado. - Comprueba también la cola en la web de CUPS: pestaña Jobs.
| URL IPP completa que usaste | |
| ¿Apareció el PDF en la VM Linux tras imprimir desde Windows? | |
| ¿Qué driver elegiste en Windows para la cola compartida? |
Parte 5 - Gestión de la cola de impresión (40 min)
5.1 - Llenar la cola en Windows
- En la VM Windows, pausa primero la impresora
Laser-Aula-Virtual: Impresoras y escáneres → Laser-Aula-Virtual → Cola → Impresora → Pausar la impresión. - Envía tres trabajos seguidos: un Bloc de notas, un PDF y una imagen abierta con la app Fotos.
- Vuelve a la cola de impresión: deberías ver los tres trabajos esperando.
5.2 - Pausar, cancelar y reordenar
- Selecciona el segundo trabajo y pulsa Suprimir.
- Sobre el tercer trabajo, botón derecho → Propiedades → Avanzadas: cambia la prioridad a 99 (alta).
- Reanuda la impresora (Impresora → Pausar la impresión de nuevo, se desmarca).
- Comprueba que se imprime el primero y el tercero, y que el segundo no aparece.
| Trabajo | ¿Se "imprimió"? | Comentario |
|---|---|---|
| 1 (.txt) | ||
| 2 (PDF, cancelado) | ||
| 3 (imagen, prioridad alta) |
5.3 - Forzar un atasco de cola y resolverlo
La impresora HP-Generic de CUPS apunta a una IP que no existe, así que cualquier trabajo se quedará atascado. Lo aprovechamos:
- En Linux:
echo "test" | lp -d HP-Generic - Comprueba la cola:
lpstat -oolpq -P HP-Generic - El trabajo se queda atascado o entra en estado de error. Mira el panel web de CUPS.
- Cancela el trabajo:
cancel -a HP-Generic - Reanuda la cola si quedó pausada:
cupsenable HP-Genericycupsaccept HP-Generic
lpstat -o # ver trabajos pendientes lpq -P HP-Generic # cola en formato BSD cancel -a HP-Generic # cancelar todos los trabajos cupsenable HP-Generic # reanudar la impresora cupsaccept HP-Generic # aceptar nuevos trabajos lpadmin -d PDF # poner PDF como predeterminada
Salida de lpstat -o con trabajos atascados | |
| Comando que usaste para cancelarlos | |
¿Cómo cambia lpstat -o después? |
5.4 - Reiniciar el spooler en Windows
En Windows, cuando la cola "se vuelve loca" y los trabajos no salen ni se borran, se reinicia el servicio del spooler:
- Abre Servicios (
services.msc). - Busca Cola de impresión (Print Spooler).
- Botón derecho → Reiniciar.
- Equivalente por consola (administrador):
net stop spooler net start spooler
Parte 6 - Diagnóstico de problemas frecuentes (30 min)
Ya tienes el entorno montado. Vamos a provocar y resolver los fallos más típicos.
6.1 - Impresora "fuera de línea"
- En Windows, sobre
Laser-Aula-Virtual: Cola → Impresora → Usar la impresora sin conexión. - Envía un trabajo: se queda en cola con la impresora marcada en gris.
- Desactiva el modo sin conexión y comprueba que el trabajo se procesa.
¿En qué casos reales una impresora aparece "fuera de línea" sin que el usuario la haya puesto así?
6.2 - Driver incorrecto
- En Windows, propiedades de
Laser-Aula-Virtual → Opciones avanzadas → Controlador: cámbialo a uno claramente incompatible (por ejemplo un driver matricial muy antiguo si está en la lista, o Generic / Text Only). - Imprime un PDF con imágenes: comprueba el resultado del archivo
.prn. - Vuelve a poner el driver correcto.
¿Qué síntomas en el papel te harían sospechar de un driver incorrecto en una impresora real?
6.3 - Problema de red
- Apaga la VM Linux dejando una impresión pendiente desde Windows contra
PDF-Servidor-Linux. - Mira el estado del trabajo en la cola Windows: irá a "error" o "intentando conectar".
- Vuelve a arrancar la VM Linux: el trabajo debería salir solo.
6.4 - Checklist "no imprime"
Cuando un usuario te diga "la impresora no imprime", repasa por orden:
- ¿Está encendida y con papel? (en una real)
- ¿La cola tiene trabajos atascados? Vacíala.
- ¿Está marcada como "sin conexión" o "pausada"? Quítaselo.
- ¿Es la impresora predeterminada y la app está usando esa? Comprueba con un Bloc de notas.
- ¿Hay conectividad si es de red?
pinga la IP, navegador a la URL IPP. - ¿El driver es el correcto? Reinstálalo si dudas.
- ¿El servicio Print Spooler (Windows) o cups (Linux) está corriendo? Reinícialo.
- Sólo al final: drivers más recientes / firmware de la impresora.
Conclusiones y autoevaluación
De todo lo que has hecho, ¿qué te llevarías a una situación real de trabajo en una oficina pequeña que necesita instalar y compartir una impresora?
Autoevaluación
| Aspecto | Logrado |
|---|---|
| He usado Microsoft Print to PDF y entiendo que es una impresora "real" para Windows | |
| He añadido una impresora manualmente con el driver del fabricante sin tener el equipo | |
| He instalado y configurado CUPS en la VM Linux | |
| He compartido la impresora del servidor Linux y la he usado desde la VM Windows por IPP | |
| Sé gestionar la cola en Windows (GUI) y en Linux (lp, lpstat, cancel) | |
| Sé reiniciar el spooler en Windows y CUPS en Linux | |
| Conozco los protocolos IPP, LPD y RAW 9100 y para qué se usan |