我想用Java中的Graphics2D创建一个多页的PostScript文件。我目前有Java代码写入每个页面的Graphics2D对象。使用EPSGraphics库,我可以使用它来让它为每个页面创建一个EPS对象。Java:我如何从EPS构建PostScript文件?
我该如何从这个EPS对象集合中建立一个PostScript文件?
注意:我是而不是询问什么是最好的库来做到这一点,如果这是一种方法和几个存在。我只是问如何做到这一点。
我想用Java中的Graphics2D创建一个多页的PostScript文件。我目前有Java代码写入每个页面的Graphics2D对象。使用EPSGraphics库,我可以使用它来让它为每个页面创建一个EPS对象。Java:我如何从EPS构建PostScript文件?
我该如何从这个EPS对象集合中建立一个PostScript文件?
注意:我是而不是询问什么是最好的库来做到这一点,如果这是一种方法和几个存在。我只是问如何做到这一点。
每个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
所以边界框在点?这就说得通了。这就像EMF一样,也是基于矢量的,但是具有一定的尺寸(当然这可以忽略)。谢谢。 –
“还有,这是否和/或一个网页,解释怎样做一个Java库?”这种问题是无关紧要的,你应该改变。也许:https://xmlgraphics.apache.org/commons/postscript.html#generator –