iTextSharp PDF中未显示表格的背景颜色
本文关键字:背景 颜色 表格 显示 PDF iTextSharp | 更新日期: 2023-09-27 18:22:33
我生成一个Table对象,其中一些单元格具有背景色。此背景颜色是从数据库中动态加载的。
我在代码中用以下行设置BackColor:
TableCell tCell = new TableCell();
tCell.BackColor = (Color)converter.ConvertFromString(color_startBorderCrtColor);
tCell.Text = Convert.ToString(row[column.ColumnName]);
tRow.Cells.Add(tCell);
当我将渲染的表附加到StringBuilder
并使用iTextSharp
将其写入PDF时,单元格的Background-Color
为而未显示。相反,当我将StringBuilder写入文字时,单元格会被正确绘制。
以下是我如何转换表并将其附加到StringBuilder
:的代码
TextWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
Table myGenTable = (Table)genObjects[0];
myGenTable.RenderControl(hw);
sb.Append(tw.ToString()); //sb is the StringBuilder I'm working with
有没有一种方法可以让我甚至在pdf文档中绘制ccells?表的边界也存在同样的问题,它被设置为表本身的属性,代码如下:
tblcblCellsCQ.BorderColor = Color.Black;
tblcblCellsCQ.BorderWidth = 2;
tblcblCellsCQ.BorderStyle = BorderStyle.Dashed;
以下是我将StringBuilder写入PDF文件的代码:
StringReader sr = new StringReader(sb.ToString());
Document pdfDoc = new Document(PageSize.A4.Rotate(), 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=" + friendlyName + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write(pdfDoc);
Response.End();
试试这个:
for (int i = 0; i < col.Length; ++i)
{
Cell cell = new Cell(new Phrase(col[i], new iTextSharp.text.Font(iTextSharp.text.Font.COURIER, 5)));
cell.Header = true;
cell.BackgroundColor = new iTextSharp.text.Color(204, 204, 204);
table.AddCell(cell);
}
请在以下网址查看答案:https://forums.asp.net/t/1577892.aspx?iTextSharp+表格+标题