首先:我对用于创建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();
}
}
我添加了将我的数据源中的文本添加到此方法的可能性,并且它确实非常有用。结果对我来说非常有希望,因此我现在只剩下一项任务了:
我需要在文字中添加特定的背景颜色(不是字体颜色!),我正在移动并放置在上面显示的方法中。
我的研究没有向我提供任何有关此任务的初学友好信息,所以如果你能帮助我解决这个问题,我会非常高兴。
如果可能的话:你可以通过为添加的示例文本添加背景颜色的方式修改我的示例吗?我想我和其他人(将来可能正在阅读此主题的人同样的问题)将从中受益最多。
如果您需要更多信息或有其他建议,请随时与我联系。
感谢您的每一个回答,并认为您与我分享。
答案 0 :(得分:3)
我找到了问题的解决方案。
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。
答案 1 :(得分:-1)