在文档中插入附件,可以起到与源文档配套使用的目的,以一种更简便的方式对文档起到补充说明的作用。下面将介绍通过Java编程插入附件到PDF文档中的方法。这里插入的文档可以是常见的文档类型,如Word、Excel、Ppt、Txt或者其他文件类型。插入方法,分两种情况,一种是直接加载文档内容作为附件添加到PDF文档,另一种是通过给PDF文档添加注释并添加文档到注释的形式。两种方式中可根据文档需要,选择相应的附件添加方法。
使用工具:Free Spire.PDF for Java v2.2.2(免费版)
关于jar文件添加:
步骤1:下载安装包,解压。并复制文件夹lib下的jar文件。
步骤2:在程序中新建一个directory目录,将步骤1中的jar文件复制到该目录下。
步骤3:鼠标选中复制后的jar文件,点击鼠标右键,选择“Add as Library”。完成jar文件导入。
Java代码(供参考)
import com.spire.pdf.PdfDocument; import com.spire.pdf.annotations.*; import com.spire.pdf.attachments.PdfAttachment; import com.spire.pdf.graphics.*; import java.awt.*; import java.awt.geom.Dimension2D; import java.awt.geom.Rectangle2D; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class AttachFiles { public static void main(String[] args) throws IOException { //实例化PdfDocument类的对象 PdfDocument doc = new PdfDocument(); //加载需要添加附件的PDF文档 doc.loadFromFile("test.pdf"); //加载附件文档(Excel)并作为附件添加到PDF PdfAttachment attachment = new PdfAttachment("Sample.xlsx"); doc.getAttachments().add(attachment); //在PDF页面指定位置绘制标签 String label = "TestReport.docx"; PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", Font.BOLD, 14)); double x = 40; double y = doc.getPages().get(0).getActualSize().getHeight() -800; doc.getPages().get(0).getCanvas().drawString(label, font, PdfBrushes.getOrange(), x, y); //以注释的形式添加附件到PDF String filePath = "测试文档.docx"; byte[] data = toByteArray(filePath); Dimension2D size = font.measureString(label); Rectangle2D bound = new Rectangle2D.Float((float) (x + size.getWidth() + 3), (float) y, 10, 15); PdfAttachmentAnnotation annotation = new PdfAttachmentAnnotation(bound, filePath, data); annotation.setColor(new PdfRGBColor(new Color(0, 128, 128))); annotation.setFlags(PdfAnnotationFlags.Default); annotation.setIcon(PdfAttachmentIcon.Graph); annotation.setText("点击打开测试报告文档.docx"); doc.getPages().get(0).getAnnotationsWidget().add(annotation); //保存文档 doc.saveToFile("Attachments.pdf"); } //读取文件到byte数组 public static byte[] toByteArray(String filePath) throws IOException { File file = new File(filePath); long fileSize = file.length(); if (fileSize > Integer.MAX_VALUE) { System.out.println("file too big..."); return null; } FileInputStream fi = new FileInputStream(file); byte[] buffer = new byte[(int) fileSize]; int offset = 0; int numRead = 0; while (offset < buffer.length && (numRead = fi.read(buffer, offset, buffer.length - offset)) >= 0) { offset += numRead; } if (offset != buffer.length) { throw new IOException("Could not completely read file " + file.getName()); } fi.close(); return buffer; } }
附件添加效果(如下图):
(本文完)
相关推荐
在Java开发中,生成和处理PDF文档是一项常见的需求。Itext是一个强大的库,它允许开发者在Java环境中创建、编辑和修改PDF文档。本教程将详细讲解如何使用Itext库实现PDF文件的下载,包括通过系统路径下载和通过...
Aspose是一个强大的文件处理工具,尤其在Java环境中,它提供了丰富的API来操作各种文档格式,如Word、Excel、PDF等。在这个场景中,我们将聚焦于如何利用Aspose库在Word文档中嵌入文件对象,这一功能通常被称为OLE...
插入页眉页脚,输入数据表,自动对大型表格进行分页外,Spire.PDF for .NET还支持PDF数字签名,将HTML转换成PDF格式,提取PDF文档中的文本信息和图片,存为文本格式和各种图片格式,甚至可以将PDF中的附件提取出来。...
此外,Aspose.Pdf还支持对PDF文档进行高级操作,例如添加书签、创建表单字段、嵌入字体、处理PDF附件、添加数字签名等。在17.3.0版本中,可能会有新的特性或改进,如更好的图像处理性能,更丰富的表单交互,或者对...
3. **iText库**:这是Java平台上的一个开源库,专门用于创建、修改和操作PDF文档。在"iText-5.0.6.jar"和"iTextAsian.jar"中,iText库提供了丰富的API,支持在PDF中添加文本、图像、表格等,并且"iTextAsian.jar"是...
PDF(Portable Document Format)是一种广泛使用的文档格式,用于保持内容的原始格式和布局。在Java中,有多个库可以用来创建、读取和修改PDF文件。这里提到的可能是Apache PDFBox或iText库。`从java应用程序动态...
- 有道云笔记的其他功能:有道云笔记除了基本的笔记功能外,还支持插入图片、附件、语音笔记等多媒体功能,甚至可以进行团队协作、文档共享等,大大拓展了笔记的用途。 - MyEclipse的代码美化:MyEclipse本身也提供...
这里,我们首先创建了一个新的PDF文档,然后删除了带有版权信息的第一页。这样,生成的新PDF就不会包含版权提示了。 除了文档转换,本节还提到了自定义表单的相关操作。在一些业务系统中,自定义表单是必不可少的,...
iTextPDF是一款功能强大的Java库,专用于创建、修改和处理PDF文档。版本5.5.10是其发展的一个里程碑,提供了丰富的API和稳定的功能,使得开发者能够轻松地在应用程序中集成PDF操作。本文将深入探讨iTextPDF 5.5.10的...
jsp版KindEditor附件上传组件不仅为用户提供了便捷的文件上传和插入功能,也展示了Java技术在Web开发领域的强大应用能力。通过深入理解其工作原理和技术实现,开发者可以更好地利用KindEditor提升网站或应用的编辑...
例如,你可以将一个报告的摘要插入到主报告中,或者将已签名的合同作为附件插入。通过编程接口,可以精确控制插入的位置,如在特定段落或页眉页脚中。 2. 页面设置:页面设置是文档格式化的重要组成部分,Aspose....
10. 数据导入导出:支持从不同数据源(如CSV、XML、数据库)导入数据到文档,或者从文档导出数据到其他格式。 在实际应用中,ASPOSE常被用于企业级软件开发,例如报表系统、自动化工作流、文档管理系统等。通过...
Java后端使用freemarker基于.ftl配置文件模板化模式生成文档,内容可以包括文本、图片、表文本格、目录、附件(excel等文件),适用于已经规范化的各种报告等文件;将后端生成的xml格式文档转换为word格式以及pdf...
这个"struts2PDF教程.rar"文件很可能包含了一系列关于如何在Struts2框架中生成和处理PDF文档的教程资料。PDF(Portable Document Format)是一种通用的文件格式,常用于在不同平台之间共享文档,保持格式一致性。 ...
这个库的强大之处在于它的灵活性和功能多样性,使得开发者能够轻松地实现PDF文档的生成、编辑和解析。在标题中提到的"itext插件导出pdf文档"实际上是指使用IText库来编写程序,将数据或者内容输出为PDF格式的文件。 ...
3. **附件上传**:除了文字和图片,WQeditor还允许用户上传各种类型的附件,如PDF、Word文档、Excel表格等,便于分享和协作。 4. **代码编辑**:对于需要插入代码的场景,编辑器提供了代码高亮和格式化功能,使得...
例如,你可以使用iText来创建一个新的PDF文档,然后在其中添加表格,设置表头,插入段落,并定义标题的样式。`itext-asian.jar`是iText的扩展,专门支持亚洲语言,如中文、日文和韩文,解决了非拉丁字符集的显示问题...
批处理,介绍如何一次执行一批sql语句,这些sql语句用插入、更新和删除等相关操作; 提交和回滚transaction.java; 使用PreparedStatement,动态执行sql语句,UsingPreparedStatement.java; 读写二进制数据,Binary...