使用C#实现读取PDF中所有文本内容

 更新时间:2024年02月02日 11:08:37   作者:搬砖的诗人Z  
这篇文章主要为大家详细介绍了如何使用C#实现读取PDF中所有文本内容,文中的示例代码简洁易懂,具有一定的学习价值,有需要的小伙伴可以了解下

先安装如下包

实现代码

using iTextSharp.text.pdf;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace ReadPdfText
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = "0017_审判流程管理信息表2.pdf";
            var text = ReadPFD2(path);
            Console.WriteLine(text);
            Console.ReadKey();
        }

        public static string OnCreated(string filepath)
        {
            try
            {
                string pdffilename = filepath;
                PdfReader pdfReader = new PdfReader(pdffilename);
                int numberOfPages = pdfReader.NumberOfPages;
                string text = string.Empty;

                for (int i = 1; i <= numberOfPages; ++i)
                {
                    iTextSharp.text.pdf.parser.ITextExtractionStrategy strategy = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy();
                    text += iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(pdfReader, i, strategy);
                }
                pdfReader.Close();

                return text;
            }
            catch (Exception ex)
            {
                throw ex;
                //StreamWriter wlog = File.AppendText(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\mylog.log");
                //wlog.WriteLine("出错文件:" + ex.FullPath + "原因:" + ex.ToString());
                //wlog.Flush();
                //wlog.Close(); return null;
            }
        }

        public static string ReadPFD2(string path)
        {
            // string path = path;// @"D:\ydfile\d4bab8ff-26ff-4ddf-a602-872f6988db86_.pdf";
            string text = string.Empty;
            try
            {
                string pdffilename = path;
                StringBuilder buffer = new StringBuilder();
                //Create a pdf document.
                using (Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument())
                {
                    // Load the PDF Document
                    doc.LoadFromFile(pdffilename);
                    // String for hold the extracted text

                    foreach (Spire.Pdf.PdfPageBase page in doc.Pages)
                    {
                        buffer.Append(page.ExtractText());
                    }
                    doc.Close();
                }
                //save text
                text = buffer.ToString();
                return text;
            }
            catch (Exception ex)
            {
                //DHC.EAS.Common.LogInfo.Debug("读取PDF文件返回=" + text);
                //DHC.EAS.Common.LogInfo.Debug("读取PDF文件错误", ex);
                return null;
            }
        }
    }
}

到此这篇关于使用C#实现读取PDF中所有文本内容的文章就介绍到这了,更多相关C#读取PDF内容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c#如何实现程序加密隐藏

    c#如何实现程序加密隐藏

    LiteDB是一个轻量级的嵌入式数据库,它是用C#编写的,适用于.NET平台,这篇文章主要介绍了如何通过LiteDB将自己的程序进行加密,感兴趣的可以了解下
    2023-08-08
  • C#实现创建,删除,查找,配置虚拟目录实例详解

    C#实现创建,删除,查找,配置虚拟目录实例详解

    这篇文章主要介绍了C#创建,删除,查找,配置虚拟目录的方法,以实例形式较为详细的分析了C#针对虚拟目录的创建、删除、查找等相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C# Dynamic关键字之:dynamic为什么比反射快的详解

    C# Dynamic关键字之:dynamic为什么比反射快的详解

    本篇文章是对C#中dynamic为什么比反射快进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C# string转换为几种不同编码的Byte[]的问题解读

    C# string转换为几种不同编码的Byte[]的问题解读

    这篇文章主要介绍了C# string转换为几种不同编码的Byte[]的问题解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • HttpWebRequest出错.Section=ResponseHeader Detail=CR

    HttpWebRequest出错.Section=ResponseHeader Detail=CR

    HttpWebRequest出错.Section=ResponseHeader Detail=CR...
    2007-03-03
  • C#将Word或Excel文档转换为Html文件

    C#将Word或Excel文档转换为Html文件

    这篇文章介绍了C#将Word或Excel文档转换为Html文件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#四舍五入用法实例

    C#四舍五入用法实例

    这篇文章主要为大家详细介绍了C#四舍五入用法实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • C#转TypeScript的完整指南

    C#转TypeScript的完整指南

    本文对比了C#和TypeScript的异同,指出它们在变量类型、类与接口、泛型、异步编程等方面具有相似之处,同时也指出了TypeScript在运行环境、类型系统、基础类型、空值处理等方面的差异,并给出了从C#转向TypeScript的建议,强调C#经验可以直接迁移,需要的朋友可以参考下
    2026-03-03
  • C#中使用async和await实现异步Udp通讯的示例代码

    C#中使用async和await实现异步Udp通讯的示例代码

    本文主要介绍了C#中使用async和await实现异步Udp通讯的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • C#语法相比其它语言比较独特的地方(一)

    C#语法相比其它语言比较独特的地方(一)

    这篇文章主要介绍了C#语法相比其它语言比较独特的地方(一),本文讲解了switch语句可以用来测试string型的对象、多维数组、foreach语句、索引器和Property等内容,需要的朋友可以参考下
    2015-04-04

最新评论