zoukankan      html  css  js  c++  java
  • .NET下读取PDF文本总结[转]

     

     

     

    在.NET下读取PDF文本用到的类库主要有两个:PDFBox和iTextSharp。

    先说PDFBox,这个类库据说功能很强大,本人在这只是简单介绍一下:

    1、下载PDFBox

    下载地址:http://sourceforge.net/projects/pdfbox/

    2、引用动态链接库

    解压缩下载的PDFBox,找到其中的Bin目录,需要在项目中添加引用的dll文件有:
    IKVM.GNU.Classpath.dll
    PDFBox-0.7.3.dll
    FontBox-0.1.0-dev.dll
    IKVM.Runtime.dll
    将以上4个文件引用到项目中,在文件中需要引入以下2个命名空间:
    using org.pdfbox.pdmodel;
    using org.pdfbox.util;

    3、API的使用方法看代码:

    [csharp] view plaincopy
    1. using org.pdfbox.pdmodel;  
    2. using org.pdfbox.util;  
    3. public void pdf2txt(FileInfo file,FileInfo txtfile)  
    4. {  
    5.         PDDocument doc = PDDocument.load(file.FullName);  
    6.         PDFTextStripper pdfStripper = new PDFTextStripper();  
    7.         string text = pdfStripper.getText(doc);  
    8.         StreamWriter swPdfChange = new StreamWriter(txtfile.FullName, false, Encoding.GetEncoding("gb2312"));  
    9.         swPdfChange.Write(text);  
    10.         swPdfChange.Close();  
    11. }  

    iTextSharp,其实很多时候都是用于生成PDF,但是他读取PDF的能力也不差,使用如下:

    1、下载iTextSharp

    下载地址:http://sourceforge.net/projects/itextsharp/

    2、引用动态链接库

    解压缩下载的压缩包里面的itextsharp-dll-core.zip,得到itextsharp.dll,在项目中添加引用itextsharp.dll即可
    在文件中需要引入以下3个命名空间:
    using iTextSharp;
    using iTextSharp.text;
    using iTextSharp.text.pdf;

    3、API的使用方法看代码:

    [csharp] view plaincopy
    1. private string OnCreated(string filepath)  
    2. {  
    3.     try  
    4.     {  
    5.         string pdffilename = filepath;  
    6.         PdfReader pdfReader = new PdfReader(pdffilename);  
    7.         int numberOfPages = pdfReader.NumberOfPages;  
    8.         string text = string.Empty;  
    9.   
    10.         for (int i = 1; i <= numberOfPages; ++i)  
    11.         {  
    12.             byte[] bufferOfPageContent = pdfReader.GetPageContent(i);  
    13.             text += System.Text.Encoding.UTF8.GetString(bufferOfPageContent);  
    14.         }  
    15.         pdfReader.Close();  
    16.   
    17.         return text;  
    18.     }  
    19.     catch (Exception ex)  
    20.     {  
    21.         StreamWriter wlog = File.AppendText(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase+"\\mylog.log");  
    22.         wlog.WriteLine("出错文件:" + e.FullPath + "原因:" + ex.ToString());  
    23.         wlog.Flush();  
    24.         wlog.Close();return null;  
    25.     }  
    26.   
    27. }  
  • 相关阅读:
    [LeetCode]2. Add Two Numbers链表相加
    Integration between Dynamics 365 and Dynamics 365 Finance and Operation
    向视图列添加自定义图标和提示信息 -- PowerApps / Dynamics365
    Update the Power Apps portals solution
    Migrate portal configuration
    Use variable to setup related components visible
    Loyalty management on Retail of Dynamic 365
    Modern Fluent UI controls in Power Apps
    Change screen size and orientation of a canvas app in Power App
    Communication Plan for Power Platform
  • 原文地址:https://www.cnblogs.com/MSIKRUBY/p/3066850.html
Copyright © 2011-2022 走看看