您的位置:首页 > 其它

iText使用入门:编辑,增加,导入,水印,合并PDF的例子

2009-01-08 14:51 573 查看
这个例子比较复杂,大家自己看清楚吧
package com.laozizhu.lowagie.itext;

import java.io.FileOutputStream;
import java.net.URL;

import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;

/**
* iText使用入门:编辑,增加,导入,水印,合并PDF的例子
*
* @author 老紫竹(laozizhu.com)
*/
public class HelloWorldModify {

public static void main(String[] args) throws Exception, DocumentException {

PdfReader reader = new PdfReader("HelloWorld.pdf", "World".getBytes());
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("stamped.pdf"));

// 拿到第一页的上部内容部分
PdfContentByte over = stamp.getOverContent(1);
// 增加内容
over.beginText();
over.setTextMatrix(30, 30);
BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED);
over.setFontAndSize(bf, 18);
over.showText("page1");
over.showTextAligned(Element.ALIGN_LEFT, "DUPLICATE", 230, 430, 45);
over.endText();

// 增加新的一页2
stamp.insertPage(2, PageSize.A4);
// 写上内容
over = stamp.getOverContent(2);
over.beginText();
over.setFontAndSize(bf, 18);
over.showTextAligned(Element.ALIGN_LEFT, "DUPLICATE OF AN EXISTING PDF DOCUMENT", 30, 600, 0);
over.endText();
// 插入水印
Image img = Image.getInstance(new URL(
"http://www.java2000.net/images/company/www.java2000.net.gif"));
img.setAbsolutePosition(200, 400);
PdfContentByte under = stamp.getUnderContent(2);
under.addImage(img);

// 增加新的一页
stamp.insertPage(3, PageSize.A4);
// 从现有的别的pdf合并过来
PdfReader reader2 = new PdfReader("HelloWorld.pdf", "World".getBytes());
under = stamp.getUnderContent(3);
under.addTemplate(stamp.getImportedPage(reader2, 1), 1, 0, 0, 1, 0, 0);
// 关闭
stamp.close();

}
}

运行结果的缩略图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: