老外采购平台,网站seo分析常用的工具是,php 网站开发流程图,一天能赚100元的app关于iText
iText是一个强大的PDF处理库#xff0c;可以用于创建、读取和操作PDF文件。它支持PDF表单、加密和签署等操作#xff0c;同时支持多种字体和编码。maven的中央仓库中的最新版本是5.X#xff0c;且iText5不是完全免费的#xff0c;但是基础能力是免费使用的…
关于iText
iText是一个强大的PDF处理库可以用于创建、读取和操作PDF文件。它支持PDF表单、加密和签署等操作同时支持多种字体和编码。maven的中央仓库中的最新版本是5.X且iText5不是完全免费的但是基础能力是免费使用的不过需要遵循AGPLv3协议。iText7是iText5的后继版本相比之下有更好的性能和更全面的PDF支持。在实际开发中可以根据需求选择不同的iText版本。
iText核心功能
iText是一个用于在Java中创建和操作PDF文件的开源库。以下是iText的一些主要功能
创建PDF文档iText可以创建新的PDF文档并提供了多种方法来添加文本、图像、表格和其他内容。读取和解析PDF文档iText可以读取和解析现有的PDF文档提取文本、图像和其他元素。编辑PDF文档iText可以编辑现有的PDF文档例如添加水印、合并多个文档、添加页眉和页脚等。加密和解密PDF文档iText可以对PDF文档进行加密和解密提供了多种加密算法和安全选项。签名和验证PDF文档iText可以添加数字签名到PDF文档并验证文档的完整性。拆分和合并PDF文档iText可以将PDF文档拆分成单个页面或合并多个文档。压缩和解压缩PDF文档iText可以压缩和解压缩PDF文档以减小文件大小。创建和填充PDF表单iText可以创建和填充PDF表单包括文本框、单选框、复选框等。生成条形码和二维码iText可以生成条形码和二维码并将其添加到PDF文档中。自定义字体和样式iText支持自定义字体和样式允许您使用自己的字体、字号和样式来创建PDF文档。 至于收费功能iText提供了一个商业版本的软件称为iText Enterprise Edition。这个版本提供了一些额外的功能例如高级的加密和安全性选项、高级的表单生成选项、高级的文档处理功能等。这些功能在开源版本的iText中可能不可用或受到限制。
iText的依赖
itextpdf.jar是iText的核心库提供了用于创建和操作PDF文档的基本功能。itext-asian.jar是itext库中关于亚洲编码的类库特别适用于处理中文字符。
dependencygroupIdcom.itextpdf/groupIdartifactIditextpdf/artifactIdversion5.5.13.3/version
/dependency
dependencygroupIdcom.itextpdf/groupIdartifactIditext-asian/artifactIdversion5.2.0/version
/dependency实战示例
创建pdf文档并添加文本
1.创建一个Document对象实例。 2.创建一个PdfWriter对象并将其与Document对象关联以便将文档写入硬盘。 3.打开Document对象以便可以向其中添加内容。 4.向Document对象添加文本内容。这可以通过创建Paragraph对象并使用Document对象的add()方法来完成。 5.关闭Document对象以完成PDF文档的创建。
Test
public void test0() {try {Document document new Document();PdfWriter.getInstance(document, new FileOutputStream(d:/test/hello.pdf));document.open();Element element new Paragraph(hello, baby!);document.add(element);document.close();} catch (DocumentException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();}
}创建pdf文档并添加图片
与添加文本内容的过程比较类似唯一不同的是这里添加到文档中的是图片。在实际的业务开发过程中如果默认使用图片原始的心都可能会导致在文档中的图片过大或过小都不好看最好根据页面的宽度进行一定比例的自适应这里介绍一种方法 1.先获取图片的原始宽度和高度 2.再获取PDF页面的宽度和高度 3.然后根据页面宽度计算图片的缩放比例 4.最后根据缩放比例计算图片的新宽度和高度并重新设置图片的宽度和高度
Test
public void test2() {try {Document document new Document();PdfWriter pdfWriter PdfWriter.getInstance(document, new FileOutputStream(d:/test/hello2.pdf));document.open();Image image Image.getInstance(d:/test/dog.jpg);// 获取图片的原始宽度和高度float originalWidth image.getWidth();float originalHeight image.getHeight();// 获取PDF页面的宽度和高度Rectangle pageSize document.getPageSize();float pageWidth pageSize.getWidth();// 根据页面宽度计算图片的缩放比例float scaleRatio pageWidth / originalWidth;// 根据缩放比例计算图片的新宽度和高度float newWidth originalWidth * scaleRatio;float newHeight originalHeight * scaleRatio;// 设置图片的新宽度和高度并保持纵横比不变image.scaleToFit(newWidth, newHeight);image.setAlignment(Element.ALIGN_CENTER);document.add(image);document.close();} catch (DocumentException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
}创建pdf文档并添加表格
1.创建PDF文档对象。使用Document类创建一个新的PDF文档对象并打开它。 2.创建表格对象。使用PdfPTable类创建一个新的表格对象并设置表格的列数和其他属性。 3.向表格中添加内容。使用PdfPCell类创建单元格对象并将它们添加到表格中。可以设置单元格的文本、样式和布局等属性。这里需要注意的是在iText中并没有行的概念设置完表格的列数后就是从左至右开始添加单元格内的内容一般第一行是表头。 4.将表格添加到文档中。使用Document类的add()方法将表格添加到文档中。 5.关闭文档。使用Document类的close()方法关闭文档并保存到指定的文件路径。
Test
public void test3() {try {Document document new Document();PdfWriter.getInstance(document, new FileOutputStream(d:/test/hello3.pdf));document.open();// 创建PdfPTable对象并设置列宽度和间距PdfPTable table new PdfPTable(3);float[] columnWidths {1f, 1f, 1f};table.setWidths(columnWidths);table.setSpacingAfter(10f);table.setWidthPercentage(100); // 设置表格宽度占页面宽度的百分比为100%// 添加表头行PdfPCell headerCell1 new PdfPCell(new Paragraph(realName));headerCell1.setBackgroundColor(BaseColor.LIGHT_GRAY);table.addCell(headerCell1);PdfPCell headerCell2 new PdfPCell(new Paragraph(age));headerCell2.setBackgroundColor(BaseColor.LIGHT_GRAY);table.addCell(headerCell2);PdfPCell headerCell3 new PdfPCell(new Paragraph(sex));headerCell3.setBackgroundColor(BaseColor.LIGHT_GRAY);table.addCell(headerCell3);// 添加数据行table.addCell(zhangsan);table.addCell(18);table.addCell(boy);// 将表格添加到文档中document.add(table);// 关闭文档对象document.close();} catch (Exception e) {e.printStackTrace();}
}读取pdf内的文本
1.创建一个PDF读取器对象PdfReader 2.创建一个PdfTextExtractor对象 3.逐页提取文本 4.关闭PDF读取器
Test
public void test6() {try {PdfReader pdfReader new PdfReader(new FileInputStream(d:/test/hello5.pdf));int numberOfPages pdfReader.getNumberOfPages();for (int i 0; i numberOfPages; i) {String textFromPage PdfTextExtractor.getTextFromPage(pdfReader, i 1);System.out.println(textFromPage);}} catch (Exception e) {e.printStackTrace();}
}下一篇掌握iText轻松处理PDF文档-进阶篇