当前位置: 首页 > 编程笔记 >

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

慕容聪
2023-03-14
本文向大家介绍C#使用iTextSharp将PDF转成文本的方法,包括了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#程序设计有所帮助。

 类似资料:
  • 本文向大家介绍C#使用iTextSharp从PDF文档获取内容的方法,包括了C#使用iTextSharp从PDF文档获取内容的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用iTextSharp从PDF文档获取内容的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 我想使用iTextSharp和rectangle(0,100,600,155)裁剪PDF文件。一切都很好,当你打开创建的*.pdf文件时,你只能看到裁剪的内容,但是!如果你解析那个pdf,仍然有信息和文本来自不可见的文档部分,我不能接受。如何完全删除该数据? 不幸的是,如果我想在不支付许可证的情况下将我的应用程序商业化,我就不能使用这些代码,所以我不得不考虑不同的库...

  • 首先,抱歉的低努力的问题…我曾用这些问题作为参考: 如果有人有任何线索,那就太神奇了!如果不是,请随意为我的一个低努力的问题生气…当我自己弄清楚的时候,我会发布一个更新!

  • 我读了很多关于SO的帖子,并搜索了很多解决方案,所有这些似乎都回避了我的特定问题。 是否有一种方法可以使用正确的页面大小将现有的PDF复制到新文档中? 谢谢。 更新 接受了布鲁诺的建议,我仔细检查了剪裁框和媒体框。我正在使用的PDF两者都有。裁剪框数组为 但是这样做会使“文本”向右和顶部移动太多,留下不均匀的边距。 我发现通过改变左下角的坐标,裁剪框,我可以移动文本。事实上,将裁剪框设置为40、4

  • 本文向大家介绍C#使用iTextSharp封装的PDF文件操作类实例,包括了C#使用iTextSharp封装的PDF文件操作类实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用iTextSharp封装的PDF文件操作类。分享给大家供大家参考。具体分析如下: 这个C#代码主要讲iTextSharp中用于操作PDF文件的方法进行了再次封装,可以更加方便的访问PDF文档,可以动态生成P

  • 本文向大家介绍C#将jpg转换为pdf的方法,包括了C#将jpg转换为pdf的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#将jpg转换为pdf的方法。分享给大家供大家参考。具体实现方法如下: C#生成pdf文件需要使用到一个itextsharp.dll文件,itextsharp.dll是一个开源的在C#中用来生成PDF文档的库文件,下面我们来给大家介绍利用itextsharp来