PDF添加印章

一、 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;
}

二、 测试章样例

测试章
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容