kailash_tandel87 Ответов: 3

преобразование aspx в pdf с помощью c#


Всем привет,
Я работаю в asp.net за последние 4 месяца. теперь я прихожу к тому месту, где есть необходимость преобразовать страницу из aspx в pdf. Я попытался использовать itextsharp, но он выдает ошибку.

На самом деле моя страница содержит некоторое значение из базы данных, которые привязываются в lables, одну динамическую таблицу, сгенерированную в соответствии со значениями базы данных (иногда 2 строки или 5 или более - все данные в таблице находятся в строковом формате ) и некоторую статическую часть. Теперь я хочу преобразовать всю страницу в pdf. Пожалуйста, помогите мне сделать это.

я перепробовал так много кодов, предложенных профессионалами, но не смог ничего сделать. в настоящее время я использовал следующий код, который запускает ошибку - входная строка была не в правильном формате.
при преобразовании stirng в datetime проанализируйте строку, чтобы взять дату, прежде чем помещать каждую переменную в объект Datetime. я использую приведенный ниже код для преобразования:
Response.ContentType = "application/pdf";

        Response.AddHeader("content-disposition", "attachment;filename=FileName.pdf");

        Response.Cache.SetCacheability(HttpCacheability.NoCache);

iTextSharp.text.Document docc = new iTextSharp.text.Document(PageSize.A4);

        //Render PlaceHolder to temporary stream

        System.IO.StringWriter stringWrite = new StringWriter();

        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

        //PlaceholderPdf.RenderControl(htmlWrite);
        PrintMemo.RenderControl(htmlWrite);

        string strrrr = stringWrite.ToString();
        strrrr = System.Text.RegularExpressions.Regex.Replace(strrrr, "", "");

        StringReader reader = new StringReader(stringWrite.ToString());

HTMLWorker parser = new HTMLWorker(docc);

PdfWriter.GetInstance(docc, Response.OutputStream);

        docc.Open();
        parser.Parse(reader);
        docc.Close();

Пожалуйста, помогите мне.

3 Ответов

Рейтинг:
2

Menala Raj kumar

Используйте следующий код при нажатии кнопки преобразования Aspx в Pdf..

protected void btnExport_Click(object sender, EventArgs e)
{
    Response.ContentType = "application/pdf";
    Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf");
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    StringWriter sw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(sw);
    this.Page.RenderControl(hw);

    StringReader sr = new StringReader(sw.ToString());
    Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
    HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
    pdfDoc.Open();
    htmlparser.Parse(sr);
    pdfDoc.Close();
    Response.Write(pdfDoc);
    Response.End();
}


nagrajpoddar

Ницца

Dinesh Padupalli

Хорошо, что это работает на меня.

Рейтинг:
0

Sebastian T Xavier

Нашел похожий вопрос здесь....

Как экспортировать страницу aspx (HTML-контент) в pdf[^]

abcpdf [^]является хорошим сторонним инструментом для этого.

Надеюсь, это поможет...

Себастьян


kailash_tandel87

thanx для вас ценное усилие, но это не работает в моем случае, я все еще пытаюсь с itextsharp. если у вас есть какие-либо идеи, связанные с itextsharp или simillar, то помогите мне plz

kailash_tandel87

&ЛТ;ООО " ТД " идентификатор="PrintMemo"&ГТ;
& lt;table border="0" cellpadding= "0" cellspacing=" 0 "width=" 100%" >
<tr>
&ЛТ;тд выровняйте="центр"и GT;
в <Таблица граница="0" cellpadding="2 пикселя" cellspacing="1 пиксель" ширина="1024 Пикс."и GT;
<tr>
&ЛТ;тд выровняйте="центр"и GT;
& lt;table border= "0" cellpadding= " 2px " cellspacing=" 5px "width=" 90%">

<tr>
&ЛТ;тд выровняйте="центр"и GT;
ДЕПАРТАМЕНТ ПОЧТ, ИНДИЯ
< / td>
< / tr>
<tr>
&ЛТ;тд выровняйте="центр"и GT;
О/о &ЛТ;Спан ИД="lbl_deptname_a1"&ГТ;SSPOs&ЛТ;/службы&ГТ;
  &ЛТ;Спан ИД="lbl_division_a2"&ГТ;Гандинагаре&ЛТ;/службы&ГТ;
,
< / td>
< / tr>
<tr>
&ЛТ;тд выровняйте="центр"и GT;
&ЛТ;Спан ИД="lbl_city_a3" класс="стиль2"&ГТ;Гандинагаре&ЛТ;/службы&ГТ;
&ЛТ;промежуток класс="стиль2"и GT; - &ЛТ;Спан ИД="lbl_pincode_a4"&ГТ;382024&ЛТ;/службы&ГТ;
< / span>
< / td>
< / tr>
< / Таблица>
< / td>
< / tr>

<tr>
&ЛТ;тд выровняйте="центр"и GT;
& lt;table border= "0" cellpadding= " 2px " cellspacing=" 2px "width=" 80%">
<tr>
&ЛТ;тд присоединяются="левой"и GT;
Нет. : &ЛТ;Спан ИД="lbl_memoNo"&ГТ;ТРГ/В2/VDRW&ЛТ;/службы&ГТ;
< / td>
&ЛТ;тд выровняйте="право"и GT;
Датированный  
&ЛТ;Спан ИД="lbl_date_a5"&ГТ;10/07/2012&ЛТ;/службы&ГТ;
< / td>
< / tr>
<tr>
<td align= "left" colspan= "2">
Реф : &ЛТ;Спан ИД="lbl_reference"&ГТ;ПТК Vadpdara письма нет: А2/ТРГ от 25.06.2012&ЛТ;/службы&ГТ;
< / td>
< / tr>
< / Таблица>
< / td>
< / tr>

<tr>
&ЛТ;тд выровняйте="центр"и GT;
& lt;table border= "0" cellpadding= " 2px " cellspacing=" 2px "width=" 80%">
<tr>

Рейтинг:
0

Menala Raj kumar

protected void btnExportFromAspxtoPdf_Click(object sender, EventArgs e)
{
    Response.Write("<script language='javascript'> { self.close() }</script>");
    Response.ContentType = "application/pdf";
    Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf");
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    StringWriter sw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(sw);
    this.Page.RenderControl(hw);

    StringReader sr = new StringReader(sw.ToString());
    Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
    HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
    pdfDoc.Open();
    htmlparser.Parse(sr);
    pdfDoc.Close();
    Response.Write(pdfDoc);
    Response.End();
}


shiva2239

Спасибо....Он работает, но имеет огромную проблему выравнивания по сравнению с веб-страницей aspx и не получает границ между данными в PDF, как моя веб-страница.Пожалуйста, предложите мне.