Spire PDF for .NET 在ASP.NET中的使用 ---- 并非那么“美好”,有些挫折!

笔者注:看此文前,请您先看一下上一篇文章吧。

昨天的时候,我测试了一下Spire PDF在WinForm程序中的应用,可以说用起来很简单(请忽略效率问题,没有进行测试)。不过在互联网如此发达的今天,适用WEB才是王道啊。因此,在今天我又在ASP.NET MVC4中体验了一下。准备看看在使用中有没有什么不同。


开发环境

  1. Microsoft Windows 7 With SP1 Ultimate Edition x86
  2. Microsoft VisialStudio 2013 With Update 4 Ultimate Edition
  3. Spire PDF for .NET Free Edition
  4. ASP.NET MVC 4

程序运行逻辑

技术分享

 


生成模拟数据源

 

技术分享
1 [ActionName("Generate")]
2 public ActionResult GenerateDynamicDataSource()
3 {
4      return View(DynamicDataSourceDispatcher.GetDataSource());
5 }
DataSource

 

 

执行导出

 
技术分享
1 PdfDocument documentInstance = new PdfDocument();
2 documentInstance.LoadFromHTML("http://localhost:1/mvc4/controller/action=Generate", false, false, true);
Spire PDF

 


异常初现

按照昨天的代码,到此时这段代码基本上就已经结束了,只剩下写入到HttpResponse的输出流,等待下载就好了。结果却并不是这样的。

技术分享

久违的小黄页!这是什么鬼?

按照异常的字面意思应该是在Spire PDF中访问了什么Active插件或者COM组件。

没办法,这能求助万能的度娘了(为啥不是谷歌?原因你懂的)。查了好久,终于在CSDN的一篇博文中看到了一个解决方案。就是在@Page指令中指定AspCompat属性的值为true。

技术分享


ExportHandler.aspx 无奈之举

无奈,先试试吧,看看能否灭掉小黄页。

将上面的代码CtrlX+V到这个页面的Page_Load里,“F5”了一下,居然解决了上述问题。

        
技术分享
1 protected void Page_Load(object sender, EventArgs e)
2         {
3             PdfDocument documentInstance = new PdfDocument();
4             documentInstance.LoadFromHTML(HttpUtility.UrlDecode(this.Request.QueryString["targetDataSourceUri"]), false, false, true);
5             this.Response.ContentType = "application/pdf";
6             this.Response.AddHeader("Content-Disposition", "attachment;filename=Spire PDF for ASPNET.pdf");
7             documentInstance.SaveToStream(this.Response.OutputStream, FileFormat.PDF);
8         }
ExportHandler.aspx.cs

 

 

建议

  1. Spire PDF for .NET在兼容ASP.NET方面还需要加强的。这也许是我没有深入了解这个组件,可能还有更好的使用方法。
  2. 执行效率可能会是一个问题。最开始,我尝试生成10000条数据的页面,生成PDF时死机了,无奈最终减少到10条数据。

运行效果

技术分享


代码下载

https://sprepdfsdk2.codeplex.com/

 


最后,谢谢Yesi的邀请,也谢谢你们的团队的工作,期待Spire系列做的更好!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。