私にはかなり単純なタスクがあります。PDFファイルを読み取り、そのテキストの内容を無視してその画像の内容を書き出す必要があります。したがって、基本的には「テキストとして保存」を補完する必要があります。
理想的には、画像コンテンツの再圧縮は避けたいと思いますが、それが不可能な場合は問題ありません。
それを行う方法の例はありますか?
ありがとう!
PDFsharp を使用して PDF ファイルからテキストを抽出するのは簡単な作業ではありません。
最近、このスレッドで議論されました: https://stackoverflow.com/a/9161732/162529
PdfSharp を使用して PDF からテキストを抽出することは、ドキュメントの種類と目的によっては、実際には非常に簡単です。テキストが画像ではなくテキストとしてドキュメント内にあり、位置や形式を気にしない場合は、非常に単純です。このコードは、私が使用している PDF の最初のページのすべてのテキストを取得します。
var doc = PdfReader.Open(docPath);
string pageText = doc.Pages[0].Contents.Elements.GetDictionary(0).Stream.ToString();
doc.Pages.Count
ページの総数が得doc.Pages
られ、インデックスを使用して配列を介して各ページにアクセスします。foreach
インターフェイスが適切に実装されていないため、ここでは Linqを使用することはお勧めしません。渡されるインデックスGetDictionary
は、どの PDF ドキュメント要素に対するものかを示します。これは、ドキュメントの作成方法によって異なる場合があります。探しているテキストが得られない場合は、すべての要素をループしてみてください。
これが生成するテキストは、さまざまな PDF フォーマット コードでいっぱいになります。ただし、文字列を抽出するだけでよい場合は、正規表現またはその他の適切な文字列検索コードを使用して、必要な文字列を見つけることができます。書式設定や配置について何かする必要がある場合は、頑張ってください。私の知る限りでは、それが必要になるでしょう。
.pdfファイルから画像を抽出するPDFSharpライブラリの例:
編集:
次に、画像からテキストを抽出する場合は、OCRライブラリを使用する必要があります。
スタック上のスレッドへの2つの優れたOCRtessnetとMODI
リンクがありますが、現在使用している MODI
を完全にお勧めできます。いくつかのサンプル@codeproject。
編集2:
抽出した画像からテキストを読みたくない場合は、新しいPDFドキュメントを作成し、それらすべてをその中に入れる必要があります。PDFの作成には、 MigraDocを使用します。そのライブラリを使用することは難しくありません。