안녕하세요, asp.net 응용 프로그램을 사용하여 현재 페이지 원본을 얻으려고합니다. html을 pdf로 변환하는 코드 조각을 발견했지만 내 페이지를 pdf로 변환하려면 해당 페이지의 html 코드를 가져와야합니다. 이 문자열을 어떻게 문자열로 가져올 수 있습니까? 내 간단한 코드는 다음과 같다 : 내 asp.net 페이지 떨어져 html 코드를 얻을 수 있다면 나는 sbHtml.Append ("")로 내 페이지의 모든 라인을 넣어 asp.net aspx 페이지에서 현재 페이지 소스를 얻는 방법
string sPathToWritePdfTo = Server.MapPath("") + "/pdf_dosya_adi.pdf";
System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();
sbHtml.Append("<html>");
sbHtml.Append("<body>");
sbHtml.Append("<font size='14'>HTML den PDF çevirme Test</font>");
sbHtml.Append("<br />");
sbHtml.Append("Body kısmında yazacak yazı");
sbHtml.Append("</body>");
sbHtml.Append("</html>");
using (System.IO.Stream stream = new System.IO.FileStream
(sPathToWritePdfTo, System.IO.FileMode.OpenOrCreate))
{
Pdfizer.HtmlToPdfConverter htmlToPdf = new Pdfizer.HtmlToPdfConverter();
htmlToPdf.Open(stream);
htmlToPdf.Run(sbHtml.ToString());
htmlToPdf.Close();
}
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "friendlypdfname.pdf"));
HttpContext.Current.Response.ContentType = "application/pdf";
HttpContext.Current.Response.WriteFile(sPathToWritePdfTo);
HttpContext.Current.Response.End();
; for 루프를 사용하여 코드 그리고 내 생각에 내 문제를 해결할 것입니다.
using (var client = new WebClient())
{
string html = client.DownloadString("http://example.com/somepage.aspx");
}
이 방법의 단점은 추가적인 HTTP 요청을 전송한다는 것입니다 :
이것은 현재 페이지를 처리 할 수 있습니까? 즉 localhost – EmreAltun
@EmreAltun을 사용하고 있습니다. WebClient를 사용하려면 웹 페이지의 전체 주소를 지정해야합니다. –
이 코드를 사용하지만 항상 현재 페이지를 다시 호출하므로 루프가 발생합니다. – EmreAltun