图章(印章)是一种在合同、票据、公文等文件中表明法律效应、部门机关权威的重要指示物,常见于各种格式的文件、文档中。对于纸质文档可以手动盖章,但对于电子文档,则需要通过特定的方法来实现。本篇文档分享通过Java代码在PDF文档中添加图章的方法。内容将分2部分介绍:
1. 添加图片图章。即通过加载现有的图章(以图片形式),添加到PDF指定页面位置
2. 添加动态图章。即加载PDF文档,并在动态的添加印章内容,包括印章字样、日期、时间、经办人、组织名称等。
使用工具:Free Spire.PDF for Java (免费版)
关于jar文件导入:
步骤1:步骤1:在Java程序中新建一个文件夹可命名为Lib。并将产品包中的2个jar文件复制到新建的文件夹下。
步骤2:复制文件后,添加到引用类库:选中这两个jar文件,点击鼠标右键,选择“Build Path” – “Add to Build Path”。完成引用。
Java示例(供参考)
1. 添加图片图章
import com.spire.pdf.FileFormat; import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import com.spire.pdf.annotations.PdfRubberStampAnnotation; import com.spire.pdf.annotations.appearance.PdfAppearance; import com.spire.pdf.graphics.PdfImage; import com.spire.pdf.graphics.PdfTemplate; import java.awt.geom.Rectangle2D; public class ImageStamp { public static void main(String[] args) { //创建PdfDocument对象,加载PDF测试文档 PdfDocument doc = new PdfDocument(); doc.loadFromFile("test.pdf"); //获取文档第3页 PdfPageBase page = doc.getPages().get(2); //加载印章图片 PdfImage image = PdfImage.fromFile("stamp.png"); //获取印章图片的宽度和高度 int width = image.getWidth(); int height = image.getHeight(); //创建PdfTemplate对象 PdfTemplate template = new PdfTemplate(width, height); //将图片绘制到模板 template.getGraphics().drawImage(image, 0, 0, width, height); //创建PdfRubebrStampAnnotation对象,指定大小和位置 Rectangle2D rect = new Rectangle2D.Float((float) (page.getActualSize().getWidth() - width - 10), (float) (page.getActualSize().getHeight() - height - 60), width, height); PdfRubberStampAnnotation stamp = new PdfRubberStampAnnotation(rect); //创建PdfAppearance对象 PdfAppearance pdfAppearance = new PdfAppearance(stamp); //将模板应用为PdfAppearance的一般状态 pdfAppearance.setNormal(template); //将PdfAppearance 应用为图章的样式 stamp.setAppearance(pdfAppearance); //添加图章到PDF page.getAnnotationsWidget().add(stamp); //保存文档 doc.saveToFile("ImageStamp.pdf",FileFormat.PDF); } }
图片图章添加效果:
2.添加动态图章
import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import com.spire.pdf.annotations.PdfRubberStampAnnotation; import com.spire.pdf.annotations.appearance.PdfAppearance; import com.spire.pdf.graphics.*; import java.awt.*; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.text.SimpleDateFormat; public class DynamicStamp { public static void main(String[] args) { //创建PdfDocument对象 PdfDocument document = new PdfDocument(); //加载PDF文档 document.loadFromFile("test.pdf"); //获取第3页 PdfPageBase page = document.getPages().get(2); //创建PdfTamplate对象 PdfTemplate template = new PdfTemplate(185, 50); //创建两种字体 PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.PLAIN ,15), true); PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.PLAIN ,10), true); //创建画刷 PdfSolidBrush solidBrush = new PdfSolidBrush(new PdfRGBColor(Color.blue)); Rectangle2D rect1 = new Rectangle2D.Float(); rect1.setFrame(new Point2D.Float(0,0),template.getSize()); //创建圆角矩形路径 int CornerRadius = 20; PdfPath path = new PdfPath(); path.addArc(template.getBounds().getX(), template.getBounds().getY(), CornerRadius, CornerRadius, 180, 90); path.addArc(template.getBounds().getX() + template.getWidth() - CornerRadius,template.getBounds().getY(), CornerRadius, CornerRadius, 270, 90); path.addArc(template.getBounds().getX() + template.getWidth() - CornerRadius, template.getBounds().getY()+ template.getHeight() - CornerRadius, CornerRadius, CornerRadius, 0, 90); path.addArc(template.getBounds().getX(), template.getBounds().getY() + template.getHeight() - CornerRadius, CornerRadius, CornerRadius, 90, 90); path.addLine( template.getBounds().getX(), template.getBounds().getY() + template.getHeight() - CornerRadius, template.getBounds().getX(), template.getBounds().getY() + CornerRadius / 2); //绘制路径到模板,并进行填充 template.getGraphics().drawPath(PdfPens.getBlue(), path); //在模板上绘制文字及动态日期 String s1 = "已审核\n"; String s2 = "社区管理中心 " + dateToString(new java.util.Date(),"yyyy-MM-dd HH:mm:ss"); template.getGraphics().drawString(s1, font1, solidBrush, new Point2D.Float(5, 5)); template.getGraphics().drawString(s2, font2, solidBrush, new Point2D.Float(5, 28)); //创建PdfRubberStampAnnotation对象,并指定其位置和大小 Rectangle2D rect2= new Rectangle2D.Float(); rect2.setFrame(new Point2D.Float((float)(page.getActualSize().getWidth()-250),(float)(page.getActualSize().getHeight()-150)), template.getSize()); PdfRubberStampAnnotation stamp = new PdfRubberStampAnnotation(rect2); //创建PdfAppearance对象,应用模板为一般状态 PdfAppearance appearance = new PdfAppearance(stamp); appearance.setNormal(template); //应用样式到图章 stamp.setAppearance(appearance); //添加图章到Annotation集合 page.getAnnotationsWidget().add(stamp); //保存文档 document.saveToFile("DynamicStamp.pdf"); document.close(); } //将日期转化成字符串 public static String dateToString(java.util.Date poDate,String pcFormat) { SimpleDateFormat loFormat = new SimpleDateFormat(pcFormat); return loFormat.format(poDate); } }
动态图章添加效果:
(本文完)
相关推荐
图章是一种在合同、票据、公文等文件中表明法律效应、部门机关权威的...本篇文档分享通过Java代码在PDF文档中添加图章的方法。内容将分两部分介绍,详细使用:https://blog.csdn.net/hj7jay/article/details/86983793
在这个示例中,`addStamp`方法接受输入PDF路径、输出PDF路径和印章图片路径作为参数,首先创建一个新的PDF文档,然后在新页面上添加印章图片,最后将原PDF内容导入到带有印章的新PDF中。 总结,要实现在Java中将...
使用jdk的绘图工具来绘制印章,该代码中只绘制了圆形印章,印章中的内容包括公司名称、中间的五角星以及印章的类型
在Java编程环境中,实现Word文档中的表格指定位置盖章,并让印章悬浮于文字之上,是一项技术挑战,但可以通过一些库和技巧来实现。这个过程主要涉及到对Word文档内容的读取、修改以及重新保存,同时要确保印章图像不...
本篇文档分享通过Java代码在PDF文档中添加图章的方法。内容将分2部分介绍: 1. 添加图片图章。即通过加载现有的图章(以图片形式),添加到PDF指定页面位置 2. 添加动态图章。即加载PDF文档,并在动态的添加印章...
Java电子图章系统是一种基于Java语言和J2EE技术框架构建的B/S架构软件,用于管理和控制电子印章的创建、审批、使用和审计。该系统采用"用户-角色-权限"的三维权限管理模式,允许根据不同的职责分配不同的权限,如...
综上所述,这个项目涉及了MVC架构下的PDF生成技术,包括文本样式控制、水印添加、图章应用以及文件下载处理。开发者需要掌握相关的PDF库,理解MVC的控制器逻辑,并具备一定的前端交互知识,以实现用户友好的下载体验...
本篇文档分享通过Java代码在PDF文档中添加图章的方法。内容将分2部分介绍: 1. 添加图片图章。即通过加载现有的图章(以图片形式),添加到PDF指定页面位置 2. 添加动态图章。即加载PDF文档,并在动态的添加印章...
【快速图章生成软件】是一种专门用于创建图章图像的工具,主要特点是用户友好和高效。这个软件包,名为"Cachet",提供了快速生成不同样式和用途的图章的功能,解压缩后即可直接运行,无需复杂的安装过程,极大地简化...
【作品名称】:基于Java Graphics2D生成各类圆形/椭圆公章、私章图片 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:...
图片盖章程序是一种在图像上添加印章或签名的软件应用,通常用于电子文档的安全认证、版权保护或个人或公司的身份证明。源码是程序的核心部分,它包含了编写程序时使用的编程语言、逻辑结构和指令,使得其他人可以...
印章_API.e 印章_位图旋转.e .版本 2 hDC = 取设备场景 (画板1.取窗口句柄 ()) 画板1.底图 = { } ' 中心点 中心点X = 画板1.宽度 \ 2 中心点Y = 画板1.高度 \ 2 ' 计算字数 cnt = 取文本长度 (编辑框_主标题...
此外,生成的印章图片需要符合PDF版式文件的要求,以便于插入到电子发票中,并通过电子签名确保文件的安全性。 总之,椭圆形印章的绘制涉及多种数学原理和技术,包括椭圆几何、旋转算法和仿射变换。通过深入理解...
5. **保存图片**: 要将绘制的图章保存为图片文件,可以使用`Bitmap`类。在`OnPaint`事件中,先创建一个`Bitmap`实例,然后调用控件的`CreateGraphics`方法获取`Graphics`对象,绘制到`Bitmap`上。最后,使用`Bitmap`...
综合来看,"图章生成器"是一个方便易用的图形处理工具,专为生成专业印章设计。通过提供的控件和源码,开发者可以进一步定制功能,满足特定用户群体的需求。而其中的资源则丰富了设计选择,帮助用户创造出多样化的...
首先,电子图章是数字化时代的产物,它替代了传统的实体印章,具有高效、便捷、环保的优点。图章制作程序能够帮助用户轻松设计和制作符合需求的个性化图章,如公司公章、部门章、个人签名等,大大提高了办公效率。 ...
该系统专为用户提供便捷、高效的图章设计与生成服务,适用于各类企事业单位和个人用户,满足他们在文档处理中的个性化需求。 在技术层面,C#.NET是一种由微软开发的面向对象的编程语言,它结合了.NET框架的强大功能...
压缩包中的"带有图章的书写用具.pdf"文件很可能详细介绍了这类书写工具的种类、用途、选择标准以及正确使用方法。它可能涵盖了如何选择适合的图章材质,以保证图章长久耐用;如何保持图章清晰,以及如何在不同类型的...
7. **编程语言与库**:虽然未具体说明,但这个例子可能使用了如Python、Java、C#等编程语言,并可能借助了如PIL(Python Imaging Library)或.NET Framework中的Graphics类来处理图像。 8. **用户界面设计**:良好...