Member 8650683 Ответов: 2

Экспорт страницы aspx в pdf


Привет,
Я пытаюсь загрузить страницу aspx в формате pdf.Я использую следующий код.Это создание одного pdf-документа.Но я не мог его открыть. Кто-нибудь может мне помочь?

protected void imgbtnprint_Click(object sender, ImageClickEventArgs e)
    {
        Response.Clear();
        Response.Buffer = true;
        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);
        Response.Write(sw.ToString());
        pdfDoc.Open();
        Response.End();
        }

2 Ответов

Рейтинг:
2

Sandeep Mewara

Похоже, вы пропустили несколько строк в конце, измените его на:

PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
// missed/correct way lines
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();


Взгляните на этот образец:
Экспорт данных Gridview в PDF с помощью ITextSharp[^]

Чтобы экспортировать всю страницу целиком, а не только сетку, вам нужно будет изменить эту строку:
gvdetails.RenderControl(hw);

к
this.RenderControl(hw);


Mohammad A Rahman

Прямой.

Рейтинг:
11

Member 8650683

Наконец-то я экспортировал UpdatePanel на этой странице aspx в pdf-файл вместо того, чтобы экспортировать всю страницу в pdf .Если я пишу "this. Page "вместо " UpdatePanel1", это приводит к исключению, неспособному привести объект типа 'iTextSharp.text.html.simpleparser.CellWrapper"печатать"iTextSharp.text.Paragraph'.

protected void imgbtnprint_Click(object sender, ImageClickEventArgs e)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment;filename=UserDetails.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        UpdatePanel1.DataBind();
        UpdatePanel1.RenderControl(hw);
        StringReader sr = new StringReader(sw.ToString());
        Document pdfDoc = new Document(PageSize.A2, 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();
    }
    public override void VerifyRenderingInServerForm(Control txt_salutaion)
    {
        /* Verifies that the control is rendered */
    }