来自asp.net页面内容的PDF

时间:2011-11-28 00:12:18

标签: asp.net pdf

我正在尝试在页面上创建内容的pdf(“returnsPage.aspx?id =”returnId),并允许用户在单击按钮时直接下载。

但是在我的onClick方法中,我有以下代码:

lnkLoadPDF.CommandArgument = "/returns/returnsPage.aspx?id="+returnId.ToString(); 
string virtualPath = lnkLoadPDF.CommandArgument;
string fileName = System.IO.Path.GetFileName(virtualPath);

Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.WriteFile(virtualPath);
Response.ContentType = "";
Response.End();
Response.Redirect("/returns/returnsPage.aspx?id="+returnId);

返回此错误:

  

'/ returns / returnsPage.aspx?id = 23'不是有效的虚拟路径。

有谁能告诉我我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

您无法将文件发送到客户端,并且会在同一请求期间将其重定向到新位置。如果没有将HTML转换为PDF的某种组件,您也无法从网页创建PDF,这比我认为您尝试尝试的更加棘手。

至于你的异常,你确定returnsPage.aspx存在吗? :)

答案 1 :(得分:1)

要将网页转换为pdf,您必须将其转换为服务器上的pdf。为此,您必须拥有program on the server才能为您做到这一点。

我尝试了各种网页到pdf转换器,其中一个更好的是一个名为wkhtmltopdf的免费开源程序。

创建pdf后,您可以将用户重定向到新创建的pdf(不鼓励)或prompt them to download it with a savefile dialog

如果您遇到问题,只需在stackoverflow上搜索wkhtmltopdf或发布其他问题。