gpt4 book ai didi

java - 使用 iText 如何更改新行之间的距离?

转载 作者:行者123 更新时间:2023-12-01 17:47:13 24 4
gpt4 key购买 nike

我正在摆弄 itext,并且正在更改字体大小,结果我的 pdf 中出现了一些奇怪的间隔文本:

enter image description here

我想把它变成这样的:(请原谅糟糕的图像编辑)

enter image description here

这是我用来输入文本的代码:

private fun setBaseInfo(info: ArrayList<String>): PdfPCell
{
val cell = PdfPCell()

val glue = Chunk(VerticalPositionMark())
val p = Paragraph()
p.font.size = 8.0f

for (str in info)
{
p.add(glue)
p.add(str)
p.add("\n")
}

cell.border = Rectangle.NO_BORDER
cell.addElement(p)

return cell
}

这是我提供的信息:

private fun foo(): ArrayList<String>
{
val array = ArrayList<String>()
array.add("Hi")
array.add("StackOverflow")
array.add("I'd Like")
array.add("This")
array.add("text")
array.add("to be closer")
array.add("together!")
return array
}

删除 p.add("\n") 时,输出如下: enter image description here

最佳答案

全面披露:前 iText 员工在此

这就是我要做的:

public static void main(String[] args) throws IOException {

// create a temp file to hold the output
File outputFile = File.createTempFile("stackoverflow",".pdf");

PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outputFile));
Document layoutDocument = new Document(pdfDocument);

String[] lines = {"Hi","StackOverflow","I'd like","this","text","to","be","closer","together!"};
for(String line : lines){
layoutDocument.add(new Paragraph(line)
.setMultipliedLeading(0.5f)); // this is where the magic happens
}

layoutDocument.close();
pdfDocument.close();

// display the temp file with the default PDF viewer
Desktop.getDesktop().open(outputFile);
}

我改变了几件事:

  • 尽可能使用最新版本的 iText。您希望从多年的错误修复和更新的架构中受益。
  • 不要使用表格来解决布局问题。
  • 在 Paragraph 对象上使用行距(MultipliedLeading 或 FixLeading)来解决您的问题。

关于java - 使用 iText 如何更改新行之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53851668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com