前言:
以下是通过网上查阅资料,东拼西凑实现的一个使用java替换pdf文字的功能。使用的是itextpdf.jar
参考:
https://blog.csdn.net/sdizoea/article/details/75105798
https://blog.csdn.net/sishenkankan/article/details/53107195
具体实现:
1.引入jar包
1 <dependency> 2 <groupId>com.itextpdf</groupId> 3 <artifactId>itextpdf</artifactId> 4 <version>5.5.13</version> 5 </dependency> 6 <dependency> 7 <groupId>com.itextpdf</groupId> 8 <artifactId>itext-asian</artifactId> 9 <version>5.2.0</version> 10 </dependency>
2.编写实现类
实现类主要有三个类。
一个是用来保存关键字信息的实体类MatchItem;
一个是匹配关键字的监听类KeyWordPositionListener;
最后一个是查找关键字、关键字替换的实现类PdfUtils。
具体代码如下:
MatchItem实体类
1 /** 2 * 用来保存关键字信息 3 */ 4 public class MatchItem { 5 6 //页数 7 private Integer pageNum; 8 //x坐标 9 private Float x; 10 //y坐标 11 private Float y; 12 //页宽 13 private Float pageWidth; 14 //页高 15 private Float pageHeight; 16 //匹配字符 17 private String content; 18 //字体宽 19 private float fontWidth; 20 //字体高 21 private float fontHeight = 12; 22 23 public Integer getPageNum() { 24 return pageNum; 25 } 26 27 public void setPageNum(Integer pageNum) { 28 this.pageNum = pageNum; 29 } 30 31 public Float getX() { 32 return x; 33 } 34 35 public void setX(Float x) { 36 this.x = x; 37 } 38 39 public Float getY() { 40 return y; 41 } 42 43 public void setY(Float y) { 44 this.y = y; 45 } 46 47 public Float getPageWidth() { 48 return pageWidth; 49 } 50 51 public void setPageWidth(Float pageWidth) { 52 this.pageWidth = pageWidth; 53 } 54 55 public Float getPageHeight() { 56 return pageHeight; 57 } 58 59 public void setPageHeight(Float pageHeight) { 60 this.pageHeight = pageHeight; 61 } 62 63 public String getContent() { 64 return content; 65 } 66 67 public void setContent(String content) { 68 this.content = content; 69 } 70 71 public float getFontWidth() { 72 return fontWidth; 73 } 74 75 public void setFontWidth(float fontWidth) { 76 this.fontWidth = fontWidth; 77 } 78 79 public float getFontHeight() { 80 return