チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
PDF ドキュメントには、情報を分かりやすく伝えるために画像がよく使用されます。場合によっては、PDF ドキュメントから画像を抽出する必要があります。例えば、プレゼンテーションや他のドキュメントで、PDF レポートのチャート画像を使用したい場合です。本記事では、C# で Spire.PDF for .NET を使用して PDF から画像を抽出する方法を紹介します。
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
PdfPageBase.ExtractImages() メソッドを使用すると、1ページ内のすべての画像を抽出できます。開発者は、PDF ドキュメント内のすべてのページを繰り返し処理し、このメソッドを使用して画像を抽出することができます。詳細な手順は以下の通りです:
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++;
}
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
PDF ドキュメントのページレイアウトは固定されており、ユーザーによる変更は許可されていません。PDF コンテンツを再編集するには、PDF を Word に変換するか、PDF からテキストを抽出します。この記事では、Spire.PDF for .NET を使用して、C# および VB.NET でプログラムによって特定の PDF ページからテキストを抽出する方法、特定の長方形領域からテキストを抽出する方法、および SimpleTextExtractionStrategy メソッドでテキストを抽出する方法を示します。
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
Spire.PDF for .NET が提供する PdfDocument.Pages[index] プロパティは、特定のページの取得をサポートします。次に、PdfTextExtractor.ExtractText() メソッドを使用して、特定のページからテキストを抽出します。以下に詳細な操作手順を示します。
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
長方形領域からテキストを抽出するには、ExtractArea プロパティで長方形領域を指定します。次に、PdfTextExtractor.ExtractText() メソッドを使用してテキストを抽出します。以下に詳細な操作手順を示します。
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
以上の方法は、行ごとにテキストを抽出するのに適しています。SimpleTextExtractionStrategy メソッドを使用してテキストを抽出すると、各文字列の Y 位置を追跡し、Y 位置が変化したときに出力に改行文字を挿入することができます。以下に詳細な手順を示します。
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
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
PDF ドキュメントはもっとも一般的に使われていて、便利な形式です、そのため、PDF ドキュメントにテーブルを使用するのもよくある場合です。しかし PDF ドキュメントは安全性を考慮して、簡単に編集できないです、この時テーブルの内容を抽出したいなら、どうやって操作しますか?この記事で、Spire.PDF for .NET によって提供されるテーブルを抽出するクラスとメソッドを呼び出して、テーブルセルのテキストコンテンツを取得する方法をご紹介します。
環境構成
方法一、NuGet からダウンロードしてインストールします
1、「参照」を右クリックして、「NuGet パッケージの管理」を選択します。
2、「参照」を選択し、検索バーに「Spire.PDF」を入力してインストールします。
方法二、手動で参照を追加します
1、「参照」を右クリックして、「参照の追加」を選択します。
2、「参照」を選択し、「OK」ボタンをクリックします(事前に参照リストに追加する必要があります)
コードの表示:
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());
}
}
}
抽出した結果は以下のように:
以上になりました、最後までお読みいただき、誠にありがとうございます。
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30日間有効な一時ライセンスを取得してください。