admin管理员组

文章数量:1648903

1 importcom.itextpdf.text.BaseColor;2 importcom.itextpdf.text.Font;3 importcom.itextpdf.text.Rectangle;4 importcom.itextpdf.text.pdf.BaseFont;5 importcom.itextpdf.text.pdf.PdfContentByte;6 importcom.itextpdf.text.pdf.PdfReader;7 importcom.itextpdf.text.pdf.PdfStamper;8 importcom.itextpdf.text.pdf.parser.PdfReaderContentParser;9

10 importjava.io.FileOutputStream;11 importjava.util.ArrayList;12 importjava.util.HashMap;13 importjava.util.List;14 importjava.util.Map;15

16 /**

17 * pdf替换文字工具类18 *19 * 思路:20 * 1.逐页搜索关键字,逐页匹配21 * 2.先读取一页的所有字符信息,存放到allItems中22 * 3.把一页的字符拼接成字符串,然后匹配关键字,匹配上,记录匹配的第一个字符的MatchItem信息;匹配不是,继续下一页匹配23 * 4.根据匹配字符串的长度和字符的宽高信息画遮罩层,然后替换文字生成新的pdf文件24 *25 * 不足之处:26 * 1.目前只支持单字符串匹配27 * 2.替换之后的文字无法和原pdf中替换掉的文字信息一致(主要有:字体大小、样式等)28 * 3.某些情况下(主要是替换字体的大小)替换之后显示不是太整齐29 * 4.字体大小、样式无法把控30 * 5.无法匹配目标文字在两页中显示的情况(例如:目标文字:替换工具,第一页页尾有替换两字,第二页页首有工具二字)31 *32 */

33 public classPdfUtils {34

35 public static void main(String[] args) throwsException{36 //List matchItems = matchPage("C:\\Users\\Desktop\\pdftest.pdf", "系统");37 //for(MatchItem m : matchItems){38 //System.out.println(m);39 //}40 //manipulatePdf("C:\\Users\\Desktop\\pdftest.pdf","C:\\Users\\Desktop\\pdftest_new.pdf",ma

本文标签: 文字JavapdfjavaPDF