在C#环境下生成PostScript的最优方案咨询
针对.NET环境下
ps格式输出性能问题的解决方案评估与反馈需求 我负责的多格式高排版文档生成系统,现在需要新增ps格式的输出能力。先跟大家说下系统的技术背景:核心代码以Java为主,通过IKVM转换为.NET类库,只有5%是原生C#代码。目前在Java端我们是借助支持写入Graphics2D对象的库来生成ps文件,但通过IKVM在.NET环境下运行时,速度慢得无法接受。
针对这个性能瓶颈,我拟定了四个解决方案,希望能得到社区各位的反馈和建议:
方案1:修改IKVM代码以优化性能
- 优势:如果优化成功,性能会是所有方案里最优的,而且能兼容未来的
Graphics2D类库更新 - 劣势:一旦优化失败,投入的时间就全部白费;另外后续需要维护独立的IKVM分支,长期来看会增加额外的维护成本
方案2:调研oreasoft并结合PostScriptBuilder使用
- 优势:处理
ps格式的速度快、精度高;顺带还能快速实现bitmap和wmf输出的GraphicsBuilder - 劣势:只能解决
ps这单一格式的问题,而且每年要支付5K的费用,考虑到这个格式的销量可能不高,成本收益比存疑
方案3:基于.NET Graphics对象构建PS类库,类比Java的Graphics2DOutputBuilder创建.NET版GraphicsOutputBuilder
- 优势:这是最规范的方案,后续要新增bitmap或
emf格式输出会非常便捷 - 劣势:整体工作量很大,而且在学习PostScript细节的过程中,很可能会不断遇到各种小问题拖慢进度
方案4:重写Apache xml-graphics库,将Java调用替换为.NET调用
- 优势:相比方案3,工作量略小一些
- 劣势:只能解决当前的
ps格式问题,未来如果要新增SVG这类其他格式,又得重新完整重写一遍
内容的提问来源于stack exchange,提问作者David Thielen
相关产品推荐
相关产品推荐

