I have 2 numbers one above the other, but the first one must have an Strikethrough. I'm using a table and a cell to put both numbers in the table, is there a way to meet my requirement?
Posted on StackOverflow on Feb 19, 2015 by Ischaves
Please take a look at the SimpleTable6 example:
Screen shot
In the first row, we strike through a number using a STRIKETHRU font:
Font font = new Font(FontFamily.HELVETICA, 12f, Font.STRIKETHRU); table.addCell(new Phrase("0123456789", font));
In this case, iText has made a couple of decisions for you: where do I put the line? How thick is the line?
If you want to make these decisions yourself, you can use the setUnderline() method:
chunk1.setUnderline(1.5f, -1); table.addCell(new Phrase(chunk1)); Chunk chunk2 = new Chunk("0123456789"); chunk2.setUnderline(1.5f, 3.5f); table.addCell(new Phrase(chunk2));
If you pass a negative value for the y-offset parameter, the Chunk will be underlined (see first column). You can also use this method to strike through text by passing a positive y-offset.
As you can see, we also defined the thickness of the line (1.5f). There is another setUnderline() method that also allows you to pass the following parameters:
-
color - the color of the line or null to follow the text color
-
thickness - the absolute thickness of the line
-
thicknessMul - the thickness multiplication factor with the font size
-
yPosition - the absolute y position relative to the baseline
-
yPositionMul - the position multiplication factor with the font size
-
cap - the end line cap. Allowed values are P
dfContentByte.LINE_CAP_BUTT,PdfContentByte.LINE_CAP_ROUNDandPdfContentByte.LINE_CAP_PROJECTING_SQUARE
See the API documentation for Chunk for more info.
Click this link if you want to see how to answer this question in iText 7.