java 查找pdf指定位置_java实现查找PDF关键字所在页码及其坐标

importcom.itextpdf.awt.geom.Rectangle2D.Float;importcom.itextpdf.text.pdf.PdfDictionary;importcom.itextpdf.text.pdf.PdfName;importcom.itextpdf.text.pdf.PdfReader;import com.itextpdf.text.pdf.parser.*;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;/*** 消失的太阳*/

public classMyTest {public static void main(String[] args) throwsIOException {//1.给定文件

File pdfFile = new File("D://test.pdf");//2.定义一个byte数组,长度为文件的长度

byte[] pdfData = new byte[(int) pdfFile.length()];//3.IO流读取文件内容到byte数组

FileInputStream inputStream = null;try{

inputStream= newFileInputStream(pdfFile);

inputStream.read(pdfData);

}catch(IOException e) {throwe;

}finally{if (inputStream != null) {try{

inputStream.close();

}catch(IOException e) {

}

}

}//4.指定关键字

String keyword = "消失的太阳:";//5.调用方法,给定关键字和文件

List positions =findKeywordPostions(pdfData, keyword);//6.返回值类型是 List 每个list元素代表一个匹配的位置,分别为 float[0]所在页码 float[1]所在x轴 float[2]所在y轴

System.out.println("total:" +positions.size());if (positions != null && positions.size() > 0) {for (float[] position : positions) {

System.out.print("pageNum: " + (int) position[0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 iText 库来给 PDF 文档添加页码。以下是一个简单的示例代码: ```java import com.itextpdf.kernel.font.PdfFont; import com.itextpdf.kernel.font.PdfFontFactory; import com.itextpdf.kernel.geom.Rectangle; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfPage; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.Document; import com.itextpdf.layout.element.Paragraph; import com.itextpdf.layout.property.TextAlignment; import java.io.File; import java.io.IOException; public class AddPageNumber { public static void main(String[] args) throws IOException { // 设置输入和输出文件 File input = new File("input.pdf"); File output = new File("output.pdf"); // 创建PdfDocument对象 PdfDocument pdfDoc = new PdfDocument(new PdfReader(input), new PdfWriter(output)); // 获取页码总数 int totalPages = pdfDoc.getNumberOfPages(); // 创建字体 PdfFont font = PdfFontFactory.createFont(); // 遍历每一页,并在底部添加页码 for (int i = 1; i <= totalPages; i++) { PdfPage page = pdfDoc.getPage(i); // 创建Document对象 Document doc = new Document(pdfDoc, page.getPageSize()); // 创建页码字符串 Paragraph pageNumber = new Paragraph(String.format("Page %d of %d", i, totalPages)); pageNumber.setFont(font); pageNumber.setFontSize(10); pageNumber.setTextAlignment(TextAlignment.CENTER); // 添加页码到页面底部 doc.showTextAligned(pageNumber, page.getPageSize().getWidth() / 2, pageNumber.getFontSize(), TextAlignment.CENTER); // 关闭Document对象 doc.close(); } // 关闭PdfDocument对象 pdfDoc.close(); } } ``` 该代码会在每一页的底部添加页码,并将结果输出到指定的输出文件中。你可以根据需要修改代码来适应你的具体情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值