如何使用itext ColumnText添加pdf标题的下划线?我将行的宽度设置为100%,但它不起作用

问题描述 投票:3回答:1
//set the width to 90%, but the generated pdf shows 100%. Please look at the picture below
LineSeparator underLine = new LineSeparator(1, 90f, null, Element.ALIGN_CENTER, 0);
Phrase phrase1 = new Phrase();
phrase1.add(underLine);
ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, phrase1, 0, pageSize.getHeight() - 75, 0);

无论我设置宽度的90%或100%,它都显示100%。请看下面的图片

java itext
1个回答
1
投票

当你想在绝对位置上划线时,最好直接绘制它:

PdfContentByte canvas = writer.getDirectContent();
canvas.setColorStroke(BaseColor.BLACK);
canvas.moveTo(36, pageSize.getHeight() - 75);
canvas.lineTo(pageSize.getWidth() - 36, pageSize.getHeight() - 75);
canvas.closePathStroke();

在你的例子中,问题是在LineSeparator中使用PhraseColumnText.showTextAligned()方法的组合,用于在绝对位置上定位文本。当使用相对定位document.add(underLine)然后宽度工作。

© www.soinside.com 2019 - 2024. All rights reserved.