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

 


生成模擬數據源

 

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系列做的更好!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM