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();

iTextSharp PDF中未显示表格的背景颜色

试试这个:

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+表格+标题