Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如何从EPS构建PostScript文件?_Java_Graphics2d_Postscript - Fatal编程技术网

Java:如何从EPS构建PostScript文件?

Java:如何从EPS构建PostScript文件?,java,graphics2d,postscript,Java,Graphics2d,Postscript,我想从Java中的Graphics2D创建一个多页PostScript文件。我目前有Java代码,可以为每个页面写入Graphics2D对象。使用EPSGraphics库,我可以使用它为每个页面创建一个EPS对象 然后如何从EPS对象集合中构建PostScript文件 注意:我不是在问,如果这是一种方法,并且存在几种方法,那么最好的库是什么。我只是想问一下如何做到这一点。每个EPS文件都有一个边界框作为注释(可能还有一个HiResBoundingBox)。您需要阅读注释,它将告诉您每个EPS的大

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

然后如何从EPS对象集合中构建PostScript文件


注意:我不是在问,如果这是一种方法,并且存在几种方法,那么最好的库是什么。我只是想问一下如何做到这一点。

每个EPS文件都有一个边界框作为注释(可能还有一个HiResBoundingBox)。您需要阅读注释,它将告诉您每个EPS的大小(以PostScript点数表示)

然后,您需要决定如何绘制每个EPS(注意,EPS是单个图形而不是一页)。给定边界框,您可以决定要在页面上放置图形的位置。然后保存当前图形状态,编写缩放、平移和旋转操作符以将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

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

然后,您需要决定如何绘制每个EPS(注意,EPS是单个图形而不是一页)。给定边界框,您可以决定要在页面上放置图形的位置。然后保存当前图形状态,编写缩放、平移和旋转操作符以将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

“是否有一个Java库可以这样做和/或有一个网页解释该做什么?”这种问题是离题的,您应该重新措辞。也许:“是否有一个Java库可以这样做,或者有一个网页可以解释怎么做?”这种问题是离题的,您应该重新措辞。也许:那么边界框是以点为单位的?这是有道理的。这就像EMF一样,它也是基于向量的,但有一个固定的大小(当然可以忽略)。谢谢。那么边界框就是点了?这是有道理的。这就像EMF一样,它也是基于向量的,但有一个固定的大小(当然可以忽略)。非常感谢。