Spire PDF for .NET 在ASP.NET中的使用 ---- 并非那么“美好”,有些挫折!_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Spire PDF for .NET 在ASP.NET中的使用 ---- 并非那么“美好”,有些挫折!

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

 2015/3/6 19:34:08  Dun'er-Ba  程序员俱乐部  我要评论(0)
  • 摘要:笔者注:看此文前,请您先看一下上一篇文章吧。昨天的时候,我测试了一下SpirePDF在WinForm程序中的应用,可以说用起来很简单(请忽略效率问题,没有进行测试)。不过在互联网如此发达的今天,适用WEB才是王道啊。因此,在今天我又在ASP.NETMVC4中体验了一下。准备看看在使用中有没有什么不同
  • 标签:.net ASP.NET for 使用 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

 


生成模拟数据源

 

class="code_img_closed" src="/Upload/Images/2015030619/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('dead8b6a-a658-41e5-8b7c-9649749bdc24',event)" src="/Upload/Images/2015030619/2B1B950FA3DF188F.gif" alt="" />
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的输出流,等待下载就好了。结果却并不是这样的。

2015-03-06_143250

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

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

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

2015-03-06_170607


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条数据。

运行效果

2015-03-06_171422


代码下载

https://sprepdfsdk2.codeplex.com/

 


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

  • 相关文章
发表评论
用户名: 匿名