C#使用iTextSharp將PDF轉(zhuǎn)成文本的方法
本文實(shí)例講述了C#使用iTextSharp將PDF轉(zhuǎn)成文本的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
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
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C# HttpClient 如何使用 Consul 發(fā)現(xiàn)服務(wù)
這篇文章主要介紹了C# HttpClient 如何使用 Consul 發(fā)現(xiàn)服務(wù),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2021-02-02C#實(shí)現(xiàn)六大設(shè)計(jì)原則之接口隔離原則
這篇文章介紹了C#實(shí)現(xiàn)六大設(shè)計(jì)原則之接口隔離原則的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02詳解C# TimeSpan 計(jì)算時(shí)間差(時(shí)間間隔)
本篇文章主要介紹了C# TimeSpan 計(jì)算時(shí)間差(時(shí)間間隔),非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12C#調(diào)用百度翻譯實(shí)現(xiàn)翻譯HALCON的示例
HALCON示例程序的描述部分一直是英文的,看起來很不方便。本文就使用百度翻譯實(shí)現(xiàn)翻譯HALCON,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06C#實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到word或者Excel中的方法
這篇文章主要介紹了C#實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到word或者Excel中的方法,涉及C#操作word及Excel格式文件的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08在WPF中動(dòng)態(tài)加載XAML中的控件實(shí)例代碼
這篇文章主要介紹了在WPF中動(dòng)態(tài)加載XAML中的控件,實(shí)例分析了WPF中針對(duì)XAML中控件的動(dòng)態(tài)調(diào)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07C#利用Random得隨機(jī)數(shù)求均值、方差、正態(tài)分布的方法
這篇文章主要介紹了C#利用Random得隨機(jī)數(shù)求均值、方差、正態(tài)分布的方法,涉及C#數(shù)學(xué)運(yùn)算及概率統(tǒng)計(jì)的相關(guān)技巧,需要的朋友可以參考下2015-05-05