Pueblerino 117


Desvaríos varios Some nonsense
Idioma Language

Qué pasa con los archivos "Imprimir a un archivo" ("Print to file") en Windows

Siempre me he preguntado qué pasa con los archivos que dan como resultado la opción, a la hora de imprimir, "Imprimir a un archivo", o "Print to file", o parecido.

¿Por qué?, porque se quedan ahí, pero luego ya no se pueden utilizar. Más que no poder, es que no tenía ni idea.

Hoy ha sido un de esos días y me he puesto cabezón, así que los he examinado y, después de mirar aquí, allí y en el otro largo y ancho de Internet, puedo determinar lo siguiente:
(la mayor parte de la información la he encontrado aquí)

  • normalmente, suelen ser archivos que contienen el formato de comandos PJL que, se podría decir, son un estándar de facto entre los fabricantes de impresoras (inicialmente concebido por HP (Hewlett-Packard)) y dan como resultado un archivo PCL (lenguaje de comandos de impresora), y que el lenguaje tiene diferentes versiones y subversiones,
  • que puede tener extensión PRN, o no, (de hecho el dialogo de imprimir a un archivo da libre albedrío a la ruta y nombre de archivo resultante),
  • que los comandos dentro del archivo son específicos de cada impresora, así que si queremos reutilizar el archivo, sólo podremos decirle a la impresora utilizada para crear el archivo que lo imprima (esta es una de las razones por las que nunca he entendido cómo utilizar estos archivos),
  • que dependiendo de la impresora, el formato del archivo cambia, precisamente por lo que he puesto en el párrafo anterior.

Vale, entonces, ¿qué hacemos ahora?

Pues, a ver, como decía, todo depende de la impresora utilizada. Puede que en tu caso particular sólo tengas una, pero yo tengo 4, físicas, de PDF y XPS (Windows).

Impresora PDF

En el caso de que hayas usado la impresora de PDF (que es un absurdo imprimir a archivo cuando lo puedes hacer a PDF, que es de lo más compatible que hay (Portable Document Format)), el formato del archivo será PS. O al menos es lo que hace mi impresora PDF. Y por hacer con él, puedes hasta editarlo con Photoshop (previa asignación, o cambio, de extensión del archivo a .PS, que Photoshop es muy quisquilloso con las extensiones, aunque reconozca el contenido), o con cualquier editor gráfico que acepte formato PostScript, (que no es otro formato que la base de un PDF y es aún más compatible que PDF, pero menos manejable sin las herramientas adecuadas).

Sea como sea, una vez abierto lo puedes imprimir desde el propio editor gráfico.

Otra opción es convertirlo con GhostScript a PDF, pero no es para todo los públicos.

Y la última, la más lógica, pues enviarlo directamente a una impresora, y que explicaré ahora. Al fin y al cabo, el lenguaje PostScript lo entienden las impresoras a la perfección.

Impresora específica

En el caso de que el archivo sea para una impresora específica, como decía antes, sólo podrás imprimirlo con la impresora que elegiste a la hora de imprimir a un archivo por las diferencias de implementación y comandos que espera recibir cada impresora.

Sabido eso podemos hacerlo de la siguiente manera:

  • con el comando COPY, desde consola, o ventana de DOS, (cmd.exe):
    copy /B archivoDeImpresion \\(IP o nombre de equipo)\nombredeimpresora
  • ó
    copy /B archivoDeImpresion puertoDeImpresora

    Es ingenioso y esto yo no lo sabía. No sabía que se podían enviar datos a una impresora como el que copia un archivo de una ubicación a otra. En este caso del disco a una impresora de red (primer ejemplo) o a un puerto (segundo ejemplo), que sería LPT, USB, etc, dependiendo del que tenga asignado la impresora.

    En el primer comando, IP correspondería a la IP local de tu equipo, o el equipo que comparta la impresora, como por ejemplo 192.168.6.85; y el nombre de equipo, pues lo mismo, tu equipo, o el nombre del equipo que comparte la impresora, por ejemplo "PC_Pepe".

    El parámetro "/B" de copy indica que es un archivo binario, no en texto plano. O sea, que no es legible por un ser humano, sólo por una máquina.

  • con el comando LPR, desde consola, o ventana de DOS (cmd.exe):
    lpr -S "IP o nombre del servidor de impresión" -P "nombre de la impresora" -o l "archivoDeImpresion"

    En el caso de que tengas un servidor de impresión (en teoría también con una impresora compartida en otro PC), podrás utilizar el comando LPR.

    LPR es un protocolo de comunicación con los servidores de impresión.

    En el parámetro "-S", como con copy, ponemos una IP o nombre del servidor de impresión; con "-P", el nombre de la impresora que, en la práctica, salvo que tengas un servidor de impresión con capacidad de conectar múltiples impresoras, da igual ponerlo bien, o mal; "-o l" es para decir que es un archivo binario.

Hecho eso, y si todo sale bien, la impresión saldrá por la impresora.

Como veis, una auténtica gilipollez. Pero no veáis que dilema el qué hacer con los dichosos archivos. Vamos, es que yo nunca he entendido la utilidad. Y más que la utilidad, es que nadie explica nunca en ningún sitio ni para qué sirve, ni, lo más importante, cómo se utiliza, porque, salvo el comando LPR, ni siquiera Windows te explica qué hacer. De hecho, te explica cómo usar el comando, pero no que se pueda utilizar con los archivos de "imprimir a un archivo".

Espero que esto sirva de utilidad a otros, como me ha servido a mí.

P.S.: el formato XPS, ni me molesto, el funcionamiento es igual, y un formato extra inventado por Microsoft :/