彩票走势图

PDF转换控件PDFRasterizer.Net跨平台限制的解决方法

原创|使用教程|编辑:郝浩|2013-03-18 13:50:06.000|阅读 318 次

概述:最近接到一些客户的反馈,反映无法在Mono中运行PDFRasterizer.Net,让其无法使用PDFRasterizer.Net跨平台转换创建PDF。本文带来针对这个问题的解决方案。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  最近接到一些客户的反馈,反映无法在Mono中运行PDFRasterizer.Net,让其无法使用PDFRasterizer.Net跨平台转换创建PDF。虽然PDFRasterizer.Net至今没有正式宣布支持Mono,但是慧都秉着服务客户的态度,进行了一系列的测试。

在Windows环境中用MonoDevelop运行Sample

  在安装MonoDevelop后,我们将PDFRasterizer.Net官方提供的一些Sample放入其中运行,发生了和客户反馈一样的问题:CS1566错误。

  为解决这个问题,我们手动调用了所有.resx文件,以便调试,不过又出现以下问题。

解决PDFRasterizer.Net跨平台限制的方法

  很明显这是一个MonoDevelop运行调试的问题,如果不进行调试,便不会发生错误,所有我们放弃了在Windows中进行进一步的调试。如不进行调试,PDFRasterizer.Net将正常运行,如下图。

解决PDFRasterizer.Net跨平台限制的方法

在OSX环境中用MonoDevelop运行Sample

  接下来测试,在Mac OSX环境中使用MonoDevelop运行Sample。同样报错“错误CS0584”。

  这个错误和WPF有关,但PDFRasterizer.Net中并没有使用任何WPF的功能,所有我们怀疑是.Net 4.0的原因,故我们卸载了.Net 4.0,重新安装.Net 2.0。然后测试PDFRasterizer.Net的Sample便可以正常启动了。

解决PDFRasterizer.Net跨平台限制的方法

  不过我还是有些小问题,如上图看到的,Sample中的水印不见了。这也许对某些用户来说是一件好事,但还有在OSX中PDFRasterizer.Net运行还是有其他问题:

  • 某些页面渲染出来是空白,或者只渲染出一部分
  • Mono在没有任何提示的情况下,翻到某些页面直接闪退

解决PDFRasterizer.Net跨平台限制的方法

  这两个问题已经向官方反映,只有期待PDFRasterizer.Net官方更新新版本来解决了。

在MonoDevelop中进行编译

  接下来,我们测试在MonoDevelop下编译PDFRasterizer.Net源。首先是在Windows环境中测试的。使用过MonoDevelop的开发者都知道,他的编译器和标准的Microsoft .Net相比还是有一定的局限性的,比如vars和扩展方法上的容易报错,将这些错误修复后,PDFRasterizer.Net源运行正常。接下来是OSX,只在flagged中发生了一些小错误,其他运行正常。

  经过测试PDFRasterizer.Net在MonoDevelop 3.0.5 for windows和MonoDevelop 3.1.1 for OSX都可以正常进行编译。

结论

  Mono虽然声称自己是一个可以跨平台的运行环境,不过他在OSX中运行得并不算太稳定。使用PDFRasterizer.Net + Mono进行跨平台的PDF生成和浏览,现阶段通过以上测试,还是比较可行的,至少几乎全部基本功能是在实现的。不过我们还是期待PDFRasterizer.Net在下一版本中,能对TallBitmap渲染器进行改进,彻底解决OSX渲染不完全的问题。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP