如何将.aspx页面转换为pdf?而不使用网站中的url
本文关键字:网站 url pdf aspx 转换 | 更新日期: 2023-09-27 17:59:25
我需要从.aspx创建一个pdf,但不使用wkHtmlToPdf或iTextSharp,因为他们需要页面中的url,而它对我不起作用,因为我的网站有安全性,所以当我尝试打印网站时,它会将我发送到默认页面。
有人知道我该怎么做吗?
提前谢谢。
我使用EvoPdf,所以我的解决方案与您的不同,但我在使用表单身份验证的应用程序(vb.net)中遇到了同样的问题。我的解决方案如下。关键是将Pdf库的cookie设置为已验证帐户的cookie。
Private Sub uiPdf_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles uiPdf.Click
Dim urlToConvert As String = "ExportPdf.aspx"
'// get the html string for the report
Dim htmlStringWriter As New System.IO.StringWriter()
Server.Execute(urlToConvert, htmlStringWriter)
Dim htmlCodeToConvert As String = htmlStringWriter.GetStringBuilder().ToString()
htmlStringWriter.Close()
'// Create the PDF converter.
Dim pdfConverter As New EvoPdf.HtmlToPdf.PdfConverter()
'************
'Add the cookie so we don't get bounced to the home page
'************
If Not Request.Cookies(System.Web.Security.FormsAuthentication.FormsCookieName) Is Nothing Then
pdfConverter.HttpRequestCookies.Add(System.Web.Security.FormsAuthentication.FormsCookieName, Request.Cookies(System.Web.Security.FormsAuthentication.FormsCookieName).Value)
End If
'// set the license key - required
pdfConverter.LicenseKey = ConfigurationManager.AppSettings("EvoPdfLicenseKey")
'// set the converter options - optional
'... code omitted
'// be saved to a file or sent as a browser response
Dim baseUrl As String = HttpContext.Current.Request.Url.AbsoluteUri
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlString(htmlCodeToConvert, baseUrl)
'// send the PDF document as a response to the browser for download
Dim response As System.Web.HttpResponse = System.Web.HttpContext.Current.Response
Response.Clear()
Response.AddHeader("Content-Type", "application/pdf")
response.AddHeader("Content-Disposition", String.Format("attachment; filename=GettingStarted.pdf; size={0}", pdfBytes.Length.ToString()))
response.BinaryWrite(pdfBytes)
response.End()
End Sub