我有一个标签:
PdfPTable tab2 = new PdfPTable(2);
有2列。我想在这个表中写一个文本(例如:hello),其中每个字符都在一个正方形内(彼此间隔几毫米)。 目前我尝试这样做,图片有12个(最大字长)方块。我想循环遍历这个单词,并用绝对位置写入每个方格中的每个字符。 我正在使用:
float t2height = tab2.getTotalHeight();
但是我找到合适的位置有一些问题,因为pdf大小没有修复,还有其他选项卡。
我也尝试为每个角色制作一个pdf Cell,但是效果不好(我不知道如何设置正确的宽度以及如何在正方形之间插入小空格)。例如,我在这里试图用第一个sq中的R和第二个中的H来写RH:
PdfPCell cellUser = new PdfPCell();
PdfPCell cellUser2 = new PdfPCell();
PdfPTable tabUs = new PdfPTable(new float[]{1});
Paragraph pUtente = new Paragraph("R",fontTesto14);
Paragraph p2 = new Paragraph("H",fontTesto14);
cellUser.addElement(pUtente);
cellUser2.addElement(p2);
tabUs.getDefaultCell().setBorder(Rectangle.NO_BORDER);
tab2.addCell(nomeUtenteAssegnato);
tabUs.addCell(cellUser);
tabUs.addCell(cellUser2);
tabUs.setWidths(new int[]{1});//I tried with other sizes, but nothing happened
tab2.addCell(tabUs);
那么,有一个简单的方法吗?例如,找到图像的绝对位置或内置的东西?
答案 0 :(得分:0)
我以非常规的方式解决了:我使用了: getTotalHeight()到之前的 PdfPTable 元素,经过几次尝试后我找到了正确的位置。在绝对位置写入文本后,使用 setCharacterSpacing(characterSpacing),因为我的方块有点间隔。 但这并不好用,因为像I和l这样的角色,其尺寸小于W或其他角色。所以我循环每个字符,然后我将每个字符都写在绝对位置。