//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%。请看下面的图片
当你想在绝对位置上划线时,最好直接绘制它:
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
中使用Phrase
与ColumnText.showTextAligned()
方法的组合,用于在绝对位置上定位文本。当使用相对定位document.add(underLine)
然后宽度工作。