首页 > 解决方案 > 如何使用 itext ColumnText 添加 pdf 标题的下划线?我将线的宽度设置为 100%,但它不起作用

问题描述

//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%。请看下图

生成的pdf截图

标签: javaitext

解决方案


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

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

在您的示例中,问题在于使用LineSeparatorwithPhrase方法组合,ColumnText.showTextAligned()该方法用于将文本定位在绝对位置上。当使用相对定位时document.add(underLine),宽度起作用。


推荐阅读