iText使用入門 編輯 增加 匯入 水印 合併PDF的例子
阿新 • • 發佈:2018-11-07
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
這個例子比較複雜,大家自己看清楚吧
- 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 {
-
- 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();
- }
- }
執行結果的縮圖