【发布时间】:2018-11-09 22:17:21
【问题描述】:
我需要从我们的系统创建 PostScript 输出。我们的系统会生成多种格式的高格式文档,我需要添加 .ps 作为附加格式。
有点奇怪,我们的代码都是用 Java 编写的,并且我们使用 IKVM 作为我们库的 .net 版本。我们有大约 5% 的代码是用 C# 编写的,其余的是用 IKVM 转换的 Java。
我使用一个库在 Java 端创建 .ps 文件,该库允许我写入它提供的 Graphics2D 对象。 Unfortunately, in .NET (via IKVM) it's horribly slow.
所以,为了解决这个问题,我在想:
- 进入 IKVM 代码,看看我是否可以加快速度。它没有
感觉它是如此缓慢。
- 优势,如果它有效,它可能是 最快的分辨率。现在可以使用未来的 Graphics2D 库。
- 缺点,如果我做不到,我就浪费了时间。还有,往前走 我们将拥有自己的 IKVM 分支。
- 调查oreasoft - 如果是
有效,将其与 PostScriptBuilder 一起使用
- 优势,这应该非常快并且完全正确地处理.ps。
- 缺点,这只能解决 .ps 的问题。对于一种我们可能不会获得很多销售的格式,也是 5K/年。
- 在这种情况下,我会为位图和 .wmf 输出创建一个 GraphicsBuilder——这将是快速和简单的。
- 为 .ps 创建一个基于 .net Graphics 对象的库。然后就像
Java 中的 Graphics2DOutputBuilder,在 .net 中创建一个 GraphicsOutputBuilder
- 优势,这是最干净最正确的方法。我们可以通过这种方式轻松添加位图和 .emf 输出(它们有一个 Graphic 对象的写入方式)。
- 缺点,这是大量的工作,当我们了解 PostScript 的所有细节时,我们可能会遇到一些小问题。
- 重写 Apache xml-graphics 库以使用 .net 调用而不是 Java 调用来调用其中的代码。
- 优势,这可能比图形方法少一些工作。
- 缺点,完成后我们有了这个,但任何未来的格式,如 SVG,我们还必须完全重新编写。
感谢任何有关解决此问题的反馈。
【问题讨论】:
-
方案五,使用IPC将数据从.NET传到Java,用Java做.ps渲染?
-
@glenebob - 我敢肯定,如果我们说他们必须在服务器上安装 Java,我们会遭到一些人的反对。如果我们真的走这条路,也许 JNI 会更好?
标签: .net graphics2d postscript ikvm