我尝试使用 ItextSharp 对齐 pdf 表格中的单元格内容。不知何故,它根本不起作用,它总是在左侧对齐。
var pageSize = PageSize.A4;
if (_pdfSettings.LetterPageSizeEnabled)
{
pageSize = PageSize.LETTER;
}
var doc = new Document(pageSize);
PdfWriter.GetInstance(doc, stream);
doc.Open();
//fonts
var normalFont = GetFont();
normalFont.Color = BaseColor.BLACK;
normalFont.Size = 14;
//..titlefont, smallfont,largefont....
var addressTable = new PdfPTable(1);
addressTable.WidthPercentage = 100f;
cell = new PdfPCell();
cell.AddElement(new Paragraph("Người Gửi", titleFont));
cell.AddElement(new Paragraph("TAKARA.VN", largeFont));
cell.HorizontalAlignment = Element.ALIGN_RIGHT;
addressTable.AddCell(cell);
doc.Add(addressTable);
doc.Add(new Paragraph("", normalFont));
更新:我找到了答案
你混淆了文本模式和复合模式。
文本模式:
Phrase p = New Phrase("value");
PdfPCell cell = new PdfPCell(p);
cell.HorizontalAlignment = Element.ALIGN_CENTER;
table.AddCell(cell);
复合模式:
PdfPCell cell = New PdfPCell();
Paragraph p = New Paragraph("value");
p.Alignment = Element.ALIGN_CENTER;
cell.AddElement(p);
table.AddCell(cell);
在文本模式下,使用单元格的对齐方式。在复合模式下(通过使用 AddElement() 触发,忽略单元格的对齐方式以支持添加到单元格的元素的对齐方式。
最佳答案
你可以使用:
cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
或者您可以使用数字对齐:0=Left
, 1=Centre
, 2=Right
关于c# - pdfptable 中的 ItextSharp 水平对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22889857/