这个问题我在网上搜了很久,没有找到什么解决方案,需求其实很简单,就是添加背景图片。在解决这个问题之前,我们需要了解什么是背景图片?背景图片就是位于文档最底层的图片,文字和其他内容可以浮在它的上面。这又分为两种情况,一是局部的背景图片,一是全局的背景图片。局部的背景图片一般很少遇到,这里我要加的是整体上的一个背景图片。它往往是一些单纯的颜色图片,跟网页的背景图片一样。所以怎么做?我突发奇想,just do it,把图片加进去再说,试试居然成功了,很简单,像往常一样将图片加载到文档即可,只不过,要将图片缩放到整个文档,换句话说,图片的初始位置是 0,0大小就是文档的大小,比如你创建A4纸大的文档,图片就应该缩放到大小(595,842),其他的纸张可以去网上查。示例代码如下:
Document tDoc = new Document(PageSize.A4, 50, 50, 50, 50); //创建文档 PdfWriter tWriter = PdfWriter.getInstance(tDoc, new FileOutputStream(mFileFullPath.toString())); //创建写入流 tWriter.setEncryption(null,"1".getBytes(), PdfWriter.ALLOW_SCREENREADERS|PdfWriter.ALLOW_PRINTING,PdfWriter.STANDARD_ENCRYPTION_128); //加密 tDoc.open(); //打开文档 Image tImgCover = Image.getInstance(mImgPath+"cover.jpg"); /* 设置图片的位置 */ tImgCover.setAbsolutePosition(0, 0); /* 设置图片的大小 */ tImgCover.scaleAbsolute(595, 842); tDoc.add(tImgCover); //加载图片
效果图如下:泛黄的就是背景图片,而文字是用程序打上去的,浮在背景之上(图一)。而其他的小图(比如盖章)一样可以浮在上面(图二)。
(图一)
(图二)