Pregunta

Guardar datos en Postscript en mi aplicación da como resultado un archivo Postscript que puedo ver sin problemas en GhostView, pero cuando intento imprimirlo, la impresora no puede imprimirlo porque parece no ser válido.

¿Hay alguna forma de validar / encontrar errores en los archivos Postscript sin enviarlos realmente a una impresora? Preferiría algún tipo de API / biblioteca Java, pero un programa que haga lo mismo también estaría bien.


Editar # 1 : no, no sé por qué no es válido, ni siquiera necesariamente si es inválido, pero me gustaría poder validarlo fuera de ghostview, o averiguar qué está pasando cuando no se puede imprimir.


Respuesta : Bueno, usando el truco ps2ps pude ver la salida que realiza Postscript y allí compruebo la diferencia. La diferencia fue que no se me permite tener un número decimal para el ancho o alto de las imágenes en el PostScript, sino solo números enteros. Así que todavía no encontré una forma de validar, pero de esta manera fue lo suficientemente bueno para mi problema. Gracias.

¿Fue útil?

Solución

Si puede verlo en ghostview, significa que ghostscript puede analizarlo.

Entonces, un truco que podrías intentar usar para imprimir (pero no para validar realmente) tu archivo sería usar el modo de salida de script de ghostscript (hay un envoltorio llamado ps2ps para él, que agrega principalmente -sDEVICE = pswrite ; también hay ps2ps2 que usa -sDEVICE = ps2write ).

Otros consejos

Cada vez que necesito validar un archivo PostScript con Ghostscript sin tener que mirar las imágenes de la página renderizada, uso la página " nullpage " dispositivo:

gswin32c ^
   -sDEVICE=nullpage ^
   -dNOPAUSE ^
   -dBATCH ^
   c:/path/to/file/to/be/validated.pdf-or-ps ^
   1>validated.stdout ^
   2>validated.stderr

En caso de un problema, habrá un conjunto de % errorlevel% distinto de cero, y el archivo de registro validated.stderr contendrá todos los mensajes que Ghostscript escupió durante representación.

¿Sabes por qué no es válido?

Mi sugerencia habría sido enviarlo a Ghostscript / Ghostvoiew, pero dado que Ghostview puede verlo, parece que al menos algunos intérpretes piensan que es un PostScript válido.

Por lo tanto, puede ser algo específico para su impresora, ya sea por algo delicado en el PS que permite Ghostscript, o por acceder a algo que no existe en su impresora (sistema de archivos, tal vez) o por sobrepasar algún límite de memoria, o ...

El punto es que puede no ser un programa de PS erróneo y, por lo tanto, una biblioteca / API para validarlo podría no ayudar

Editar: ¿Se imprime algo de eso? ¿Ha probado una impresora de un fabricante diferente (o un proveedor de intérpretes PostScript, de todos modos)? ¿Ghostview da / registra advertencias o errores?

¿De dónde (de qué aplicación) se origina el documento?

¿Puedes generar otras instancias del documento? (por ejemplo, uno realmente simple / vacío para ver si eso también da errores)

A menos que haya una API que proporcione acceso al intérprete específico que se usa en su impresora, creo que usted está validándolo contra otro intérprete de PS (Ghostscript).

Dado que no hay muchos clones de PS en el mundo, obtener acceso a otro no basado en GS probablemente no sea fácil

Edit2: este enlace (si es información bastante antigua) brinda información sobre cómo obtener más detalles de su impresora sobre el error: http://www.quite.com/ps/errors.htm

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top