我在表格中遇到垂直对齐问题。文字太靠近底部边框:
我的代码如下所示:
nested = new PdfPTable(3);
nested.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE;
nested.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
nested.WidthPercentage = 100;
nested.AddCell(new Phrase("blablabla"));
nested.AddCell(new Phrase("blablabla"));
nested.DefaultCell.HorizontalAlignment = Element.ALIGN_RIGHT;
nested.AddCell(new Phrase("Stand: " +
pdfdoc.Add(nested);
添加或删除行DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE;
不会产生任何影响。
答案 0 :(得分:0)
您正在创建只有一行文字的PdfCell
对象。单元格的高度将根据该文本行确定。文本将自动在中间对齐。这就解释了为什么添加或删除DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE;
没有效果:就iText而言,文本已在中间对齐。
你声称这不是真的,因为你认为文本的基线太靠近底部了。我理解这种说法,但如果您阅读我对问题How does a PdfPCell's height relate to the font size?的回答,您应该了解哪些因素会产生这种看法:
我的建议:告诉iText使用您正在使用的字体的上升和下降:
nested.DefaultCell.UseAscender = true;
nested.DefaultCell.UseDescender = true;
你会注意到文本的位置已经好多了。如果不是更好,您可能需要添加一些填充。当然,所有这些都在official documentation中解释,您将在其中找到一个名为Spacing.cs的示例。试试这个示例,您可以通过调整UseAscender
,UseDescender
,Padding
等值来查看内容的位置如何变化。