2

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?

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
richardhell
  • 969
  • 2
  • 10
  • 22

2 Answers2

0

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();
  }
}
Mark Storer
  • 15,672
  • 3
  • 42
  • 80
0

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!

richardhell
  • 969
  • 2
  • 10
  • 22