Pregunta

Estoy buscando bibliotecas que ayuden a manipular mediante programación los archivos EPS (PostScript encapsulado). Básicamente, lo que quiero hacer es lo siguiente:

  • Mostrar / Ocultar capas preexistentes en el archivo EPS (activar y desactivar)
  • Rellenar (color) formas con nombre en el archivo EPS
  • Recuperar coordenadas de puntos nombrados en el archivo EPS
  • dibujar formas en una nueva capa en el archivo EPS
  • en un servidor, sin interacción del usuario (el script Adobe Illustrator no funcionará)

Soy consciente de cómo el formato de archivo EPS se basa en el lenguaje PostScript y, por lo tanto, debe interpretarse; para crear dibujos simples desde cero, esto es bastante fácil. Pero para modificar realmente los archivos existentes, supongo que necesita una biblioteca que interprete el archivo y proporcione algún tipo de "DOM". para manipulación.

¿Puedo incluso haber nombrado formas y puntos dentro de un archivo EPS?

EDITAR: Suponiendo que tengo las capas guardadas en archivos EPS separados. O mejor aún: solo los "datos" parte de las capas. ¿Podría entonces concatenar estas cosas para crear un nuevo archivo EPS? ¿Y anexar comandos de dibujo? ¿Completar objetos con nombre existentes?

¿Fue útil?

Solución

Esto es extremadamente difícil y esta es la razón: un archivo PS es un programa cuya ejecución resulta en píxeles colocados en una página. La instrucción en un programa de PS está en el nivel de "dibujar una línea usando el lápiz y el color actuales". o "rotar el sistema de coordenadas 90 grados" pero no existe una noción de capas u objetos complejos como los vería en una aplicación de dibujo vectorial.

Existen muy pocas convenciones en la estructura de los archivos PS para permitir que los programas externos las modifiquen: las páginas se marcan por separado, los recursos de fuentes y las dimensiones de los medios se detallan en comentarios especiales. Esto es especialmente cierto para PostScript incrustado (EPS) que debe seguir estas pautas porque están destinadas a ser leídas por las aplicaciones, pero no para PS generales, ya que se envían a una impresora. Un programa PS es un nivel de abstracción mucho más bajo que el que necesita y ahora hay una manera de reconstruirlo para un código PS arbitrario. En principio, un archivo PS podría tener un resultado diferente cada vez que se imprime, ya que puede consultar su entorno de ejecución y su ramificación en función de decisiones aleatorias.

Las aplicaciones como Adobe Illustrator emiten código PS que sigue una estructura rígida. Existe la posibilidad de que estos puedan analizarse y manipularse sin interpretar el código. Todavía sugeriría repensar la arquitectura actual: está en un nivel de abstracción demasiado bajo para lo que necesita.

Otros consejos

PDF no es manipulable ya que no es posible cambiar ninguna parte existente de un pdf (en general) solo agrega cosas. EPS es lo mismo que PostScript, excepto que tiene un encabezado de límite.

El problema de hacer lo que quieres es que PS es un lenguaje de programación cuya salida (principalmente) es algún tipo de imagen. Entonces, la pregunta podría plantearse como "¿cómo puedo dibujar formas en una nueva capa en el archivo Java?". Probablemente necesite generar el PS completo sobre la marcha, o usar otro formato de imagen por completo.

No conozco ninguna biblioteca disponible para esto, pero puede crear algo para satisfacer sus necesidades en función de epstool de Ghostscript / GSview

Creo que su mejor opción es generar un PDF a partir del EPS y luego manipular el PDF. Luego de vuelta a EPS. PDF es mucho más "manipulable" que es EPS.

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