【发布时间】:2013-05-18 11:37:24
【问题描述】:
我在没有 runat="server" 的 .aspx pahe 中有字段命名为 RPTHtml
<asp:HiddenField ID="RPTHtml" />
并在javascript中添加此代码并调用此页面的pagemethod
document.getElementById('RPTHtml').setValue =window.encodeURI
(document.getElementById(eval(result)[0].columnLineConfig.divToRender).innerHTML);
PageMethods.getHTMLToPdf(eval(result)[0].columnLineConfig.divToRender, srcurl);
现在,在我的页面方法中
<WebMethod()> _
<System.Web.Script.Services.ScriptMethod()> _
Public Shared Function getHTMLToPdf(ByVal div As String, ByVal InnerHTMl As String) As Boolean
Dim pdfDocument As PdfDocument.Document = Nothing
Dim pdfConverter As PdfConverter = New PdfConverter()
Dim pdfBytes As Byte() = Nothing
Dim strHtml As String = ""
Dim htmlreport As String = ""
Dim ReportFileName As String = ""
Dim Response_1 As HttpResponse = System.Web.HttpContext.Current.Response
If InnerHTMl.ToString() = "" Then
Exit Function
End If
htmlreport = InnerHTMl.ToString()
htmlreport = HttpUtility.UrlDecode(htmlreport)
Response_1.Clear()
Response_1.Buffer = True
Response_1.ClearContent()
Response_1.ClearHeaders()
ReportFileName = GetReportName() + ".pdf"
pdfConverter = New Winnovative.WnvHtmlConvert.PdfConverter()
pdfConverter.AvoidImageBreak = True
pdfConverter.AvoidTextBreak = True
pdfConverter.TruncateOutOfBoundsText = True
pdfConverter.LicenseKey = "LicenseKey"
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4
pdfConverter.PdfDocumentOptions.StretchToFit = True
pdfBytes = pdfConverter.GetPdfBytesFromHtmlString(htmlreport)
Response_1.AddHeader("Content-type", "application/pdf")
Response_1.AddHeader("Content-Disposition", "attachment; filename=" + ReportFileName)
Response_1.BinaryWrite(pdfBytes)
Response_1.Flush()
Response_1.End()
End Function
它没有给出任何输出,只是运行成功,但没有出现下载pdf的提示。
我错过了什么?或者它不能通过pagemethod实现。 提前谢谢!!!
【问题讨论】:
-
尝试将“Content-type”、“application/force-download”作为您的内容类型。
-
你的意思是我必须添加新的标题 Response_1.AddHeader("Content-type", "application/pdf").Response_1.AddHeader("Content-type", "application//force-download ")
-
不,只是替换你的标题值。
-
它也不起作用....!
-
由于您是通过 javascript 调用它,因此请尝试在页面加载中作为单独的网页而不是“网络方法”实现相同的方法,并在您的链接中调用该网页。
标签: javascript asp.net pdf