如何使用iText为我的(pdf-)文本添加背景颜色以使用Java创建它

首先:我对用于创建pdf的框架的了解并不是最好的,请在回答时牢记这一点.

我需要一个框架/库,我可以用java创建pdf文件,并且(重要的!)将文本放在某个x和y坐标处.经过大量的研究,我经历过,我可以通过iText实现这一点.

这是一个简单的代码片段,基本上用iText中的文本显示我正在做的事情.您只需将其复制到您的编程环境中,您只需要iText jar(可在此下载:http://sourceforge.net/projects/itext/files/latest/download?source=files)

import java.io.FileOutputStream;

import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;

public class PDFTesting {

public static void main(String[] args) {
    Document document = new Document();
    try {
        PdfWriter writer = PdfWriter.getInstance(document,
                new FileOutputStream("output.pdf"));
        document.open();
        PdfContentByte cb = writer.getDirectContent();

        int x = 100; 
        int y = 500; 

        String text = "Hello"; 

        // now we can place content elements on the page
        BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
        cb.saveState();
        cb.beginText();
        cb.moveText(x, y);
        cb.setFontAndSize(bf, 12);
        cb.showText(text);
        cb.endText();
        cb.restoreState();

    } catch (Exception e) {
    }

    document.close();
}
}

我添加了将我的数据源中的文本添加到此方法的可能性,它确实很有效.结果对我来说非常有希望,因此我现在只剩下一项任务:

我需要在我的文本中添加特定的背景颜色(不是字体颜色!),我正在移动并放置在上面显示的方法中.

我的研究没有向我提供有关此任务的任何初学者友好信息,所以如果你能帮我解决这个问题,我会很高兴.

如果可能:您是否可以通过为添加的示例文本添加背景颜色的方式修改我的示例?我猜我和其他人(可能在将来阅读这个帖子有同样的问题)会从中获益最多.

如果您需要更多信息或有其他建议,请随时与我联系.

感谢您的每一个回答,并认为您与我分享.

最佳答案 我找到了问题的解决方案.

Chunk textAsChunk = new Chunk(text, textFont);
textAsChunk.setBackground(new BaseColor(120, 200, 50));

ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase(textAsChunk), x, y, 0);

您可以在一个块中定义文本(块只是最小的一段文本),并为此块提供文本和字体(还包括文本的大小).在您的块上,您可以设置backgroundcolor,并且您将整体添加到Document中,并显示“showTextAligned”-Method.

x和y在这里指定坐标,cb代表PdfContentByte.

点赞