我正在创建一个包含一些内容的 PDF。我的要求是在创建 PDF 时减少行间距,以便在单页中容纳更多行。如何减少行间距?
Document document = null;
PdfWriter.getInstance(document,new FileOutputStream("Paragraph2.pdf"));
document.open();
Font font = new Font(Font.FontFamily.COURIER,12);
//code to get the content to show in the document
.....
for (final MyDocument document: doc)
{
if (doc.getDocumentLines() != null)
{
final DocumentLines documentLines = doc.getLetterLines();
for (final String line : documentines.getDocumentLine())
{
document.add(new Paragraph(line,font));
}
}
}
更新
我使用了下面的行来减少行与行之间的空间。
Paragraph p = new Paragraph(12,line,font);
当我在我的代码中使用值为 12 的前导时,行之间的空白空间减少了,更多的行从 page2 转移到了 page1。但问题是当我给 Paragraph p = new Paragraph(12,line,font)
行转移到 page1 但我可以看到 page2 中有空格/空行,如下图所示。
在上图中,ADDITIONAL INFORMATION 行应该从页面顶部开始打印,我们可以注意到上图中第 2 页的空白区域。
当我将前导值设置为 11 Paragraph(11,line,font)
时,我注意到它们没有剩余空间,如下图所示。但是 ADDITIONAL INFORMATION 行也在 page1 中,而我期望在 page2 中。对我来说,以 12 开头会给出预期的输出,但如图 1 所示,page2 中有空行,这是一个需要解决的问题。我该如何解决这个空白问题?
最佳答案
两行之间的空间称为前导。
您可以使用 setleading()
方法更改它。
例如:
p.setleading(15);
注意:默认情况下,iText 占用字体大小的 1.5 倍。如果字体大小为 12,则行距默认为 18。
document.add(new Paragraph(15, line, font));
关于减少行间垂直间距的Java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39256646/