I need to add space between two parts of a line in a
Chunk chunk = new Chunk("Received Rs(In Words) : " + " " + myDataTable.Tables.Rows["Recieved"].ToString(), font8); PdfPTable PdfPTable = new PdfPTable(1); PdfPCell PdfPCell =new PdfPCell(new Phrase(Chunk )); PdfPCell .Border = PdfCell.NO_BORDER; PdfPTable .AddCell(PdfPCell );
Please take a look at the following screen shot:
Based on your code snippet, I assume that you want to separate
"Received Rs (in Words):" from
but it's not clear to me what you want to happen if there is more than one line, so I'm proposing 3 options in the hope
that one of them solves your problem. You can find these options in the CellWithGlue example.
table = new PdfPTable(2); table.setHorizontalAlignment(Element.ALIGN_LEFT); table.setWidthPercentage(60); table.setSpacingAfter(20); cell = new PdfPCell(new Phrase("Received Rs (in Words):")); cell.setBorder(PdfPCell.LEFT | PdfPCell.TOP | PdfPCell.BOTTOM); table.addCell(cell); cell = new PdfPCell(new Phrase("Priceless")); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(PdfPCell.RIGHT | PdfPCell.TOP | PdfPCell.BOTTOM); table.addCell(cell); document.add(table);
In this example, I put
"Received Rs (in Words):" and
"Priceless" in two different cells,
and I align the content of the first cell to the left and the content of the second cell to the right. This creates space between the two
// same code as above, except for: table.setWidthPercentage(50);
I decreased the width of the table to show you what happens if some content doesn't fit a cell.
As we didn't define any widths for the columns, the two columns will have an equal width,
"Received Rs (in Words):" needs more space than
"Priceless", the text doesn't fit the width of the cell and it is wrapped.
We could avoid this, by defining a larger with for the first column when compared to the second column.
table = new PdfPTable(1); table.setHorizontalAlignment(Element.ALIGN_LEFT); table.setWidthPercentage(50); Phrase p = new Phrase(); p.add(new Chunk("Received Rs (In Words):")); p.add(new Chunk(new VerticalPositionMark())); p.add(new Chunk("Priceless")); table.addCell(p); document.add(table);
This example is very close to what you have, but instead of introducing space characters to create space,
I introduce a special chunk:
new VerticalPositionMark()). This chunk will separate the two parts
Phrase by introducing as much space as possible.