2015-10-09 124 views
2

到pdfpcell我米使用此代码给边界半径我pdfpcell添加圆角色边框iTextSharp的

cell.Border = PdfPCell.NO_BORDER; 
cell.CellEvent = new RoundedBorder(); 
Color color2 = new Color(System.Drawing.ColorTranslator.FromHtml("#2AB1C3")); 
cell.BorderColor = new Color(System.Drawing.ColorTranslator.FromHtml("#2AB1C3")); 
cell.BorderWidth = 2f; 

和功能RoundedBorder

public class RoundedBorder : IPdfPCellEvent 
{ 
    public void CellLayout(PdfPCell cell, Rectangle rect, PdfContentByte[] canvas) 

PdfContentByte cb = canvas[PdfPTable.BACKGROUNDCANVAS]; 
cb.RoundRectangle(
    rect.Left + 1.5f, 
    rect.Bottom + 1.5f, 
    rect.Width - 3, 
    rect.Height - 3, 4 
    ); 
cb.Stroke(); 
} 
} 

我得到了圆角边框,但它与未来黑色,我想给我的自定义颜色边框圆角半径

任何人都可以帮助我吗?

回答

2

由于您将PdfPCell配置为没有边框(cell.Border = PdfPCell.NO_BORDER),因此设置边框属性(如边框宽度和颜色)不会产生任何效果。

您必须在单元格事件中定义笔画操作的颜色,例如,为红色边框:

cb.SetRGBColorStroke(255, 0, 0); 
cb.RoundRectangle(
rect.Left + 1.5f, 
rect.Bottom + 1.5f, 
rect.Width - 3, 
rect.Height - 3, 4 
); 
cb.Stroke(); 
+0

我可以给边界表吗?我想创建一个具有圆形边框的表格,并且在该表格中我想插入另一个包含3个单元格的表格(嵌套表格)? –

+0

有一个'PdfPTableEvent',你可以像'PdfPCellEvent'一样使用。看看[这个例子](http://itextpdf.com/examples/iia.php?id=96)。它绘制了一张桌子圆角的背景。为了获得一个边框,只需用笔画操作替换填充操作即可。 – rhens