如何在apache PDFbox中生成表时包装文本

时间:2014-11-18 07:55:14

标签: java pdf-generation pdfbox

我正在尝试使用以下代码使用pdfbox库生成表格。

//Draw lines 
for (int i = 0; i <= cols; i++) {
            contentStream.drawLine(nextx,y,nextx,y-tableHeight);
            nextx += colWidth;
        }

 //fill with data
  float textx = margin+cellMargin;
    float texty = y-15;
    for(int i = 0; i < content.length; i++){
        for(int j = 0 ; j < content[i].length; j++){
            String text = content[i][j];
            contentStream.beginText();
            contentStream.moveTextPositionByAmount(textx,texty);
            contentStream.drawString(text);
            contentStream.endText();
            textx += colWidth;
        }
        texty-=rowHeight;
        textx = margin+cellMargin;
    }

这样做时,创建的单元格中的数据不会被包裹enter image description here。我无法在pdfbox库中找到这样做的方法。请提出解决方案。

1 个答案:

答案 0 :(得分:3)

PdfBox相当于PDF文件的低级API,因此,它不提供开箱即用设计表的帮助。 如果您不想自己重新发明轮子并想出这样的功能,您可能需要在这里查看PdfLayoutManager:https://github.com/GlenKPeterson/PdfLayoutManager

它为PdfBox提供了更高级别的API,并提供带有自动换行符的文本框,以及带换行符的表格。