【发布时间】:2014-07-08 08:54:56
【问题描述】:
我正在使用以下代码将临时 DataGrid 导出为 PDF,
System.Data.DataTable dt = new System.Data.DataTable();
CDbAccess db = new CDbAccess();
IDbConnection conn = db.GetConnectionInterface();
conn.Open();
IDbCommand cmd = db.GetCommandInterface(str);
IDbDataAdapter da = db.GetDataAdapterInterface(cmd);
da.SelectCommand = cmd;
DataSet ds = new DataSet();
try
{
da.SelectCommand = cmd;
da.Fill(ds);
dt = ds.Tables[0];
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
// da.Dispose();
conn.Dispose();
}
GridView GridView1 = new GridView();
GridView1.AllowPaging = false;
GridView1.DataSource = dt;
GridView1.DataBind();
GridView1.HeaderStyle.BackColor = System.Drawing.Color.DeepSkyBlue;
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition",
"attachment;filename=BugReport.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
而且输出看起来更糟,所以我需要对齐输出。
我只想将字体颜色和字体大小设置为特定列。
如何使用 C# 进行设置?
【问题讨论】:
-
在你走得太远之前,来自 iTextSharp 的
HTMLWorker被认为已经过时,取而代之的是XMLWorker。前者对 CSS 的支持几乎为零,并且具有更有限的 HTML 解析器。我强烈建议切换到XMLWorker。
标签: c# asp.net pdf gridview itextsharp