PDFファイルは、テキスト、画像、アニメーション、ビデオ、およびその他の多くの注釈をサポートしているため、人気があります。ただし、テキストは大部分のPDFドキュメントの中で最も重要な部分です。この記事では、C#.NETを使用してPDFTXTファイルに変換し、TXTファイルをPDF形式に変換します。この変換は、PDFドキュメントのテキストコンテンツのみに関心がある場合に便利です。今後のトピックの概要については、次の見出しを見ていきましょう。

ヒント:テキストからアニメーションを生成できる無料のText to GIFConverterに興味があるかもしれません。

TXTからPDFまたはPDFからTXTへのコンバーター

PDFからTXTへの変換、およびTXTファイルからPDFへの変換は、ドキュメントで使用されているテキスト文字列が主な関心事である場合に非常に役立ちます。 Aspose.PDF for .NET APIを使用すると、いくつかの簡単な手順でこれらのファイル形式を相互に変換できます。 .NET FrameworkベースのAPIであるため、C#およびVB.NETプログラミング言語を使用できます。 ダウンロードまたはNuGetギャラリーからDLLファイルをダウンロードすることにより、.NETアプリケーションにAPIを簡単にインストールできます。

APIを正常にインストールしたら、次の2つの方法でPDFファイルをTXTファイルに変換します。

C#またはVB.NETを使用してフォーマットせずにPDFをテキストファイルに変換する

まず、フォーマットルーチンなしでPDFをテキストに変換します。テキストの内容はそのままの形に変換されます。したがって、出力テキストは、入力PDFファイルの時点でのフォーマットには従いません。優れた効率と信頼性でPDFをTXTに変換するには、以下の手順に従う必要があります。

  1. 入力PDFドキュメントを読み込む
  2. StringBuilderクラスのインスタンスを初期化します
  3. PDFドキュメントの各ページを繰り返し処理します
  4. TextDeviceおよびRawモードを使用してテキストを読む
  5. 出力テキストをTXTファイルとして保存

以下のコードスニペットは、.NET FrameworkでC#またはVBを使用してPDFをTXTファイルに変換する方法を示しています。

// ドキュメントを開く
Document pdfDocument = new Document(dataDir + "MultiColumnPdf.pdf");
StringBuilder builder = new StringBuilder();
// 抽出されたテキストを保持する文字列
string extractedText = "";

foreach (Page pdfPage in pdfDocument.Pages)
{
    using (MemoryStream textStream = new MemoryStream())
    {
        // テキストデバイスを作成する
        TextDevice textDevice = new TextDevice();

        // さまざまなオプションを設定する
        TextExtractionOptions options = new
        TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);
        textDevice.ExtractionOptions = options;

        // ページを変換してテキストをストリームに保存します
        textDevice.Process(pdfPage, textStream);

        // メモリストリームを閉じる
        textStream.Close();

        // メモリストリームからテキストを取得する
        extractedText = Encoding.Unicode.GetString(textStream.ToArray());
    }
    builder.Append(extractedText);
}

dataDir = dataDir + "PDF_to_TXT_Raw.txt";
// テキストファイルを保存します
File.WriteAllText(dataDir, builder.ToString());

C#またはVB.NETを使用したフォーマットルーチンでPDFをTXTファイルに変換する

ここで、少しのフォーマットルーチンを使用してPDFをテキストに変換する必要があるユースケースを考えてみましょう。たとえば、段落のインデント、タブ、スタイル、列ごとの書式設定などです。以下の手順に従って、PDFドキュメントのテキストコンテンツをC#でTXTファイルに簡単にレンダリングできます。

  1. ソースPDFファイルをロード
  2. 文字列変数を開始します
  3. TextFormattingMode.Pureで各ページをお読みください
  4. 変換されたTXTファイルを保存します

次のコードスニペットは、C#またはVB.NET言語を使用してフォーマットしたPDFをTXTファイルに変換する方法を示しています。

// ドキュメントを開く
Document pdfDocument = new Document(dataDir + "MultiColumnPdf.pdf");
StringBuilder builder = new StringBuilder();
// 抽出されたテキストを保持する文字列
string extractedText = "";

foreach (Page pdfPage in pdfDocument.Pages)
{
    using (MemoryStream textStream = new MemoryStream())
    {
        // テキストデバイスを作成する
        TextDevice textDevice = new TextDevice();

        // さまざまなオプションを設定する
        TextExtractionOptions options = new
        TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Pure);
        textDevice.ExtractionOptions = options;

        // ページを変換してテキストをストリームに保存します
        textDevice.Process(pdfPage, textStream);

        // メモリストリームを閉じる
        textStream.Close();

        // メモリストリームからテキストを取得する
        extractedText = Encoding.Unicode.GetString(textStream.ToArray());
    }
    builder.Append(extractedText);
}

dataDir = dataDir + "PDF_to_TXT_Pure.txt";
// テキストファイルを保存します
File.WriteAllText(dataDir, builder.ToString());

PUREとRAWテキスト変換の視覚的比較

次のスクリーンショットは、今説明した2つのアプローチを視覚的に比較したものです。ピュアモード(右端のウィンドウ)では、PDFファイル(左端のウィンドウ)と同じフォーマットのテキストが表示されます。

PDFTXTcsharpを変換する

この入力ファイルと出力ファイルのスクリーンショットでは、どの変換アプローチが最適かを判断できます。

C#またはVB.NETを使用してプログラムでTXTファイルをPDFに変換する

TXTファイルには、多くの場合、膨大なテキストコンテンツが含まれています。 Aspose.PDF for .NET APIを使用すると、TXTファイルをPDFファイルに簡単に変換できます。テキストからPDFへの変換を実行するには、以下の手順に従ってください。

  1. TextReaderクラスのインスタンスを作成します
  2. PDFドキュメントを初期化し、空白ページを追加します
  3. TextBuilderオブジェクトをインスタンス化します
  4. 入力TXTファイルからテキストの各行を読み取ります
  5. 出力PDFファイルを保存

以下のコードスニペットは、テキストを含むTXTファイルをC#またはVB.NET言語を使用してPDFドキュメントにプログラムで変換する方法を説明しています。

// 入力TXTファイルを読み取ります
System.IO.TextReader tr = new StreamReader(dataDir + "Test.txt", Encoding.UTF8, true);

// 新しいドキュメントを初期化する
Document doc = new Document();

// 空白のページを追加
Page page = doc.Pages.Add();
String strLine;

// TextBuilderオブジェクトを開始します
TextBuilder builder = new TextBuilder(page);
double x = 100; double y = 100;
while ((strLine = tr.ReadLine()) != null)
{
 TextFragment text = new TextFragment(strLine);
 text.Position = new Position(x, y);
 if (y >= page.PageInfo.Height - 72)
 {
  y = 100;
  page = doc.Pages.Add();
  builder = new TextBuilder(page);
 }
 else
 {
  y += 15;
 }
 builder.AppendText(text);
}

// 出力PDFファイルを保存
doc.Save(dataDir + "TexttoPDF.pdf");
tr.Close();

結論

この記事では、PDFファイルのテキストをTXTファイル形式に変換する方法を学びました。さらに、.NET FrameworkのC#またはVBを使用して、TXTファイルのテキストをPDFドキュメントに変換しました。 PDFファイルとTXTファイルを非常に効率的かつ迅速に変換できます。ただし、ご不明な点やご質問がございましたら、無料サポートフォーラムまでお気軽にご返信いただくか、製品ドキュメントをご覧ください。ご連絡をお待ちしております。

関連項目