2017-05-12 2 views
0

Je souhaite créer un fichier PostScript de plusieurs pages à partir de Graphics2D en Java. J'ai actuellement un code Java qui écrit sur un objet Graphics2D pour chaque page. En utilisant la bibliothèque EPSGraphics, je peux l'utiliser pour créer un objet EPS pour chaque page. Comment créer un fichier PostScript à partir de cette collection d'objets EPS?Java: Comment créer un fichier PostScript à partir d'EPS?

Note: Je suis pas demandant quelle est la meilleure bibliothèque pour faire cela si c'est l'approche et plusieurs existent. Je demande juste comment faire cela.

+0

« Y at-il une bibliothèque Java qui fait cela et/ou une page web qui explique quoi faire? » ce genre de question est hors-sujet, vous devriez reformuler. Peut-être: https://xmlgraphics.apache.org/commons/postscript.html#generator –

Répondre

2

Chaque fichier EPS a un BoundingBox en commentaire (peut-être aussi un HiResBoundingBox) dont vous avez besoin pour lire les commentaires, qui vous indiquera la taille (en points PostScript) de chaque EPS.

Vous devez ensuite décider comment vous voulez dessiner chaque EPS (notez, un EPS est un seul chiffre pas une page). Compte tenu de la boundingbox, vous décidez où sur la page vous voulez placer la figure. Vous sauvegardez ensuite l'état graphique actuel, écrivez l'échelle, traduisez et faites pivoter les opérateurs pour placer l'EPS sur la page, puis exécutez un grestore.

Si vous souhaitez afficher plusieurs images EPS par page, répétez l'opération pour chaque chiffre.

A la fin de la page, écrivez l'opérateur showpage pour afficher et éjecter la page. Répétez pour la page suivante.

donc votre programme PostScript final devrait ressembler à:

%!PS 
gsave 
x y translate 
x y scale 

% Insert the entire content of the first EPS here 
% 

%!PS_Adobe_EPSF.... 
.... 
.... 
%%EOF 

grestore 


gsave 
x y translate 
x y scale 

% Insert the entire content of the second EPS here (if required) 
% 

%!PS_Adobe_EPSF.... 
.... 
.... 
%%EOF 
... 
... 

grestore 
showpage 

%% Begin page 2, repeat as above 

showpage 
+0

Donc la boîte englobante est en points alors? Ça a du sens. C'est comme EMF qui est également basé sur le vecteur, mais a une taille d'ensemble (qui peut bien sûr être ignoré). Je vous remercie. –