I'm creating a table in iText, but I've a problem with a cell that could be divided by a diagonal line. Someone know how can I do that?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
The easiest way would be via an onGenericTag
handler in a PdfPageEvent
.
You give the contents of that cell a generic tag via Chunk.setGenericTag(String tag)
, and set up a PdfPageEvent hanlder that will draw your line when that chunk is drawn.
Something like:
public class MyPdfPageEvent extends PdfPageEventHelper {
public void onGenericTag(PdfWriter writer, Document doc, Rectangle rect, String tag) {
PdfContentByte canvas = writer.getDirectContent();
canvas.saveState();
canvas.setColorStroke(Color.BLACK); // or whatever
// You can also mess with the line's thickness, endcaps, dash style, etc.
// Lots of options to play with.
canvas.moveTo(rect.getLeft(), rect.getBottom());
canvas.lineTo(rect.getRight(), rect.getTop());
canvas.stroke();
canvas.restoreState();
}
}
回答2:
Well. The answer of @Mark Storer was helpful, in this case there was a cell of a table I used "PdfPCellEvent" to inherid this methods.
Thanks Mark!