当前位置: 首页 > news >正文

青州网站搭建重庆安全建设工程信息网

青州网站搭建,重庆安全建设工程信息网,做网站需要企业,住房和城乡建设部标准定额网站功能内容:抓取指定文件夹内的 pdf 文件,然后提取文件内的内容,获取指定文字,进行处理,然后将该 pdf 转换成JPG 图片 1. 主流程控制private static final Pattern BARCODE_PATTERN Pattern.compile("(条形码|条\\…

功能内容:抓取指定文件夹内的 pdf 文件,然后提取文件内的内容,获取指定文字,进行处理,然后将该 pdf 转换成JPG 图片 

1. 主流程控制

private static final Pattern BARCODE_PATTERN = Pattern.compile("(条形码|条\\s*码)[::]?\\s*(\\d{10,20})");
private static final String OUTPUT_PATH = "D:\\打印\\pdf\\";public static void main(String[] args) {try {//OUTPUT_PATH List<File> pdfFiles = findPDFFiles(OUTPUT_PATH);System.out.println("找到 " + pdfFiles.size() + " 个 PDF 文件:");for (File pdfFile : pdfFiles) {// 提取文本内容String content = extractTextFromPDF(pdfFile);if (!"".equals(content)){// 提取条形码String barcode = extractBarcode(content);// PDF转高质量图像pdfToHighQualityImage(pdfFile, barcode);}}} catch (Exception e) {// 异常处理}
}

2. PDF文件查找与验证

采用**广度优先搜索(BFS)**算法递归查找PDF文件:

PDF有效性验证包括:

  • 文件存在性检查
  • 非空验证
  • 加密状态检测
  • 内容可读性验证
public static List<File> findPDFFiles(String directoryPath) {List<File> pdfFiles = new ArrayList<>();LinkedList<File> queue = new LinkedList<>();queue.add(new File(directoryPath));while (!queue.isEmpty()) {File currentDir = queue.removeFirst();File[] files = currentDir.listFiles();if (files != null) {for (File file : files) {if (file.isDirectory()) {queue.add(file); // 子目录入队} else if (file.isFile() && isPDFFile(file)) {pdfFiles.add(file);}}}}return pdfFiles;
}

3. 文本内容提取与条码识别

使用Apache PDFBox进行精准文本提取

public static String extractTextFromPDF(File pdfFile) {try (PDDocument document = PDDocument.load(pdfFile)) {PDFTextStripper stripper = new PDFTextStripper() {@Overrideprotected void processTextPosition(TextPosition text) {// 直接提取Unicode字符,避免字体问题String unicode = text.getUnicode();if (!unicode.isEmpty() && !unicode.matches("\\s")) {writeString(unicode);}}};stripper.setSortByPosition(true);return cleanExtractedText(stripper.getText(document));} catch (Exception e) {return "";}
}

4. PDF转高质量图像

使用Spire.PDF库实现高DPI图像转换

public static void pdfToHighQualityImage(File pdfFile, String fileName) {PdfDocument pdf = new PdfDocument();pdf.loadFromFile(pdfFile.getPath());// 设置150 DPI分辨率//多页pdf 转 多页jpg// for (int i = 0; i < pdf.getPages().getCount(); i++) {// BufferedImage image = pdf.saveAsImage(i, PdfImageType.Bitmap,500,500);// }BufferedImage image = pdf.saveAsImage(0, PdfImageType.Bitmap, 150, 150);// 保存为PNG避免CMYK色域问题ImageIO.write(image, "PNG", new File(OUTPUT_PATH + fileName + ".png"));pdf.close();
}
  1. PDF文本精确定位

    • 通过重写processTextPosition方法直接获取Unicode字符
    • 设置setSortByPosition(true)保持原始布局
  2. 图像质量保证

    • 使用PNG格式避免JPEG压缩失真
    • 设置150DPI保证打印质量
    • 处理CMYK色域问题
  3. 性能优化

    • BFS遍历提高文件搜索效率
    • 流式操作(TRY-WITH-RESOURCES)自动释放资源
    • 按需加载PDF页面

maven

// Apache PDFBox
<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version>
</dependency> // Spire.PDF
<repositories><repository><id>com.e-iceblue</id><name>e-iceblue</name><url>https://repo.e-iceblue.cn/repository/maven-public/</url></repository>
</repositories><dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf.free</artifactId><version>4.4.1</version>
</dependency>

    http://www.dtcms.com/a/561993.html

    相关文章:

  • 会议网站建设方案模板布吉网站的建设
  • MIT-大整数相乘和大矩阵相乘
  • 网站建设分析书引言恩施哪里有做网站的
  • php手机网站开发长春电商网站建设公司排名
  • 微信网站怎么做的淮北哪有做网站的
  • 基于 Qemu 的内核模块开发初体验
  • 网站建设是前端么一级a做爰片免费网站孕交视频
  • 如何下载纯净版操作系统
  • 计网5.3.2 TCP报文段
  • pyqt5 部件QTableWidget对某些指定单元格输入数字限制
  • 网站开发主管岗位职责说明书襄阳专业做网站
  • php做的网站收录网站建设服务网站
  • dc系列靶机——dc1
  • Java SE 学习哈希表后对String的讨论
  • 烟台网站制作建设wordpress首页出现恶意链接
  • Linux C/C++ 学习日记(46):io_uring(二):reactor 与proactor的性能测试对比
  • 如何在 Linux 中创建自签名 SSL 证书 ?
  • 安阳做网站公司亚马逊关联乱码店铺怎么处理
  • 网站设计公司发展网站美工培训课程
  • 响应式网站是个坑优秀网页设计网址
  • 如何做聊天网站变更icp备案网站信息查询
  • 机器学习20:自编码器(Auto-Encoder)与扩散模型综述学习
  • Spring Boot解决循环依赖的几种办法
  • 成品网站免费网站下载外贸网站建设 广州
  • 网站开发费用结算wordpress 开发搜索框
  • 网站视觉规范不需要备案如何做网站
  • langchain基础
  • vue2+vuex登录功能
  • fastapi -- 耗时任务处理
  • 网站建设咨询服务企业级服务器配置