当前位置:首页 > 资讯

骑缝章(Java)

该信息已经过期    买帖
发布时间:2023-05-25 10:14:29  |  投诉

在我们的工作中,骑缝章是经常运用到的一种盖印鉴的方式,如合同、人事档案、技术文件等比较重要的资料信息商业文档。其主要作用是为了防范风险,避免文件出现增减、修改时而不得知。本文将使用Java代码来实现给PDF文档添加骑缝章。

首先,我们先来看下添加后的效果图

如何使用Java代码来给PDF文档添加骑缝章?

创建测试环境:

  • IntelliJ IDEA 2019
  • JDK 1.8
  • Free Spire.PDF for Java (免费

添加依赖包到IDEA:

方式1:通过E-iceblue中文官网下载Free Spire.PDF for Java产品包,解压后将lib文件夹下的Spire.Pdf.jar手动导入IDEA。

方式2:在IDEA中创建Maven仓库,然后在pom.xml文件下引用以下代码。

                    com.e-iceblue            http://repo.e-iceblue.cn/repository/maven-public/                        e-iceblue        spire.pdf.free        3.9.0    

运行代码:

import com.spire.pdf.*;import com.spire.pdf.graphics.*;import javax.imageio.ImageIO;import java.awt.*;import java.awt.geom.Point2D;import java.awt.image.BufferedImage;import java.io.*;public class AddSeamSeals {    public static void main(String[] args) throws IOException {        //加载示例文档        PdfDocument doc = new PdfDocument();        doc.loadFromFile("C:\Users\Test1\Desktop\Sample.pdf");        PdfUnitConvertor convert = new PdfUnitConvertor();        PdfPageBase pageBase = null;        //获取分割后的印章图片        BufferedImage[] images = GetImage(doc.getPages().getCount());        float x = 0;        float y = 0;        //将图片画到PDF页面上的指定位置        for (int i = 0; i < doc.getPages().getCount(); i++)        {            BufferedImage image= images[ i ];            pageBase = doc.getPages().get(i);            x = (float)(pageBase.getSize().getWidth()) - convert.convertUnits(image.getWidth(), PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);            y = (float) pageBase.getSize().getHeight()/ 2;            pageBase.getCanvas().drawImage(PdfImage.fromImage(image), new Point2D.Float(x, y));        }        //保存PDF        doc.saveToFile("output/AddSeamSeals.pdf");    }    //定义GetImage方法,根据PDF页数分割印章图片    static BufferedImage[] GetImage(int num) throws IOException {        String originalImg = "C:\Users\Test1\Desktop\Stamp.jpg";        BufferedImage image = ImageIO.read(new File(originalImg));        int rows = 1;        int cols = num;        int chunks = rows * cols;        int chunkWidth = image.getWidth() / cols;        int chunkHeight = image.getHeight() / rows;        int count = 0;        BufferedImage[] imgs = new BufferedImage[ chunks ];        for (int x = 0; x < rows; x++) {            for (int y = 0; y < cols; y++) {                imgs[ count ] = new BufferedImage(chunkWidth, chunkHeight, image.getType());                Graphics2D gr = imgs[ count++ ].createGraphics();                gr.drawImage(image, 0, 0, chunkWidth, chunkHeight,                        chunkWidth * y, chunkHeight * x,                        chunkWidth * y + chunkWidth, chunkHeight * x + chunkHeight, Color.WHITE,null);                gr.dispose();            }        }        return imgs;    }}

该会员其他信息
相关信息
栏目最新信息
栏目随机信息