Java(什么叫骑缝章)

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

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

Java 给PDF文档添加骑缝章

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

创建测试环境:

IntelliJ IDEA 2019JDK 1.8Free 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.png";
        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;
    }
}

原创文章,作者:XIMIJC,如若转载,请注明出处:https://www.beidanyezhu.com/a/17596.html

(0)
XIMIJC的头像XIMIJC
上一篇 2024-12-17 21:59:58
下一篇 2024-12-17 22:00:00

相关推荐

  • Java有必要转Go语言吗

    可以根据情况来看是否有必要转Go语言,如果对Go语言感兴趣,并且条件允许推荐转Go语言,Go语言是一种静态强类型、编译型语言,不仅语法比Java简洁,而且性能比Java更好,编译速…

  • Java和go语言哪个更好?

    Go语言是谷歌2009年发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。…

    2025-01-01
  • Golang和Java的对比

    1、上市时间 曾几何时,Java被誉为最简单最容易编译的语言。但移动Java,Golang在这里是它的超级干净的语法和紧凑的形式。企业应用程序正在以闪电般的速度发展,从而帮助企业缩…

  • 硬件产品开发(什么叫外包)

    编辑导语:开发新的硬件产品时,有时会外包给现成的产品设计公司,在这个过程中,如何选择外包公司至关重要。本文作者从外包五要素和外包地图两大方面,分析选择外包公司时应该注意的点,感兴趣…

  • 死刑缓期2年执行(什么叫缓期执行)

    对于死刑缓期2年执行,可不是2年后再执行死刑。 而是只要在这缓刑的2年当中不再有违法行为,就不再追究当事人之前的责任,可以说绝大多数的人在判死缓之后只是没判。 想必对于死刑缓期2年…

    2024-12-17
  • 民法典(什么叫民事责任)

    《中华人民共和国民法典》第一编总则,第八章民事责任,第一百七十九条:“承担民事责任的方式主要有∶(一)停止侵害;(二)排除妨碍;(三)消除危险;(四)返还财产;(五)恢复原状;(六…

    2024-12-17
  • 能够取保候审(什么叫保释)

    今日,有个朋友的儿子因涉嫌诈骗罪,后来取保候审成功,现又收到公安机关发来的《案件移送审查起诉告知书》,该告知书告知其儿子应当追究刑事责任,符合起诉条件,现移送检察院审查起诉。该朋友…

    2024-12-17
  • 成都律师事务所(什么叫取保候审)

    成都律师事务所:什么是取保候审? 本文由胡云律师团队编辑整理(胡云:四川胡云律师事务所创始人、管理委员会主任、刑事法律专业委员会主任、执业二十年,长期专注于重特大刑事案件的辩护及代…

  • 让合同部闻风丧胆的(什么叫表见代理)

    最近合同部摊上事了,听说还不小。原来有个合作方整了个“表见代理”的事儿,对方不认,准备法庭见,搞得经理火很大,都惊动公司法务部了。 啥叫“表见代理”?一起来看看。 表见代理:《民法…

  • 一(什么叫表见代理)

    生活中 也许你会碰到这样的情况 在第三方的见证下 你与甲、乙二人签订合同 假如甲临时有事不能来 乙代理甲签署了合同 但实际上 代理签名的乙可能并没有代理权 但由于甲乙二人关系亲密 …

    2024-12-17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

分享本页
返回顶部