我需要在iTextSharp pdfPCell
中的两行之间添加空格Chunk chunk = new Chunk("Received Rs(In Words) : " + " " + myDataTable.Tables[1].Rows[0]["Recieved"].ToString(), font8);
PdfPTable PdfPTable = new PdfPTable(1);
PdfPCell PdfPCell =new PdfPCell(new Phrase(Chunk ));
PdfPCell .Border = PdfCell.NO_BORDER;
PdfPTable .AddCell(PdfPCell );
答案 0 :(得分:2)
请看下面的截图:
根据您的代码段,我假设您要将"Received Rs (in Words):"
与"Priceless"
分开,但如果有多行,我不清楚您想要发生什么,所以我写了三个例子:
示例1:
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);
在这个例子中,我将"Received Rs (in Words):"
和"Priceless"
放在两个不同的单元格中,我将第一个单元格的内容对齐到左侧,将第二个单元格的内容对齐到右侧。这会在两个Chunk
之间创建空间。
示例2
// same code as above, except for:
table.setWidthPercentage(50);
我减小了表格的宽度,以显示如果某些内容不适合单元格会发生什么。由于我们没有为列定义任何宽度,因此两列的宽度相等,但由于"Received Rs (in Words):"
需要的空间比"Priceless"
更多,因此文字宽度不适合宽度细胞和它被包裹。我们可以避免这种情况,通过为第一列定义一个较大的with与第二列相比。
示例3:
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);
这个例子非常接近你所拥有的,但是我没有引入空格字符来创建空间,而是引入了一个特殊的块:new VerticalPositionMark())
。这个块将通过引入尽可能多的空间来分隔Phrase
的两个部分。
如果这没有回答您的问题,您可能正在寻找称为 leading 的概念。前导是两行文本的基线之间的空间。如果是这种情况,请阅读以下Q& As:
如果您的问题不是关于领导,那么您可能只是在寻找被称为非破坏性空间的概念: