2011-04-25 140 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