Sazzad Hossain
вам нужно использовать что-то вроде MigraDoc из PDFSharp для рендеринга HTML в PDF. ССЫЛКА: http://www.pdfsharp.com/[^]
А теперь, чтобы создать вывод HTML, включая элементы управления на стороне сервера, вам нужно поместить все коды страниц в один пользовательский элемент управления и перейти по ссылке, чтобы сгенерировать HTML во время выполнения, который будет генерировать выходной html, который вам нужно затем передать в MigraDoc для создания PDF-документа.
StringBuilder SB = new StringBuilder();
StringWriter SW = new StringWriter(SB);
HtmlTextWriter htmlTW = new HtmlTextWriter(SW);
UCDummy.Visible = true;
UCDummy.RenderControl(htmlTW);
WhereEverIWantItToGo = SB.ToString();
UCDummy.Visible = false;
http://www.velocityreviews.com/forums/t104419-render-and-get-html-from-usercontrol.html[
^]
Я уже использовал эту технику раньше,но сейчас не могу найти фрагмент кода. Пришлите мне электронное письмо, Если вам это нужно, мне придется немного покопаться.
--------------------------- НОВЫЙ ОБРАЗЕЦ КОДА ---------------------
допустим, вы хотите визуализировать всю страницу aspx и получить вывод в html-строке, которую затем можете отправить в pdf-генератор:
System.Text.StringBuilder sb = new StringBuilder();
System.IO.StringWriter tw = new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter ht = new HtmlTextWriter(tw);
this.RenderControl(ht);
string body = sb.ToString();
просто в качестве подсказки... прежде чем сделать это.. возможно, вам захочется отключить элементы управления верхним и нижним колонтитулами ur, если они вам не нужны. Это также легко сделать, просто перед вызовом RenderControl сделайте эти элементы управления видимыми для скрытых.
Главный ключ здесь-это это.RenderControl, который принимает HtmlTextWriter.
Надеюсь, это поможет.
Спасибо..
Divya Naidu
Большое вам спасибо за вашу помощь в этой теме, саззад.Не могли бы вы предоставить мне полный код, который был бы действительно полезен для меня.Еще раз спасибо за Ваш ответ.