如何使用Asp.net Control中的itextsharper格式化pdf或excel

时间:2015-08-03 06:09:01

标签: asp.net

我想用pdf,excel格式生成报告。我已经使用asp.net转发器控件进行数据绑定。我正在使用iTextSharp。我渲染,页面控制为pdf和excel格式。

代码:

StringWriter sw2 = new StringWriter();
HtmlTextWriter hw2 = new HtmlTextWriter(sw2);
this.rptBillReport.RenderControl(hw2);

Paragraph report = new Paragraph();
using (StringReader sr2 = new StringReader(sw2.ToString()))
{
    //Parse and get a collection of elements
    List<IElement> elements2 = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(sr2, null);
    foreach (IElement val2 in elements2)
    {
        //Add those elements to the paragraph
        report.Add(val2);
    }
}

Document pdfDoc = new Document(iTextSharp.text.PageSize.A4,
                         30f, 30f, 30f, 0.0f);

PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
//htmlparser.Parse(sr);

pdfDoc.Add(report);

pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();

我的问题是:
如何格式化报告,在pdf和excel中添加边框和其他样式?它没有显示在我目前的报告中。

1 个答案:

答案 0 :(得分:1)

谢谢, 我添加了这样的样式表:

 StyleSheet styles= new StyleSheet();
            styles.LoadTagStyle("#rptBillReport", "height", "30px");
            styles.LoadTagStyle("#rptBillReport", "font-weight", "bold");
            styles.LoadTagStyle("#rptBillReport", "font-family", "Cambria");
            styles.LoadTagStyle("#rptBillReport", "font-size", "20px");
            styles.LoadTagStyle("#rptBillReport", "background-color", "white");

        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
        htmlparser.SetStyleSheet(styles);

        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
        pdfDoc.Open();
        htmlparser.Parse(sr);
        pdfDoc.Close();

有效。