C#使用iTextSharp将PDF转成文本的方法

本文实例讲述了C#使用iTextSharp将PDF转成文本的方法。分享给大家供大家参考。具体实现方法如下:

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
public class ParsingPDF {
  static string PDF;
  static string TEXT2;
  /**
   * Parses the PDF using PRTokeniser
   * @param src the path to the original PDF file
   * @param dest the path to the resulting text file
   */
  public void parsePdf(String src, String dest)
  {
    PdfReader reader = new PdfReader(src);
    StreamWriter output = new StreamWriter(new FileStream(dest, FileMode.Create));
    int pageCount = reader.NumberOfPages;
    for (int pg = 1; pg <= pageCount; pg++)
    {
      // we can inspect the syntax of the imported page
      byte[] streamBytes = reader.GetPageContent(pg);
      PRTokeniser tokenizer = new PRTokeniser(streamBytes);
      while (tokenizer.NextToken())
      {
        if (tokenizer.TokenType == PRTokeniser.TokType.STRING)
        {
          output.WriteLine(tokenizer.StringValue);
        }
      }
    }
    output.Flush();
    output.Close();
  }
  /**
   * Main method.
   */
  static void Main(string[] args)
  {
    if (args.Length < 1 || args.Length > 2)
    {
      Console.WriteLine("USAGE: ParsePDF infile.pdf <outfile.txt>");
      return;
    }
    else if (args.Length == 1)
    {
      PDF = args[0];
      TEXT2 = Path.GetFileNameWithoutExtension(PDF) + ".txt";
    }
    else
    {
      PDF = args[0];
      TEXT2 = args[1];
    }
    try
    {
      DateTime t1 = DateTime.Now;
      ParsingPDF example = new ParsingPDF();
      example.parsePdf(PDF, TEXT2);
      DateTime t2 = DateTime.Now;
      TimeSpan ts = t2 - t1;
      Console.WriteLine("Parsing completed in {0:0.00} seconds.", ts.TotalSeconds);
    }
    catch (Exception ex)
    {
      Console.WriteLine("ERROR: " + ex.Message);
    }
  } // class
  public class MyTextRenderListener : IRenderListener
  {
    /** The print writer to which the information will be written. */
    protected StreamWriter output;
    /**
     * Creates a RenderListener that will look for text.
     */
    public MyTextRenderListener(StreamWriter output)
    {
      this.output = output;
    }
    public void BeginTextBlock()
    {
      output.Write("<");
    }
    public void EndTextBlock()
    {
      output.WriteLine(">");
    }
    public void RenderImage(ImageRenderInfo renderInfo)
    {
    }
    public void RenderText(TextRenderInfo renderInfo)
    {
      output.Write("<");
      output.Write(renderInfo.GetText());
      output.Write(">");
    }
  } // class
} // namespace 

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • C#使用iTextSharp封装的PDF文件操作类实例

    本文实例讲述了C#使用iTextSharp封装的PDF文件操作类.分享给大家供大家参考.具体分析如下: 这个C#代码主要讲iTextSharp中用于操作PDF文件的方法进行了再次封装,可以更加方便的访问PDF文档,可以动态生成PDF文件.添加内容.设置段落.设置字体等. using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; namespace DotNet.Utilities { /// <summary> ///

  • C#使用iTextSharp从PDF文档获取内容的方法

    本文实例讲述了C#使用iTextSharp从PDF文档获取内容的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using iTex

  • C# 添加文字水印类代码

    复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.IO; using System.Drawing.Imaging; namespace Chen { public class warterfont { public void addtexttoimg(string filename, string text) { if

  • C#使用iTextSharp添加PDF水印

    使用的是iTextSharp添加PDF水印,由于是接口动态生成PDF,所以采用的是全部是内存流的形式,而且水印是平铺是.iTextSharp版本是5.5. /// <summary> /// 添加倾斜水印 /// </summary> /// <param name="pdfStream">pdf文件流</param> /// <param name="waterMarkName">水印字符串</pa

  • C# 中使用iTextSharp组件创建PDF的简单方法

    将iTextSharp.dll文件拷贝到项目的bin目录,然后在项目中添加引用: 然后在后台代码添加引用: 复制代码 代码如下: using iTextSharp.text;using iTextSharp.text.pdf;using System.IO;using System.Diagnostics; //创建PDF private void CreatePdf() {     //定义一个Document,并设置页面大小为A4,竖向      iTextSharp.text.Docume

  • C# 添加图片水印类实现代码

    复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.IO; using System.Drawing.Imaging; using System.Web; using System.Drawing.Drawing2D; using System.Reflection; namespace Chen { public clas

  • 详解开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)

    在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的同时,我自己也得到了一些提升,这个是我感觉到的最大的益处.知识需要传播,在传播的过程中去让学习的人去提升,在交流中的过程中去让思考的人去展望,我希望我也能在这个传播的过程中出一份力.由于自身能力有限,在编写博文时出现的错误和一些不到位的讲解,还望大家多多见谅. 上面卖完情怀,下面就该切入正题了. 提

  • C#使用itextsharp生成PDF文件的实现代码

    项目需求需要生成一个PDF文档,使用的是VS2010,ASP.NET.网络上多次搜索没有自己想要的,于是硬着头皮到itextpdf官网看英文文档,按时完成任务,以实用为主,共享一下:使用HTML文件创建PDF模板:使用自定义字体的一种方法: 复制代码 代码如下: FontFactory.Register(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\Fonts\\RAGE.TTF", "

  • C#(.net)水印图片的生成完整实例

    本文以一个完整实例讲述了C#水印图片的生成方法.是非常实用的技巧.分享给大家供大家参考. 具体实例代码如下: /* * * 使用说明: * 建议先定义一个WaterImage实例 * 然后利用实例的属性,去匹配需要进行操作的参数 * 然后定义一个WaterImageManage实例 * 利用WaterImageManage实例进行DrawImage(),印图片水印 * DrawWords()印文字水印 * */ using System; using System.Drawing; using

  • C#使用iTextSharp设置PDF所有页面背景图功能实例

    本文实例讲述了C#使用iTextSharp设置PDF所有页面背景图功能的方法.分享给大家供大家参考.具体如下: 在生成PDF 的时候,虽然可以在页面中设置背景图. 但有些内容过长夸页面的时候,就很难设置背景图,变成了空白背景的页面! 以下是重新生成每一页 PDF 背景图功能代码! public void SetPdfBackground(string pdfFilePath) { //重新生成的 PDF 的路径 string destFile = HttpContext.Current.Serv

随机推荐