博客
关于我
pdf打印骑缝章
阅读量:794 次
发布时间:2023-02-26

本文共 3227 字,大约阅读时间需要 10 分钟。

骑缝章是企业在日常业务合作中用于确认合同真实性和有效性的重要工具。为了实现这一功能,在Java程序中可以借助工具来辅助加盖骑缝章,有效防范合同风险。以下将详细介绍实现这一目标的方法和工具选择。

推荐工具:Free Spire.PDF for Java(免费版)

工具获取及JAR文件导入

方式1:通过官网下载并解压,手动将Spire.Pdf.jar文件放入lib目录下。

方式2:在Maven项目中配置仓库路径,并在pom.xml中添加依赖。完成后,在IDE中通过“Import Changes”导入相应JAR包。

Maven依赖配置示例

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

Java示例说明

以下是一个简单的Java程序示例,展示了如何使用Free Spire.PDF工具进行骑缝章添加操作。

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfGraphicsUnit;
import com.spire.pdf.graphics.PdfImage;
import com.spire.pdf.graphics.PdfUnitConvertor;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class AcrossPageSeal {
public static void main(String[] args) throws IOException {
// 加载目标文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("test.pdf");
// 获取并处理骑缝章图片
BufferedImage[] images = getSealImages(pdf.getPages().getCount());
float x = 0;
float y = 0;
// 初始化单位转换工具
PdfUnitConvertor convert = new PdfUnitConvertor();
// 遍历每一页并添加骑缝章
for (int i = 0; i < pdf.getPages().getCount(); i++) {
BufferedImage image = images[i];
PdfPageBase page = pdf.getPages().get(i);
// 计算位置
x = (float) page.getSize().getWidth() -
convert.convertUnits(image.getWidth(), PdfGraphicsUnit.Point, PdfGraphicsUnit.Pixel) + 40;
y = (float) page.getSize().getHeight() / 2;
// 绘制骑缝章
page.getCanvas().drawImage(PdfImage.fromImage(image), new Point2D.Float(x, y));
}
// 保存结果
pdf.saveToFile("result.pdf");
}
// 生成分割后的骑缝章图片数组
private static BufferedImage[] getSealImages(int pageCount) throws IOException {
String originalImage = "seal.png";
BufferedImage img = ImageIO.read(new File(originalImage));
int rows = 1;
int cols = pageCount;
int totalChunks = rows * cols;
int chunkWidth = img.getWidth() / cols;
int chunkHeight = img.getHeight() / rows;
BufferedImage[] seals = new BufferedImage[totalChunks];
int count = 0;
for (int x = 0; x < rows; x++) {
for (int y = 0; y < cols; y++) {
seals[count] = new BufferedImage(chunkWidth, chunkHeight, img.getType());
Graphics2D gr = seals[count].createGraphics();
gr.drawImage(img, 0, 0, chunkWidth, chunkHeight,
chunkWidth * y, chunkHeight * x,
chunkWidth * y + chunkWidth, chunkHeight * x + chunkHeight,
Color.WHITE, null);
gr.dispose();
count++;
}
}
return seals;
}
}

骑缝章添加效果展示

通过上述方法,可以在每一页上添加骑缝章,最终生成带有骑缝章的合同文档。效果如下:

  • 骑缝章位于页面右侧,位置可根据需求进行调整。
  • 每一页都添加骑缝章,确保合同的真实性和有效性。
  • 支持跨页添加,适用于多页合同文件。
  • 总结

    通过以上方法,开发者可以轻松地在Java程序中实现骑缝章的添加功能。Free Spire.PDF for Java 提供了强有力的API支持,使得整个过程简化且易于实现。

    转载地址:http://xovfk.baihongyu.com/

    你可能感兴趣的文章
    pandas读取文件时,不去掉前面的0 保留原有的数据格式
    查看>>
    Pandas进阶大神!从0到100你只差这篇文章!
    查看>>
    spring5-介绍Spring框架
    查看>>
    pandas,python - 如何在时间序列中选择特定时间
    查看>>
    Spring 框架之 AOP 原理深度剖析
    查看>>
    Pandas:如何按列元素的组合分组,以指示基于不同列的值的同现?
    查看>>
    Pandas:将一列与数据帧的所有其他列进行比较
    查看>>
    PANDA和GLOB:将文件夹中的所有xlsx文件转换为CSV类型错误:__init__()获得意外的关键字参数‘;xfid‘;
    查看>>
    panda查找想要找的行合并成一个新pd
    查看>>
    PANDA:基于多列对数据表的行运行计算,并将输出存储在新列中
    查看>>
    PandoraFMS 监控软件 SQL注入漏洞复现
    查看>>
    PandoraFMS 监控软件 任意文件上传漏洞复现
    查看>>
    PanTools多网盘登录神器
    查看>>
    Papyrus项目常见问题解决方案
    查看>>
    Parallel.ForEach使用示例
    查看>>
    Parallel.ForEach的基础使用
    查看>>
    parallels desktop for mac安装虚拟机 之parallelsdesktop密钥 以及 parallels desktop安装win10的办公推荐可以提高办公效率...
    查看>>
    parallelStream导致LinkedList遍历时空指针的问题
    查看>>
    Parameter ‘password‘ not found. Available parameters are [md5String, param1, username, param2]
    查看>>
    ParameterizedThreadStart task
    查看>>