2013-07-29 100 views
0

我是iText图书馆的新手。我的要求是我的Servlet将创建一个标记表(PDF)。它会将图像添加到文档的完整页面和文档图像上特定位置的文本。添加背景图片并在图片上添加文字

请帮忙?

+0

本书[iText in Action - 第2版](http://itextpdf.com/book/)对于任何使用iText的人来说都是一个很好的资源。您还可以在该网站的书中找到所有样本的来源。此外,您还可以在[发布商网站](http://www.manning.com/lowagie2/)上找到2个重要的示例章节免费下载。 – mkl

+0

这是我的功能 'private static void addContent(PdfContentByte canvas,PdfContentByte text,Document document){img = Image.getInstance(“07.png”); img.scaleToFit(PageSize.A4.height(),PageSize.A4.width()); img.setAbsolutePosition(1,1); canvas.addImage(img); canvas.saveState(); canvas.setCMYKColorFill(0x00,0x00,0x00,0x80); BaseFont.BaseFont.createFont(BaseFont.HELVETICA,\t BaseFont.WINANSI,BaseFont.EMBEDDED); text.beginText(); text.setFontAndSize(bf,18); text.lineTo(1,1); text.showText(“This is Test”); text.endText(); document.add(img);}' – Amar

+0

图像已加载,但我无法在特定位置设置文本 – Amar

回答

0

目前还不清楚参数text是关于什么。也许你选择了图片下的直接内容,但这不是主要问题。

你一定看过一些文档,因为您使用beginText()setFontAndSize()showText()endText(),但你没看过的文档非常好,因为:

(1)使用lineTo()没有moveTo()第一之后没有stroke()。换句话说:你正在创建一个从未画出的奇怪路径。

(2)您使用showText(),但我没有看到您为任何地方的文本定义坐标。你的setTextMatrix()方法发生了什么?

(3)你是一个新手,但不是用简单的代码,如:

ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, 
    new Phrase("This is a test"), 100, 100, 0); 

好像你要能够运行你学会走路之前。

另外:您可能使用旧版本的iText,因为您没有提到在文本块中使用非法语句lineTo()时引发异常。您不能在beginText()/endText()序列中使用lineTo()

请按照mkl给出的建议,先阅读文档。