このページには自動翻訳されたテキストを含めることができます。

C# および VB.NET で PDF ドキュメントからテキスト、パス、画像を抽出する

Docotic.Pdf ライブラリ を使用して、Windows、Linux、macOS、Android、iOS 上の .NET、またはクラウド環境の PDF ドキュメントからテキスト、画像、ベクトル パスを抽出します。

テキストと画像を抽出する

PDFからテキストを取得する

Docotic.Pdf を使用して、PDF ドキュメントを .NET のテキストに変換できます。 このサンプルは、C# で PDF を書式設定されたテキストに変換する方法を示します:

using BitMiracle.Docotic.Pdf;

using (var pdf = new PdfDocument("your_document.pdf"))
{
    var options = new PdfTextExtractionOptions
    {
        SkipInvisibleText = true,
        WithFormatting = true
    };
    string formattedText = pdf.GetText(options);
    Console.WriteLine(formattedText);
}

PDF ページの特定の部分のみからテキストを抽出できます。 そのためには PdfTextExtractionOptions.Rectangle プロパ ティを使用します。

高度な分析のために、すべてのテキスト チャンクに関する詳細情報を取得することもできます。 Docotic.Pdf を使用すると、PDF テキストを そのまま単語ごと に、または 文字ごとに で抽出できま す。 このサンプルは、C# で単語ごとに PDF テキストを抽出する方法を示します:

using (var pdf = new PdfDocument("your_document.pdf"))
{
    PdfPage page = pdf.Pages[0];
    foreach (PdfTextData data in page.GetWords())
    {
        Console.WriteLine(
            $"{{\n" +
            $"  text: '{data.GetText()}',\n" +
            $"  bounds: {data.Bounds},\n" +
            $"  font name: '{data.Font.Name}',\n" +
            $"  font size: {data.FontSize},\n" +
            $"  transformation matrix: {data.TransformationMatrix},\n" +
            $"  rendering mode: '{data.RenderingMode}',\n" +
            $"  brush: {data.Brush},\n" +
            $"  pen: {data.Pen}\n" +
            $"}},"
        );
    }
}

.NET での PDF からテキストへの変換に関するサンプルと情報をさらに入手するには、PDF からテキストを抽 出する の記事を読んでください。

.NET で PDF から画像を取得する

このライブラリは、PDF ファイルから画像をそのまま抽出 または ペイントされたま ま するために使用できます。 C# で PDF からすべての画像を抽出する方法:

using BitMiracle.Docotic.Pdf;

using (var pdf = new PdfDocument("your_document.pdf"))
{
    int i = 0;
    foreach (PdfImage image in pdf.GetImages())
    {
        string imageFile = image.Save(i.ToString());
        ++i;
    }
}

抽出した画像はTIFF画像、JPEG画像として保存できます。

ライブラリは、画像を抽出するときに画像を再圧縮しません。 PDF と同じ品質の画像が得られます。

また、画像がページ上で実際に描画される場所 に関する情報を取得するこ ともできます。

PDF からベクター パスを抽出する

PdfPage.GetObjects() メソッド を使用して、PDF ドキュメント内 のベクター パスに関する情報を取得できます。 詳細については、ページ オブジェクトのコ ピー および ページ オブジェクトの抽出 のサンプル をご覧ください。

PdfPage.GetObjects(PdfObjectExtractionOptions) オーバーロー ド を使用し て、テキストをベクター パスとして抽出することもできます。 この機能を使用すると、.NET で PDF 内のテ キストを平坦化できます。