ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
PDFファイルは、異なるプラットフォーム間でフォーマットを保持できるため、文書交換に広く使用されている形式です。 さまざまなアプリケーションにおいて、プログラムによってPDFファイルの内容を読み取ることは非常に価値があります。
この記事では、Xpdf
コマンドラインツールを使用して C++ で PDF ファイルからテキストを表示する方法を学びます。 Xpdf
は、PDFファイルのテキスト抽出を含む一連のコマンドラインユーティリティおよびC++ライブラリを提供します。 Xpdf を C++ PDF ビューワープログラムに統合することで、PDF ファイルからテキストコンテンツを効率的に表示し、プログラム内で処理することができます。
Xpdf
- C++ライブラリおよびコマンドラインツールXpdfは、PDFファイルを扱うためのツールとライブラリを提供するオープンソースのソフトウェアスイートです。 コマンドラインユーティリティや、解析、レンダリング、印刷、テキスト抽出などのPDF関連機能を可能にするC++ライブラリが含まれています。 Xpdf のコマンドラインツールも、ターミナルから直接 PDF ファイルを表示する方法を提供しています。
Xpdf の重要なコンポーネントの一つに pdftotext
があります。これは主に PDF ファイルからテキストコンテンツを抽出するために知られています。 ただし、他のツールである pdftops
や pdfimages
と組み合わせて使用することで、Xpdf
はユーザーがPDFコンテンツを異なる方法で表示することを可能にします。 pdftotext`ツールは、さらなる処理や分析のためにPDFからテキスト情報を抽出するのに有用であり、テキストを抽出するページを指定するオプションを提供します。
事前準備として、以下の要件を確保してください:
システムにインストールされたGCCまたはClangなどのC++コンパイラ。 次の内容を使用しますCode::Blocks IDEこのため
コード::ブロックスを開く: コンピュータでCode::Blocks IDEを起動します。
新しいプロジェクトを作成する: 上部メニューの「ファイル」をクリックし、ドロップダウンメニューから「新規作成」を選択します。 次に、サブメニューから「プロジェクト」をクリックしてください。
プロジェクトタイプの選択: 「テンプレートから新規作成」ウィンドウで、「コンソールアプリケーション」を選択し、「Go」をクリックします。 「C/C++」言語を選択し、「次へ」をクリックします。
プロジェクトの詳細を入力: 「プロジェクトタイトル」フィールドに、プロジェクトの名前を入力してください(例:PDFビューア). プロジェクトファイルを保存する場所を選択し、「次へ」をクリックしてください。
まず、必要なヘッダーファイルを main.cpp ファイルに追加しましょう:
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
main
関数では、2つの文字列 pdfPath
と outputFilePath
を宣言します。 pdfPath
は入力PDFファイルのパスを格納し、outputFilePath
は抽出されたテキストがプレーンテキストファイルとして保存されるパスを格納します。
入力ファイルは以下の通りです:
pdftotext
コマンドを実行するstring command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
ここでは、pdfPath
とoutputFilePath
変数を使用して、PDFファイルを開いて内容を表示するためにpdftotext
コマンドを構築しました。 その後、コマンドを実行するために system
関数が呼び出され、その戻り値が status
変数に格納されます。
テキスト抽出のステータスを確認
if (status == 0)
{
cout << "Text extraction successful." << endl;
} else
{
cout << "Text extraction failed." << endl;
}
if (status == 0)
{
cout << "Text extraction successful." << endl;
} else
{
cout << "Text extraction failed." << endl;
}
次の変数 status
を確認して、pdftotext
コマンドが正常に実行されたかどうかを確認します。 status
が 0 と等しい場合、それはテキスト抽出が成功したことを意味し、成功メッセージを表示します。 status
がゼロ以外の場合、それはエラーを示し、エラーメッセージを表示します。
ifstream outputFile(outputFilePath);
if (outputFile.is_open()) {
string textContent;
string line;
while (getline(outputFile, line)) {
textContent += line + "\n";
}
outputFile.close();
cout << "Text content extracted from PDF:" << endl;
cout << textContent << endl;
} else {
cout << "Failed to open output file." << endl;
}
ifstream outputFile(outputFilePath);
if (outputFile.is_open()) {
string textContent;
string line;
while (getline(outputFile, line)) {
textContent += line + "\n";
}
outputFile.close();
cout << "Text content extracted from PDF:" << endl;
cout << textContent << endl;
} else {
cout << "Failed to open output file." << endl;
}
上記のサンプルコードでは、outputFile
を開きます。(pdftotext
で生成されたテキストファイル)行ごとに内容を読み込み、textContent
文字列に保存する。 最後に、ファイルを閉じて、抽出されたテキストコンテンツをコンソールに表示します。
編集可能な出力テキストファイルが不要な場合やディスクスペースを空けたい場合は、プログラムの最後に、メイン関数を終了する前に、次のコマンドを使用して削除してください:
remove(outputFilePath.c_str());
remove(outputFilePath.c_str());
「Ctrl+F9」ショートカットキーを使用してコードをビルドします。 コンパイルが成功すると、実行ファイルを実行することで指定されたPDFドキュメントからテキストコンテンツを抽出し、コンソールに表示します。 出力は以下の通りです:
IronPDF .NET C#ライブラリ強力な .NET C# PDF ライブラリであり、ユーザーが C# アプリケーション内で簡単に PDF ファイルを表示できるようにします。 Chromiumウェブブラウザーエンジンを活用して、IronPDFは画像、フォント、および複雑なフォーマットを含むPDFコンテンツを正確にレンダリングおよび表示します。 ユーザーフレンドリーなインターフェースと豊富な機能を備えたIronPDFをC#プロジェクトにシームレスに統合することで、ユーザーはPDFドキュメントを効率的かつインタラクティブに閲覧することができます。 IronPDFはレポート、請求書、その他のPDFコンテンツの表示など、C#で機能豊富なPDFビューアを作成するための堅牢なソリューションを提供します。
Visual StudioでIronPDF NuGetパッケージをインストールするには、次の手順に従ってください:
Visual Studioを開く: Visual Studio またはお好みの他のIDEを起動します。
プロジェクトの作成または開く: IronPDF パッケージをインストールする新しい C# プロジェクトを作成するか、既存のプロジェクトを開きます。
NuGet パッケージ マネージャーを開く: Visual Studio で、"ツール" > "NuGet パッケージ マネージャー" > "ソリューションの NuGet パッケージの管理" に移動します。 代わりに、ソリューションエクスプローラーをクリックして、「ソリューションの NuGet パッケージの管理」を選択してください。
IronPDFパッケージを選択: "IronPDF"パッケージを見つけて、プロジェクトに選択するためにクリックしてください。
IronPDF をインストール: 選択したパッケージをインストールするには、「インストール」ボタンをクリックします。
:ProductInstall
IronPDFを使用することで、以下のような作業を行うことができます。PDF文書からテキストと画像を抽出コンソールに表示して閲覧できるようにします。 以下のコードはこのタスクを達成するのに役立ちます:
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Extracting Image and Text content from Pdf Documents
// open a 128-bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Get all text to put in a search index
string text = pdf.ExtractAllText();
// Get all Images
var allImages = pdf.ExtractAllImages();
// Or even find the precise text and images for each page in the document
for (var index = 0 ; index < pdf.PageCount ; index++)
{
int pageNumber = index + 1;
text = pdf.ExtractTextFromPage(index);
List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
//...
}
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Extracting Image and Text content from Pdf Documents
// open a 128-bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Get all text to put in a search index
string text = pdf.ExtractAllText();
// Get all Images
var allImages = pdf.ExtractAllImages();
// Or even find the precise text and images for each page in the document
for (var index = 0 ; index < pdf.PageCount ; index++)
{
int pageNumber = index + 1;
text = pdf.ExtractTextFromPage(index);
List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
//...
}
Imports IronPdf
Imports IronSoftware.Drawing
Imports System.Collections.Generic
' Extracting Image and Text content from Pdf Documents
' open a 128-bit encrypted PDF
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")
' Get all text to put in a search index
Private text As String = pdf.ExtractAllText()
' Get all Images
Private allImages = pdf.ExtractAllImages()
' Or even find the precise text and images for each page in the document
For index = 0 To pdf.PageCount - 1
Dim pageNumber As Integer = index + 1
text = pdf.ExtractTextFromPage(index)
Dim images As List(Of AnyBitmap) = pdf.ExtractBitmapsFromPage(index)
'...
Next index
IronPDFに関する詳細な情報は、以下のウェブサイトをご覧ください:IronPDF ドキュメント.
この記事では、Xpdf コマンドラインツールを使用してC++でPDF文書の内容を抽出および表示する方法を学びました。 このアプローチにより、C++ アプリケーション内で抽出されたテキストをシームレスに処理および分析できます。
IronPDFライセンス情報開発目的で無料で使用できますが、PDFには透かしが入ります。 ウォーターマークを取り除き、商用目的でIronPDFを使用するには、ライセンスを購入してください。
A無料トライアルライセンス商業目的でのテストも利用可能です。
9つの .NET API製品 オフィス文書用