【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤

本文涉及的产品
视觉智能开放平台,视频通用资源包5000点
视觉智能开放平台,图像通用资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。

应用场景

合同管理:从批量合同中提取合同编号、日期等信息作为文件名
发票处理:自动从发票中提取发票号码、金额等关键信息
文档归档:根据文档内特定位置的标题或编号自动分类归档
数据录入:快速提取 PDF 中的结构化数据到系统中

工具下载

咕嗄批量PDF自定义提取多区域内容重命名导出表格系统

百度网盘:https://pan.baidu.com/s/1FjWiKqt93ECiVqNKmeOJOA?pwd=8866
腾讯网盘:https://share.weiyun.com/yw15BsM7

原文参考:https://mp.weixin.qq.com/s/sh26EujdBkKd0ZCd0co9uw

实现方案

推荐使用 iTextSharp 库(处理 PDF)和 组合实现:
提取文本区域:通过 iTextSharp 定位并提取指定区域的图像
文件重命名:根据提取PDF内容结果重命名PDF文件
详细步骤

创建新项目:在 Visual Studio 中创建一个 C# 控制台应用程序
安装 NuGet 包:
plaintext
Install-Package iTextSharp

编写核心代码:
csharp
using System;
using System.IO;
using System.Text.RegularExpressions;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using Tesseract;

namespace PdfRenameTool
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("PDF批量重命名工具启动...");

        // 设置参数
        string pdfFolder = @"C:\PDFs";
        string outputFolder = @"C:\PDFs\Renamed";
        string tessDataPath = @"C:\TesseractData";

        // 创建输出文件夹
        if (!Directory.Exists(outputFolder))
        {
            Directory.CreateDirectory(outputFolder);
        }

        // 处理所有PDF文件
        ProcessPdfFiles(pdfFolder, outputFolder, tessDataPath);

        Console.WriteLine("处理完成!按任意键退出...");
        Console.ReadKey();
    }

    static void ProcessPdfFiles(string pdfFolder, string outputFolder, string tessDataPath)
    {
        // 获取所有PDF文件
        string[] pdfFiles = Directory.GetFiles(pdfFolder, "*.pdf");

        foreach (string pdfFile in pdfFiles)
        {
            try
            {
                Console.WriteLine($"正在处理: {Path.GetFileName(pdfFile)}");

                // 提取指定区域文本
                string extractedText = ExtractTextFromPdf(pdfFile, tessDataPath);

                // 根据提取内容生成新文件名
                string newFileName = GenerateNewFileName(extractedText);

                // 重命名并移动文件
                string outputPath = Path.Combine(outputFolder, newFileName + ".pdf");
                File.Copy(pdfFile, outputPath);

                Console.WriteLine($"已重命名为: {newFileName}.pdf");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"处理文件时出错: {ex.Message}");
            }
        }
    }

    static string ExtractTextFromPdf(string pdfPath, string tessDataPath)
    {
        using (PdfReader reader = new PdfReader(pdfPath))
        {
            // 假设我们要提取第一页的特定区域
            int pageNumber = 1;
            if (reader.NumberOfPages < pageNumber)
            {
                return "页码不足";
            }

            // 设置要提取的区域(以点为单位,左下角为原点)
            // 示例区域:从(100, 600)到(400, 700)的矩形
            Rectangle rect = new Rectangle(100, 600, 400, 700);

            // 创建策略并提取文本
            RenderFilter filter = new RegionTextRenderFilter(rect);
            ITextExtractionStrategy strategy = new FilteredTextRenderListener(
                new LocationTextExtractionStrategy(), filter);

            string text = PdfTextExtractor.GetTextFromPage(reader, pageNumber, strategy);

            // 如果文本提取失败,尝试OCR
            if (string.IsNullOrWhiteSpace(text))
            {
                text = PerformOcrOnPdfPage(pdfPath, pageNumber, rect, tessDataPath);
            }

            return text.Trim();
        }
    }

    static string PerformOcrOnPdfPage(string pdfPath, int pageNumber, Rectangle region, string tessDataPath)
    {
        // 使用iTextSharp将PDF页面转换为图像
        // 然后使用Tesseract对指定区域进行OCR识别
        // 此处为简化示例,实际实现需要处理图像提取和OCR过程

        using (var engine = new TesseractEngine(tessDataPath, "chi_sim", EngineMode.Default))
        {
            // 实际代码需要从PDF提取图像并裁剪到指定区域
            // 这里假设我们已经有了处理好的图像
            // Bitmap image = ExtractImageFromPdf(pdfPath, pageNumber, region);

            // 使用OCR识别文本
            // using (var page = engine.Process(image))
            // {
            //     return page.GetText();
            // }

            return "OCR识别内容"; // 示例返回值
        }
    }

    static string GenerateNewFileName(string extractedText)
    {
        // 根据提取的文本生成新文件名
        // 这里可以使用正则表达式匹配特定模式
        string pattern = @"[合同|发票]号[::]?(\w+)";
        Match match = Regex.Match(extractedText, pattern);

        if (match.Success)
        {
            return match.Groups[1].Value;
        }

        // 如果没有匹配到特定模式,使用时间戳
        return DateTime.Now.ToString("yyyyMMddHHmmss");
    }
}

}

注意事项

PDF格式差异:不同来源的PDF文件可能有不同的内部结构,需要调整提取区域坐标,复杂布局可能影响识别率
性能考虑:大量PDF处理可能需要优化
错误处理:添加适当的异常处理、记录日志以便后续检查
权限问题:确保程序有读取和写入文件的权限,避免处理正在使用的文件
测试验证:处理前最好备份原始文件,先对少量样本文件进行测试
以上方案提供了基本框架,你可以根据实际需求进行调整和优化。

相关文章
|
3月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
5月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
169 10
|
4月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件
|
6月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
8月前
|
人工智能 编解码 文字识别
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
OCRmyPDF 是一款开源命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。支持多语言、图像优化和多核处理。
886 17
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
|
8月前
|
文字识别 Serverless 开发工具
【全自动改PDF名】批量OCR识别提取PDF自定义指定区域内容保存到 Excel 以及根据PDF文件内容的标题来批量重命名
学校和教育机构常需处理成绩单、报名表等PDF文件。通过OCR技术,可自动提取学生信息并录入Excel,便于统计分析和存档管理。本文介绍使用阿里云服务实现批量OCR识别、内容提取、重命名及导出表格的完整步骤,包括开通相关服务、编写代码、部署函数计算和设置自动化触发器等。提供Python示例代码和详细操作指南,帮助用户高效处理PDF文件。 链接: - 百度网盘:[链接](https://pan.baidu.com/s/1mWsg7mDZq2pZ8xdKzdn5Hg?pwd=8866) - 腾讯网盘:[链接](https://share.weiyun.com/a77jklXK)
838 5
|
9月前
|
机器学习/深度学习 人工智能 文字识别
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
726 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
|
8月前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
822 8
|
10月前
|
人工智能 文字识别 数据挖掘
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
MarkItDown 是微软开源的多功能文档转换工具,支持将 PDF、PPT、Word、Excel、图像、音频等多种格式的文件转换为 Markdown 格式,具备 OCR 文字识别、语音转文字和元数据提取等功能。
1885 9
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
|
10月前
|
JavaScript
jquery图片和pdf文件预览插件
EZView.js是一款jquery图片和pdf文件预览插件。EZView.js可以为图片和pdf格式文件生成在线预览效果。支持的文件格式有pdf、jpg、 png、jpeg、gif。
279 16

热门文章

最新文章