ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
PDF (ポータブルドキュメントフォーマット) ファイルはドキュメント交換で広く使用されており、その内容をプログラムで読み取る能力はさまざまなアプリケーションにおいて貴重です。 以下のライブラリがC++でPDFを読み取るために利用可能です:Poppler、Mupdf、Haru free PDF library、Xpdf、Qpdf。
この記事では、Xpdfコマンドラインツールを使用してC++でPDFファイルを読み取る方法のみを探ります。 Xpdfは、PDFファイルのテキスト内容を抽出するなど、PDFファイルを操作するためのさまざまなユーティリティを提供しています。 XpdfをC++プログラムに統合することで、PDFファイルからテキストを抽出し、プログラム的に処理することができます。
Xpdf は、PDFを操作するためのツールとライブラリのコレクションを提供するオープンソースのソフトウェアスイートです。 (ポータブルドキュメントフォーマット) ファイル Xpdfスイートには、PDF関連の機能(パース、レンダリング、テキスト抽出など)を可能にするコマンドラインユーティリティやC++ライブラリが含まれています。 Xpdf の主なコンポーネントには次のものが含まれます: pdfimages, pdftops, pdfinfo, pdfimages. ここでは、PDF ドキュメントを読み取るために pdftotext
を使用します。
pdftotext
は、PDFファイルからテキストコンテンツを抽出し、それをプレーンテキストとして出力するコマンドラインツールです。 このツールは、さらなる処理や分析のためにPDFからテキスト情報を抽出する際に特に役立ちます。 オプションを使用して、テキストを抽出するページまたはページを指定することもできます。
テキストを抽出するためのPDFリーダープロジェクトを作成するには、次の前提条件を整える必要があります:
システムにインストールされたGCCまたはClangなどのC++コンパイラ。 C++プログラミングをサポートする任意のIDEを使用できます。
まず、main.cppファイルの上部に必要なヘッダーファイルを追加しましょう:
#include <cstdlib>
#include <iostream>
#include <fstream>
C++のコードを書いて、Xpdfコマンドラインツールを呼び出し、PDFドキュメントからテキストコンテンツを抽出しましょう。 以下のinput.pdfファイルを使用します。
コード例は次のようになります:
// Include C library
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
int main() {
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
if (status == 0) {
cout << "Text extraction successful." << endl;
} else {
cout << "Text extraction failed." << endl;
return 1;
}
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 document:" << endl;
cout << textContent << endl;
} else {
cout << "Failed to open output file." << endl;
return 1;
}
return 0;
}
上記のコードでは、入力PDFファイルへのパスを保持するため pdfPath
変数を定義しています。実際の入力PDFドキュメントの適切なパスに置き換えてください。
また、Xpdfによって生成される出力テキストファイルのパスを保持するために、outputFilePath
変数を定義します。
コードは、system
関数を使用して pdftotext
コマンドを実行し、入力PDFファイルのパスと出力テキストファイルのパスをコマンドライン引数として渡します。 status
変数はコマンドの終了ステータスをキャプチャします。
pdftotext
が正常に実行された場合 (ステータスが0で示される)出力テキストファイルを ifstream
を使って開きます。 次に、テキストコンテンツを行ごとに読み取り、それを textContent
文字列に保存します。
最後に、生成された出力ファイルから抽出されたテキストコンテンツをコンソールに出力します。 プログラムの最後に、編集可能な出力テキストファイルが不要であったり、ディスクスペースを解放したい場合は、メイン関数を終了する前に以下のコマンドを使用してこれを削除してください:
remove(outputFilePath.c_str());
C++コードをコンパイルして実行ファイルを実行してください。 pdftotext
が環境変数システムパスに追加されると、そのコマンドは正常に実行されます。 プログラムは出力テキストファイルを生成し、PDFドキュメントからテキストコンテンツを抽出します。 抽出されたテキストは、コンソールに表示されます。
IronPDF は、PDFドキュメントを操作するための強力な機能を提供する人気のあるC# PDFライブラリです。 これは開発者がプログラムを通じてPDFファイルを作成、編集、変更、および読み取りを行うことを可能にします。
IronPDFライブラリを使用してPDFドキュメントを読むことは、簡単なプロセスです。 ライブラリーは、開発者がPDFページからテキスト、画像、メタデータ、その他のデータを抽出するためのさまざまなメソッドとプロパティを提供します。 抽出された情報は、アプリケーション内でさらに処理、分析、または表示するために使用できます。
次のコード例は PDFファイルを読み取る IronPDFを使用してフォーマット:
//Rendering PDF documents to Images or Thumbnails
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);
//...
}
PDFドキュメントの読み取り方法に関する詳細情報については、リンクをご覧ください これ.
この記事では、Xpdfコマンドラインツールを使用してC++でPDFドキュメントの内容を読み取る方法を学びました。 XpdfをC++プログラムに統合することで、PDFファイルからテキストコンテンツをプログラム的に1秒以内に抽出できます。 このアプローチにより、C++アプリケーション内で抽出されたテキストの処理および分析が可能になります。
IronPDF は、PDFファイルの読み取りと操作を容易にする強力なC#ライブラリです。 その広範な機能、使いやすさ、信頼性の高いレンダリングエンジンにより、C#プロジェクトでPDFドキュメントを扱う開発者の間で人気の選択肢となっています。
IronPDFは開発用に無料で提供されており、 無料試用 商用利用のために。 これに加えて、次の点になる必要があります。 ライセンス済み 商業目的で。
9つの .NET API製品 オフィス文書用