java – iText:PdfTable单元格垂直对齐

前端之家收集整理的这篇文章主要介绍了java – iText:PdfTable单元格垂直对齐前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_1@我试图垂直对齐我的头像单元格文本在单元格高度的中间.

这是我的代码

@H_502_4@PdfPCell c1 = new PdfPCell(cerate_phrase("",regular_bold )); c1.setHorizontalAlignment(Element.ALIGN_CENTER); c1.setVerticalAlignment(Element.ALIGN_MIDDLE); c1.setBackgroundColor(BaseColor.LIGHT_GRAY); table_.addCell(c1);

但这不工作.. setHorizo​​ntalAlignment居中但不是setVerticalAlignment.

我做错事了吗?我该怎么做在中间?

任何帮助都会受到欢迎.

解决方法

据Lowagie说: @H_502_4@PdfPCell cell = new PdfPCell(new Phrase("blah Blah blah"); cell.setVerticalAlignment(Element.ALIGN_MIDDLE);

这在技术意义上总是正确的,但有时看起来很糟糕.

要中心,在物体周围绘制一个盒子,找到它的中间,并将其与其周围物体的中心对齐.

iText因此找到短语的中心,并对齐它.但人类的眼睛有时会关注文本的大部分,比如说基线和帽子高度之间的字体部分.所以要看起来不错,你需要相对于中心.

@H_502_4@Phrase content = new Phrase("Blah blah blah",Font); Float fontSize = content.getFont().getSize(); Float capHeight = content.getFont().getBaseFont().getFontDescriptor(BaseFont.CAPHEIGHT,fontSize); Float padding = 5f; PdfPCell cell = new PdfPCell(content); cell.setPadding(padding); cell.setPaddingTop(capHeight - fontSize + padding);

请注意,PdfPCell方法setVerticalAlignment(..)不被使用.

似乎这不一定适用于多行短语,但它确实如此.

如果iText可以显示围绕事物的边界框,那么这个问题就会很明显(你可以告诉iText来绘制边界框,它只是一个比魔法开/关开关更多的工作).

解决方案适用于email from Paulo Soares.

原文链接:https://www.f2er.com/java/124050.html

猜你在找的Java相关文章