一、 PDF添加印章处理
/**
* 功能描述:
* @param createFilePath 原PDF路径
* @param imagePath 水印图片
* @param pdfFilePath PDF路径
* @param fileName PDF文件名称
* @param x 图片横坐标
* @param y 图片纵坐标
* @param size 图片大小
* @param angle 旋转角度
* @Description:
*/
public static Map<String,Object> imagePdf(String imagePath, String pdfFilePath, String fileName, int x, int y, int size, int angle) throws Exception {
//返回值定义
Map<String, Object> fileMap = new HashMap<String, Object>();
//文件处理生成路径
String pdfSealFilePath = createFilePath + "\\" + fileName + "@" + ".pdf";
//要加水印的原pdf文件路径
PdfReader reader = new PdfReader(pdfFilePath, "PDF".getBytes());
//加了水印后要输出的路径
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(pdfSealFilePath));
// 插入水印
Image img = Image.getInstance(imagePath);
//原pdf文件的总页数
int pageSize = reader.getNumberOfPages();
//图片位置
img.setAbsolutePosition(x, y);
//图片旋转
img.setRotationDegrees(angle);
//图片大小
img.scalePercent(size);
//文字被覆盖
PdfContentByte under = stamp.getOverContent(2);
//添加图片
under.addImage(img);
// 关闭
stamp.close();
//关闭
reader.close();
//获取生成文件大小
File file = new File(pdfSealFilePath);
long fileSize = file.length();
//封装返回值
fileMap.put("FILEPATH",pdfSealFilePath);
fileMap.put("FILENAME",fileName);
fileMap.put("SIZE",fileSize);
return fileMap;
}
二、 测试章样例