透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
PDFファイルは、異なるプラットフォーム間でフォーマットを保持できるため、文書交換に広く使用されている形式です。 さまざまなアプリケーションにおいて、プログラムによってPDFファイルの内容を読み取ることは非常に価値があります。
この記事では、Xpdf
コマンドラインツールを使用して C++ で PDF ファイルからテキストを見る方法を学びます。 Xpdf
は、PDF ファイルを操作するためのコマンドラインユーティリティと C++ ライブラリのスイートを提供しており、テキストの抽出を含みます。 C++ PDF ビューアープログラムに Xpdf
を統合することで、PDF ファイルからテキストコンテンツを効率的に表示し、プログラムで処理することができます。
Xpdf
- C++ ライブラリとコマンドラインツールXpdf は、PDFファイルを扱うためのツールとライブラリを提供するオープンソースのソフトウェアスイートです。 コマンドラインユーティリティや、解析、レンダリング、印刷、テキスト抽出などのPDF関連機能を可能にするC++ライブラリが含まれています。 Xpdf のコマンドラインツールも、ターミナルから直接 PDF ファイルを表示する方法を提供しています。
Xpdfの主要なコンポーネントの1つはpdftotext
であり、主にPDFファイルからテキストコンテンツを抽出することで知られています。 しかし、pdftops
やpdfimages
といった他のツールと組み合わせて使用すると、Xpdf
はユーザーに異なる方法でPDFコンテンツを表示させることができます。 pdftotext
ツールは、PDFからテキスト情報を抽出してさらに処理や分析するのに役立ち、抽出するページを指定するオプションを提供します。
事前準備として、以下の要件を確保してください:
システムにインストールされたGCCまたはClangなどのC++コンパイラ。 この目的のためにCode::Blocks IDEを使用します。
Code::Blocksを開く: コンピュータ上でCode::Blocks IDEを起動します。
新しいプロジェクトを作成する: 上部メニューから「ファイル」をクリックし、ドロップダウンメニューから「新規」を選択します。 次に、サブメニューから「プロジェクト」をクリックしてください。
プロジェクトタイプを選択: 「テンプレートから新規作成」ウィンドウで「コンソールアプリケーション」を選択し、「Go」をクリックします。 「C/C++」言語を選択し、「次へ」をクリックします。
プロジェクトの詳細を入力してください: 「プロジェクトタイトル」フィールドに、プロジェクトの名前を入力してください(例:「PDFViewer」)。 プロジェクトファイルを保存する場所を選択し、「次へ」をクリックしてください。
まず、必要なヘッダーファイルを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# ライブラリ は、ユーザーがC#アプリケーション内でPDFファイルを簡単に表示することを可能にする強力な.NET C# PDFライブラリです。 Chromiumウェブブラウザーエンジンを活用して、IronPDFは画像、フォント、および複雑なフォーマットを含むPDFコンテンツを正確にレンダリングおよび表示します。 ユーザーフレンドリーなインターフェースと豊富な機能を備えたIronPDFをC#プロジェクトにシームレスに統合することで、ユーザーはPDFドキュメントを効率的かつインタラクティブに閲覧することができます。 IronPDFはレポート、請求書、その他のPDFコンテンツの表示など、C#で機能豊富なPDFビューアを作成するための堅牢なソリューションを提供します。
Visual StudioでIronPDF NuGetパッケージをインストールするには、次の手順に従ってください:
Visual Studioを開く: Visual Studioまたはお好みの他のIDEを起動します。
プロジェクトを作成または開く: 新しい C# プロジェクトを作成するか、IronPDF パッケージをインストールしたい既存のプロジェクトを開きます。
NuGet パッケージ マネージャーを開く: Visual Studio で、「ツール」 > 「NuGet パッケージ マネージャー」 > 「ソリューションの NuGet パッケージを管理」を選択します。 代わりに、ソリューションエクスプローラーをクリックして、「ソリューションの NuGet パッケージの管理」を選択してください。
IronPDFの検索: 「NuGetパッケージマネージャー」ウィンドウで「参照」タブをクリックし、検索バーに「IronPDF」と入力して検索してください。 または、NuGet IronPDF パッケージを訪れて、「IronPDF」の最新バージョンを直接ダウンロードしてください。
IronPDF パッケージを選択: 「IronPDF」パッケージを見つけ、プロジェクトに選択するためにクリックします。
IronPDF のインストール: 選択したパッケージをインストールするには、「インストール」ボタンをクリックしてください。
:ProductInstall
: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 ドキュメントをご覧ください。
この記事では、Xpdf コマンドラインツールを使用してC++でPDF文書の内容を抽出および表示する方法を学びました。 このアプローチにより、C++ アプリケーション内で抽出されたテキストをシームレスに処理および分析できます。
IronPDF ライセンス情報は開発目的で無料で使用できますが、生成されたPDFには透かしが入ります。 ウォーターマークを取り除き、商用目的でIronPDFを使用するには、ライセンスを購入してください。
商業目的でテストするための無料試用ライセンスも利用可能です。