2011-04-25 159 views
1

我正在嘗試生成並下載PDF文件。它一直說文件類型錯誤或文件被損壞。ASP.Net C#生成並下載PDF文件

這裏是我的代碼的幫助

protected void downloadFile(int index) 
    { 

     string strContent = "<html> <body> <div> <b> Tjeu! </b> </div> <div> <INPUT TYPE=CHECKBOX NAME=\"maillist\" disabled=\"disabled\">Yes! Put me on the list! </div> </body> </html>"; 
     string attach = "attachment; filename=wordtest.pdf"; 
     HttpContext.Current.Response.Clear(); 
     HttpContext.Current.Response.Charset = ""; 
     HttpContext.Current.Response.ContentType = System.Net.Mime.MediaTypeNames.Application.Pdf; 

     HttpContext.Current.Response.AddHeader("content-disposition", attach); 

     HttpContext.Current.Response.Write(strContent); 
     HttpContext.Current.Response.End(); 
     HttpContext.Current.Response.Flush(); 
    } 

THX)

+1

當你用記事本打開現有的PDF文件(比如)你不會看到HTML。將HTML文件重命名爲.PDF不會使其成爲PDF。 – spender 2011-04-25 13:35:19

回答

2

因爲strContent是一個HTML字符串,一個PDF文件沒有內容。

PDF具有自己的格式,並不是很容易通過您期望在此處使用的方式創建,實際上,甚至專用於編寫'PDF Writer'也是一項非常棒的工作 - 已經有人在工作/正在爲此工作,所以,如果您確實需要PDF,我建議您使用第三方庫。

這裏有一個,例如:http://sourceforge.net/projects/pdfsharp/

+0

pdf文件的內容是怎樣的?我必須生成複選框和其他html的東西 – Evert 2011-04-25 13:34:10

+0

使用一些第三方工具來創建PDF文件。 iTextSharp是一個很好的選擇.http://itextsharp.com/ – Shyju 2011-04-25 13:36:54

+0

@Evert:是否有使用PDF的要求?你不能使用HTML嗎? – 2011-04-25 13:38:17