我想创建一个包含两个单元格的表格,这些单元格的边框占据角落和中间部分的一半:
我玩弄虚线但无济于事。如果有人能指出我正确的方向,那就太好了。
您需要将单元格的边框设置为NO_BORDER
并使用单元格事件来绘制自定义边框。您可以在此处找到一些示例。
以PressPreviews为例。它定义了以下单元格事件:
public class MyCellEvent extends PdfPCellEvent {
public void cellLayout(PdfPCell cell, Rectangle position,
PdfContentByte[] canvases) {
float x1 = position.getLeft() + 2;
float x2 = position.getRight() - 2;
float y1 = position.getTop() - 2;
float y2 = position.getBottom() + 2;
PdfContentByte canvas = canvases[PdfPTable.LINECANVAS];
canvas.rectangle(x1, y1, x2 - x1, y2 - y1);
canvas.stroke();
}
}
现在,如果您这样做cell.setCellEvent(new MyCellEvent());
,单元格将有一个自定义边框:一个比您通常使用默认边框的矩形略小的矩形。
在您的情况下,您不需要该rectangle()
方法。您不会从位置变量中获取坐标并在一系列moveTo()
, lineTo()
,stroke()
操作中使用这些坐标。