チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»pdfnetextractread

Displaying items by tag: pdfnetextractread

PDF ドキュメントには、情報を分かりやすく伝えるために画像がよく使用されます。場合によっては、PDF ドキュメントから画像を抽出する必要があります。例えば、プレゼンテーションや他のドキュメントで、PDF レポートのチャート画像を使用したい場合です。本記事では、C# で Spire.PDF for .NET を使用して PDF から画像を抽出する方法を紹介します。

Spire.PDF for .NET をインストールします

まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.PDF

C# で PDF ドキュメントから画像を抽出する

PdfPageBase.ExtractImages() メソッドを使用すると、1ページ内のすべての画像を抽出できます。開発者は、PDF ドキュメント内のすべてのページを繰り返し処理し、このメソッドを使用して画像を抽出することができます。詳細な手順は以下の通りです:

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • ドキュメント内のすべてのページを繰り返し処理します。
  • 各ページから PdfPageBase.ExtractImages() メソッドを使って画像を抽出し、保存します。
  • C#
using Spire.Pdf;
using System.Drawing;

namespace ExtractImages
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a PdfDocument object
            PdfDocument pdf = new PdfDocument();
            // Load a PDF document
            pdf.LoadFromFile("Sample.pdf");

            int i = 0;
            // Iterate through the pages in the document
            foreach (PdfPageBase page in pdf.Pages)
            {
                // Extract the images from the page and save them to file
                int j = 0;
                foreach (Image image in page.ExtractImages())
                {
                    image.Save("Images/Image" + i + "_" + j + ".png");
                    j++;
                }
                i++;
            }
        }
    }
}

C#:PDF ドキュメントから画像を抽出する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in エキス/読み取り
Tagged under

PDF ドキュメントのページレイアウトは固定されており、ユーザーによる変更は許可されていません。PDF コンテンツを再編集するには、PDF を Word に変換するか、PDF からテキストを抽出します。この記事では、Spire.PDF for .NET を使用して、C# および VB.NET でプログラムによって特定の PDF ページからテキストを抽出する方法、特定の長方形領域からテキストを抽出する方法、および SimpleTextExtractionStrategy メソッドでテキストを抽出する方法を示します。

Spire.PDF for.NET をインストールします

まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.PDF

特定の PDF ページからテキストを抽出する

Spire.PDF for .NET が提供する PdfDocument.Pages[index] プロパティは、特定のページの取得をサポートします。次に、PdfTextExtractor.ExtractText() メソッドを使用して、特定のページからテキストを抽出します。以下に詳細な操作手順を示します。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ファイルをロードします。
  • PdfDocument.Pages[index] プロパティで特定のページを取得します。
  • PdfTextExtractor オブジェクトを作成します。
  • PdfTextExtractOptions オブジェクトを作成し、IsExtractAllText プロパティを true に設定します。
  • PdfTextExtractor.ExtractText() メソッドを使用して、選択したページからテキストを抽出します。
  • 抽出したテキストを TXT ファイルに書き込みます。
  • C#
  • VB.NET
using System;
using System.IO;
using Spire.Pdf;
using Spire.Pdf.Texts;

namespace ExtractTextFromPage
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成する
            PdfDocument doc = new PdfDocument();

            //PDFファイルをロードする
            doc.LoadFromFile(@"sample.pdf");

            //2ページ目を取得する
            PdfPageBase page = doc.Pages[1];
      
            //PdfTextExtractotオブジェクトを作成する
            PdfTextExtractor textExtractor = new PdfTextExtractor(page);

            //PdfTextExtractOptionsオブジェクトを作成する
            PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();

            //isExtractAllTextをtrueに設定
            extractOptions.IsExtractAllText = true;

            //ページからテキストを抽出する
            string text = textExtractor.ExtractText(extractOptions);

            //TXTファイルに書き込み
            File.WriteAllText("Extracted.txt", text);
        }
    }
}
Imports System
Imports System.IO
Imports Spire.Pdf
Imports Spire.Pdf.Texts
 
Namespace ExtractTextFromPage
    Class Program
        Shared  Sub Main(ByVal args() As String)
            'PdfDocumentオブジェクトを作成する
            Dim doc As PdfDocument =  New PdfDocument() 
 
            'PDFファイルをロードする
            doc.LoadFromFile("sample.pdf")
 
            '2ページ目を取得する
            Dim page As PdfPageBase =  doc.Pages(1) 
 
            'PdfTextExtractotオブジェクトを作成する
            Dim textExtractor As PdfTextExtractor =  New PdfTextExtractor(page) 
 
            'PdfTextExtractOptionsオブジェクトを作成する
            Dim extractOptions As PdfTextExtractOptions =  New PdfTextExtractOptions() 
 
            'isExtractAllTextをtrueに設定
            extractOptions.IsExtractAllText = True
 
            'ページからテキストを抽出する
            Dim text As String =  textExtractor.ExtractText(extractOptions) 
 
            'TXTファイルに書き込み
            File.WriteAllText("Extracted.txt", text)
        End Sub
    End Class
End Namespace

C#/VB.NET:PDF ドキュメントからテキストを抽出する方法

特定の長方形領域からテキストを抽出する

長方形領域からテキストを抽出するには、ExtractArea プロパティで長方形領域を指定します。次に、PdfTextExtractor.ExtractText() メソッドを使用してテキストを抽出します。以下に詳細な操作手順を示します。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ファイルをロードします。
  • PdfDocument.Pages[index] プロパティで特定のページを取得します。
  • PdfTextExtractor オブジェクトを作成します。
  • PdfTextExtractOptions オブジェクトを作成し、ExtractArea プロパティで長方形領域を指定します。
  • PdfTextExtractor.ExtractText() メソッドを使用して長方形領域からテキストを抽出します。
  • 抽出したテキストを TXT ファイルに書き込みます。
  • C#
  • VB.NET
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.IO;
using System.Drawing;

namespace ExtractTextFromRectangleArea
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成する
            PdfDocument doc = new PdfDocument();

            //PDFファイルをロードする
            doc.LoadFromFile(@"sample.pdf");

            //2ページ目を取得する
            PdfPageBase page = doc.Pages[1];

            //PdfTextExtractorオブジェクトを作成する
            PdfTextExtractor textExtractor = new PdfTextExtractor(page);

            //PdfTextExtractOptionsオブジェクトを作成する
            PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();

            //長方形領域を指定する
            extractOptions.ExtractArea = new RectangleF(0, 0, 890, 190);

            //長方形からテキストを抽出する 
            string text = textExtractor.ExtractText(extractOptions);

            //TXTファイルに書き込み
            File.WriteAllText("Extracted.txt", text);
        }
    }
}
Imports Spire.Pdf
Imports Spire.Pdf.Texts
Imports System.IO
Imports System.Drawing
 
Namespace ExtractTextFromRectangleArea
    Class Program
        Shared  Sub Main(ByVal args() As String)
            'PdfDocumentオブジェクトを作成する
            Dim doc As PdfDocument =  New PdfDocument() 
 
            'PDFファイルをロードする
            doc.LoadFromFile("sample.pdf")
 
            '2ページ目を取得する
            Dim page As PdfPageBase =  doc.Pages(1) 
 
            'PdfTextExtractorオブジェクトを作成する
            Dim textExtractor As PdfTextExtractor =  New PdfTextExtractor(page) 
 
            'PdfTextExtractOptionsオブジェクトを作成する
            Dim extractOptions As PdfTextExtractOptions =  New PdfTextExtractOptions() 
 
            '長方形領域を指定する
            extractOptions.ExtractArea = New RectangleF(0, 0, 890, 190);
 
            '長方形からテキストを抽出する
            Dim text As String =  textExtractor.ExtractText(extractOptions) 
 
            'TXTファイルに書き込み
            File.WriteAllText("Extracted.txt", text)
        End Sub
    End Class
End Namespace

C#/VB.NET:PDF ドキュメントからテキストを抽出する方法

SimpleTextExtractionStrategy メソッドでテキストを抽出する

以上の方法は、行ごとにテキストを抽出するのに適しています。SimpleTextExtractionStrategy メソッドを使用してテキストを抽出すると、各文字列の Y 位置を追跡し、Y 位置が変化したときに出力に改行文字を挿入することができます。以下に詳細な手順を示します。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用してPDFファイルをロードします。
  • PdfDocument.Pages[index] プロパティで特定のページを取得します。
  • PdfTextExtractor オブジェクトを作成します。
  • PdfTextExtractOptions オブジェクトを作成し、IsSimpleExtraction プロパティを true に設定します。
  • PdfTextExtractor.ExtractText() メソッドを使用して、選択したページからテキストを抽出します。
  • 抽出したテキストを TXT ファイルに書き込みます。
  • C#
  • VB.NET
using System.IO;
using Spire.Pdf;
using Spire.Pdf.Texts;

namespace SimpleExtraction
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成する
            PdfDocument doc = new PdfDocument();

            //PDFファイルをロードする
            doc.LoadFromFile(@"sample.pdf");

            //最初のページを取得する
            PdfPageBase page = doc.Pages[0];

            //PdfTextExtractorオブジェクトを作成する
            PdfTextExtractor textExtractor = new PdfTextExtractor(page);

            //PdfTextExtractOptionsオブジェクトを作成する
            PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();

            //IsSimpleExtractionをtrueに設定する
            extractOptions.IsSimpleExtraction = true;

            //選択したページからテキストを抽出する 
            string text = textExtractor.ExtractText(extractOptions);

            //TXTファイルへの書き込み
            File.WriteAllText("Extracted.txt", text);
        }
    }
}
Imports System.IO
Imports Spire.Pdf
Imports Spire.Pdf.Texts
 
Namespace SimpleExtraction
    Class Program
        Shared  Sub Main(ByVal args() As String)
            'PdfDocumentオブジェクトを作成する
            Dim doc As PdfDocument =  New PdfDocument() 
 
            'PDFファイルをロードする
            doc.LoadFromFile("sample.pdf");
 
            '最初のページを取得する
            Dim page As PdfPageBase =  doc.Pages(0) 
 
            'PdfTextExtractorオブジェクトを作成する
            Dim textExtractor As PdfTextExtractor =  New PdfTextExtractor(page) 
 
            'PdfTextExtractOptionsオブジェクトを作成する
            Dim extractOptions As PdfTextExtractOptions =  New PdfTextExtractOptions() 
 
            'IsSimpleExtractionをtrueに設定する
            extractOptions.IsSimpleExtraction = True
 
            '選択したページからテキストを抽出する
            Dim text As String =  textExtractor.ExtractText(extractOptions) 
 
            'TXTファイルへの書き込み
            File.WriteAllText("Extracted.txt", text)
        End Sub
    End Class
End Namespace

C#/VB.NET:PDF ドキュメントからテキストを抽出する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in エキス/読み取り
Tagged under

PDF ドキュメントはもっとも一般的に使われていて、便利な形式です、そのため、PDF ドキュメントにテーブルを使用するのもよくある場合です。しかし PDF ドキュメントは安全性を考慮して、簡単に編集できないです、この時テーブルの内容を抽出したいなら、どうやって操作しますか?この記事で、Spire.PDF for .NET によって提供されるテーブルを抽出するクラスとメソッドを呼び出して、テーブルセルのテキストコンテンツを取得する方法をご紹介します。

環境構成

  • Visual Studio 2017
  • .net framework 4.6.1
  • PDF テストドキュメント
  • ライブラリー:Spire.PDF for .NET

Dll ファイルを参照する二つの方法

方法一、NuGet からダウンロードしてインストールします

1、「参照」を右クリックして、「NuGet パッケージの管理」を選択します。

C# を利用して PDF ドキュメントからテーブルを抽出する方法

2、「参照」を選択し、検索バーに「Spire.PDF」を入力してインストールします。

C# を利用して PDF ドキュメントからテーブルを抽出する方法

方法二、手動で参照を追加します

1、「参照」を右クリックして、「参照の追加」を選択します。

C# を利用して PDF ドキュメントからテーブルを抽出する方法

2、「参照」を選択し、「OK」ボタンをクリックします(事前に参照リストに追加する必要があります)

C# を利用して PDF ドキュメントからテーブルを抽出する方法

コードの表示:

  • C#
using Spire.Pdf;
using Spire.Pdf.Tables;
using Spire.Pdf.Utilities;
using System.IO;
using System.Text;

namespace ExtractTable
{
    class Program
    {
        static void Main(string[] args)
        {
            //PDFドキュメントをロードする
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("sample.pdf");
            StringBuilder builder = new StringBuilder();
            //テーブルを抽出する
            PdfTableExtractor Extractor = new PdfTableExtractor(pdf);
            PdfTable[] tableLists = null;
            for (int pageIndex = 0; pageIndex < pdf.Pages.Count; pageIndex++)
            {
                tableLists = extractor.ExtractTable(pageIndex);
                if (tableLists != null && tableLists.Length > 0)
                {
                    foreach (PdfTable table in tableLists)
                    {
                        int row = table.GetRowCount();
                        int column = table.GetColumnCount();
                        for (int i = 0; i < row; i++)
                        {
                            for (int j = 0; j < column; j++)
                            {
                                string text = table.GetText(i, j);
                                builder.Append(text + " ");
                            }
                            builder.Append("\r\n");
                        }
                    }
                }
            }
            //抽出されたテーブルの内容をtxtドキュメントに保存する
            File.WriteAllText("ExtractedTable.txt", builder.ToString());               
        }
    }
}

抽出した結果は以下のように:

C# を利用して PDF ドキュメントからテーブルを抽出する方法

C# を利用して PDF ドキュメントからテーブルを抽出する方法

以上になりました、最後までお読みいただき、誠にありがとうございます。

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30日間有効な一時ライセンスを取得してください。

Published in エキス/読み取り
Tagged under