繁体   English   中英

如何使用iText使用Java创建背景色至(pdf-)文本

[英]How can I add a background color to my (pdf-) text using iText to create it with 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);

您可以以块的形式定义文本(“块”只是最小的文本),并为该块提供文本以及字体(还包括文本大小)。 在您的块上,您可以设置背景色,并且总体上将其通过显示的“ showTextAligned”方法添加到文档中。

x和y在此指定坐标,而cb代表PdfContentByte。

使用setBackgroundColor()方法

在这里看到这个例子:

http://www.kodejava.org/examples/837.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM