2012-01-18 35 views
1

我目前正在编写用Java创建PostScript文档的应用程序,我正在寻找一种方法来创建文档的示例图像。示例图像仅供用户使用,以了解他们正在构建的文档在当前状态下的外观。Java将PostScript转换为任何图像格式

有没有人知道如何做到这一点?如果有人知道这样做的算法会很棒。如果我不得不(不得已),我也对第三方软件开放。

+0

呈现PostScript文件是一项非常复杂的任务,因此您不需要使用“算法”。哎呀,PostScript是图灵完整的; )所以你最好的选择是使用第三方的Java API或者已经存在的程序的包装。你在哪个平台上,是在服务器端发生还是在桌面应用程序中发生?我一直使用* ps2pdf *,并且还有允许将PostScript页面呈现为位图的命令。 – TacticalCoder 2012-01-18 02:55:17

+0

我希望最终产品是跨平台的。目前我正在Windows 7中开发。因此,第三方API或封装听起来像是一个很好的方法。我只需要找到一个。有任何想法吗? – berniefitz 2012-01-18 02:59:10

+0

由于您的应用程序创建了文档,您可能可以编写代码来渲染它(无论是从PostScript还是从您构建它的任何数据)。你可以发布一个示例PostScript文档吗? – 2012-01-18 03:13:48

回答

3

你可以用这样的Ghost4J做到这一点:

// load PS document 
PSDocument document = new PSDocument(); 
document.load(new File("input.ps")); 

// create renderer 
SimpleRenderer renderer = new SimpleRenderer(); 

// set resolution (in DPI) 
renderer.setResolution(300); 

// render 
List<Image> images = renderer.render(document); 

它的工作原理,以及PDF文件。签出一个完整的例子here

4

正如其他人所提到的,PostScript language是一个具有复杂成像模型的图灵完全编程语言。渲染由任意PostScript语言片段绘制的图像是一项艰巨的任务。你一定要调用一个成熟的现有PostScript解释器,而不是试图实现一个“算法”来做到这一点。

一位备受瞩目的PostScript口译员是GhostScript。 Ghostscript免费用于非商业用途。 Ghost4J似乎是一个包装GhostScript API的Java类框架。 (我没有用过)

或者你可以将PostScript语言代码写入磁盘文件,并调用一个单独的进程将代码呈现给图像文件,并从磁盘读取图像文件。查看Stackoverflow Questions tagged "ghostscript"了解更多的想法。

如果您想要PostScript解释器用于商业用途,则可以使用一个选项Distiller Service of LiveCycle ES。 LiveCycle ES几乎肯定不是低成本的解决方案。您也可以捆绑一份Adobe Acrobat Professional,其中包含一个名为Distiller的PostScript解释器。然后调用一个单独的进程来使用Distiller来呈现PostScript语言代码,就像上面的GhostScript一样。

除Adobe以外的其他公司提供商业条款的PostScript口译员。