Die ursprüngliche Frage bezieht sich auf die Konvertierung einer anderen aspx-Seite, die eine Rechnung enthält, in ein PDF-Dokument. Die Rechnung verwendet wahrscheinlich einige Sitzungsdaten und der Benutzer schlägt vor, die Server.Execute() um den HTML-Code der Rechnungsseite zu erhalten und diesen Code dann in PDF zu konvertieren. Eine direkte Konvertierung der URL der Rechnungsseite ist nicht möglich, da bei der Konvertierung eine neue Sitzung erstellt würde und die Sitzungsdaten verloren gehen würden.
Dies ist eigentlich eine gute Technik, um Sitzungsdaten während der Konvertierung zu erhalten, die in Konvertieren einer HTML-Seite in PDF in derselben Sitzung ASP.NET Demo der EvoPdf-Bibliothek. Der vollständige C#-Code zum Abrufen der von der Rechnungsseite gerenderten HTML-Zeichenfolge und zum Konvertieren dieser Zeichenfolge in PDF lautet:
// Execute the invoice page and get the HTML string rendered by this page
TextWriter outTextWriter = new StringWriter();
Server.Execute("Invoice.aspx", outTextWriter);
string htmlStringToConvert = outTextWriter.ToString();
// Create a HTML to PDF converter object with default settings
HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();
// Use the current page URL as base URL
string baseUrl = HttpContext.Current.Request.Url.AbsoluteUri;
// Convert the page HTML string to a PDF document in a memory buffer
byte[] outPdfBuffer = htmlToPdfConverter.ConvertHtml(htmlStringToConvert, baseUrl);
// Send the PDF as response to browser
// Set response content type
Response.AddHeader("Content-Type", "application/pdf");
// Instruct the browser to open the PDF file as an attachment or inline
Response.AddHeader("Content-Disposition", String.Format("attachment; filename=Convert_Page_in_Same_Session.pdf; size={0}", outPdfBuffer.Length.ToString()));
// Write the PDF document buffer to HTTP response
Response.BinaryWrite(outPdfBuffer);
// End the HTTP response and stop the current page processing
Response.End();
0 Stimmen
Mögliche Duplikate von stackoverflow.com/questions/564650/konvertiere-html-zu-pdf-in-net