2017-05-12 31 views
0

我想用Java中的Graphics2D创建一个多页的PostScript文件。我目前有Java代码写入每个页面的Graphics2D对象。使用EPSGraphics库,我可以使用它来让它为每个页面创建一个EPS对象。Java:我如何从EPS构建PostScript文件?

我该如何从这个EPS对象集合中建立一个PostScript文件?

注意:我是而不是询问什么是最好的库来做到这一点,如果这是一种方法和几个存在。我只是问如何做到这一点。

+0

“还有,这是否和/或一个网页,解释怎样做一个Java库?”这种问题是无关紧要的,你应该改变。也许:https://xmlgraphics.apache.org/commons/postscript.html#generator –

回答

2

每个EPS文件都有一个BoundingBox作为注释(可能还有一个HiResBoundingBox),您需要阅读注释,它会告诉您每个EPS的大小(PostScript点)。

然后您需要决定如何绘制每个EPS(注意,EPS是单个数字而不是一页)。给定boundingbox,你决定在页面上你要放置图的位置。然后保存当前的图形状态,编写比例尺,翻译并旋转操作符以将EPS放在页面上,然后执行grestore。

如果您希望每页有多个EPS数字,请对每个数字重复一次。

在页面末尾,编写showpage操作符来渲染并弹出页面。重复下一页。

所以,你最终的PostScript程序应该是这个样子:

%!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

所以边界框在点?这就说得通了。这就像EMF一样,也是基于矢量的,但是具有一定的尺寸(当然这可以忽略)。谢谢。 –