Archivos PPD
PPD es el acrónimo inglés de PostScript Printer Description, es decir,
descripción de impresoras con soporte PostScript, y se emplea en sistemas
como CUPS para manejar impresoras, aunque en este último caso se ha
desviado de la norma para poder usarlos con impresoras sin soporte PostScript
. En
este caso se llaman archivos CUPS-PPD
.
Modificando ó creando archivos PPD
Dado que el contenido de estos archivos se utiliza en ocasiones para presentar opciones a un humano, es bastante posible que sea necesario modificarlo aunque sólo se trate de una traducción.
En este caso tengo algunos enlaces que pueden ayudar:
- Construir un archivo
PPD en la
documentación oficial de
CUPS
. Muy breve y poco conciso pero es un buen punto de entrada. - Diferencias entre PageSize y PageRegion ó por qué existen las mismas cosas con diferentes nombres en estos archivos.
Para comprobar si un archivo PPD
es correcto se puede emplear la utilidad
cupstestppd
ó usar la versión en línea.
Estructura de un archivo PPD
Un archivo PPD
es un archivo de texto, con líneas de hasta 255 caracteres
terminadas por un retorno de carro, un salto de línea ó una combinación de
ambos.
Se compone de una cabecera y un cuerpo, el cuál puede estar a su vez compuesto por bloques de datos y comentarios.
Dejo aquí esto temporalmente:
PPD-FILE = HEADER +(DATA / COMMENT / LINE-END)
HEADER = "*" 0x50.50.44.2D.41.64.6F.62.65 ":" ; *PPD-Adobe:
*WSP DQUOTE "4.3" DQUOTE LINE-END
COMMENT = "*%" *TCHAR LINE-END
DATA = "*" 1*KCHAR [ WSP 1*KCHAR [ "/" 1*TCHAR ] ] ":"
1*(*WSP VALUE) LINE-END
VALUE = 1*TCHAR / DQUOTE 1*SCHAR DQUOTE
KCHAR = ALPHA / DIGIT / "_" / "." / "-"
SCHAR = LINE-END / WSP / %x21 / %x23-7E / %xA0-FF
TCHAR = %x20-7E / %xA0-FF
LINE-END = CR / LF / CR LF
Cabecera
La cabecera consiste en una línea de texto completa con el siguiente contenido literal:
\*PPD-Adobe: "4.3"
Comentario
Los comentarios son líneas de texto que comienzan por la secuencia *%
y
contienen caracteres imprimibles de ASCII.
\*% This is a comment
Bloque de datos
Traduciendo archivos
Respecto a la traducción de aquellas partes del archivo que se presentan al usuario, encuentro algunas dificultades con los juegos de caracteres como el UTF-8, del que ya debería estar avisado, y que vienen documentados en el sitio oficial.
Para traducir un archivo PPD
hay que seguir estas normas:
- El valor de la variable
LanguageVersion
debe serEnglish
. - El valor de
LanguageEncoding
debe serISOLatin1
. - Se debe incluír una variable
cupsLanguages
que liste todos los languajes (locales) incluídos en el archivo. - Los nombres de variables y de opciones se deben limitar a 34 caracteres de longitud, en lugar de los 40 que permite la norma, para poder añadir los prefijos de lenguajes en los atributos traducidos.
- La variable
Translation
está reservada y no debe usarse nunca. - En los valores de las variables y opciones no deben emplearse
caracteres fuera del subconjunto
ASCII
delISOLatin1
y UTF-8. - Los lenguajes se deben especificar con el prefijo de dos letras del código ISO de lenguages y, si procede, el código de dos letras ISO del país separados por un guión bajo.
- Los textos traducidos deben estar en UTF-8.
Para traducir una variable se debe emplear la palabra clave
Translation
de la siguiente forma:*es.Translation PaperSize/Tamaño del papel: ""
Mientras que para las opciones se debe emplear el nombre de la variable a la que pertenezcan:
*es.PaperSize Letter/Tamaño carta: ""
Las traducciones pueden aparecer en cualquier parte y cualquier orden a partir de la línea 1.
Otros enlaces al respecto son:
- Comentarios en una lista de correo, algo antiguo ya.
- Notas en Apple al respecto
Archivos PPD personales
Estos son los archivos PPD que tengo alojados: