PDFツール

C++でPDFファイルを表示する方法

公開済み 2023年8月2日
共有:

PDFファイルは、異なるプラットフォーム間でフォーマットを保持できるため、文書交換に広く使用されている形式です。 さまざまなアプリケーションにおいて、プログラムによってPDFファイルの内容を読み取ることは非常に価値があります。

この記事では、Xpdf コマンドラインツールを使用して C++ で PDF ファイルからテキストを表示する方法を学びます。 Xpdfは、PDFファイルのテキスト抽出を含む一連のコマンドラインユーティリティおよびC++ライブラリを提供します。 Xpdf を C++ PDF ビューワープログラムに統合することで、PDF ファイルからテキストコンテンツを効率的に表示し、プログラム内で処理することができます。

Xpdf - C++ライブラリおよびコマンドラインツール

Xpdfは、PDFファイルを扱うためのツールとライブラリを提供するオープンソースのソフトウェアスイートです。 コマンドラインユーティリティや、解析、レンダリング、印刷、テキスト抽出などのPDF関連機能を可能にするC++ライブラリが含まれています。 Xpdf のコマンドラインツールも、ターミナルから直接 PDF ファイルを表示する方法を提供しています。

Xpdf の重要なコンポーネントの一つに pdftotext があります。これは主に PDF ファイルからテキストコンテンツを抽出するために知られています。 ただし、他のツールである pdftopspdfimages と組み合わせて使用することで、Xpdf はユーザーがPDFコンテンツを異なる方法で表示することを可能にします。 pdftotext`ツールは、さらなる処理や分析のためにPDFからテキスト情報を抽出するのに有用であり、テキストを抽出するページを指定するオプションを提供します。

前提条件

事前準備として、以下の要件を確保してください:

  1. システムにインストールされたGCCまたはClangなどのC++コンパイラ。 次の内容を使用しますCode::Blocks IDEこのため

  2. Xpdfコマンドラインツールをインストールし、コマンドラインからアクセスできること。Xpdfをダウンロードをインストールし、あなたの環境に適したバージョンをインストールしてください。 その後、Xpdfのbinディレクトリをシステム環境変数のパスに設定し、ファイルシステム上の任意の場所からアクセスできるようにします。

PDFビューアープロジェクトの作成

  1. コード::ブロックスを開く: コンピュータでCode::Blocks IDEを起動します。

  2. 新しいプロジェクトを作成する: 上部メニューの「ファイル」をクリックし、ドロップダウンメニューから「新規作成」を選択します。 次に、サブメニューから「プロジェクト」をクリックしてください。

  3. プロジェクトタイプの選択: 「テンプレートから新規作成」ウィンドウで、「コンソールアプリケーション」を選択し、「Go」をクリックします。 「C/C++」言語を選択し、「次へ」をクリックします。

  4. プロジェクトの詳細を入力: 「プロジェクトタイトル」フィールドに、プロジェクトの名前を入力してください(例:PDFビューア). プロジェクトファイルを保存する場所を選択し、「次へ」をクリックしてください。

  5. コンパイラの選択: プロジェクトで使用したいコンパイラを選択してください。 デフォルトでは、Code::Blocksはシステム上で使用可能なコンパイラを自動的に検出したはずです。 そうでない場合は、リストから適切なコンパイラを選択し、「完了」をクリックしてください。

C++でPDFのテキストを表示する手順

必要なヘッダーを含んでください

まず、必要なヘッダーファイルを main.cpp ファイルに追加しましょう:

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
C++

入力パスと出力パスを設定

string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
C++

main 関数では、2つの文字列 pdfPathoutputFilePath を宣言します。 pdfPath は入力PDFファイルのパスを格納し、outputFilePath は抽出されたテキストがプレーンテキストファイルとして保存されるパスを格納します。

入力ファイルは以下の通りです:

C++でPDFファイルを表示する方法: 図1

pdftotext コマンドを実行する

string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
C++

ここでは、pdfPathoutputFilePath変数を使用して、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; 
}
C++

次の変数 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;
}
C++

上記のサンプルコードでは、outputFileを開きます。(pdftotextで生成されたテキストファイル)行ごとに内容を読み込み、textContent 文字列に保存する。 最後に、ファイルを閉じて、抽出されたテキストコンテンツをコンソールに表示します。

出力ファイルの削除

編集可能な出力テキストファイルが不要な場合やディスクスペースを空けたい場合は、プログラムの最後に、メイン関数を終了する前に、次のコマンドを使用して削除してください:

remove(outputFilePath.c_str());
remove(outputFilePath.c_str());
C++

プログラムのコンパイルと実行

「Ctrl+F9」ショートカットキーを使用してコードをビルドします。 コンパイルが成功すると、実行ファイルを実行することで指定されたPDFドキュメントからテキストコンテンツを抽出し、コンソールに表示します。 出力は以下の通りです:

C++でPDFファイルを表示する方法: 図2

C#でPDFファイルを表示

IronPDF .NET C#ライブラリ強力な .NET C# PDF ライブラリであり、ユーザーが C# アプリケーション内で簡単に PDF ファイルを表示できるようにします。 Chromiumウェブブラウザーエンジンを活用して、IronPDFは画像、フォント、および複雑なフォーマットを含むPDFコンテンツを正確にレンダリングおよび表示します。 ユーザーフレンドリーなインターフェースと豊富な機能を備えたIronPDFをC#プロジェクトにシームレスに統合することで、ユーザーはPDFドキュメントを効率的かつインタラクティブに閲覧することができます。 IronPDFはレポート、請求書、その他のPDFコンテンツの表示など、C#で機能豊富なPDFビューアを作成するための堅牢なソリューションを提供します。

Visual StudioでIronPDF NuGetパッケージをインストールするには、次の手順に従ってください:

  1. Visual Studioを開く: Visual Studio またはお好みの他のIDEを起動します。

  2. プロジェクトの作成または開く: IronPDF パッケージをインストールする新しい C# プロジェクトを作成するか、既存のプロジェクトを開きます。

  3. NuGet パッケージ マネージャーを開く: Visual Studio で、"ツール" > "NuGet パッケージ マネージャー" > "ソリューションの NuGet パッケージの管理" に移動します。 代わりに、ソリューションエクスプローラーをクリックして、「ソリューションの NuGet パッケージの管理」を選択してください。

    1. 「IronPDF」の検索:
      「NuGet パッケージ マネージャー」ウィンドウで「参照」タブをクリックし、検索バーで「IronPDF」を検索します。 オルタナティブに、次のページをご覧くださいNuGet IronPDFパッケージそして「IronPDF」の最新バージョンを直接ダウンロードしてください。
  4. IronPDFパッケージを選択: "IronPDF"パッケージを見つけて、プロジェクトに選択するためにクリックしてください。

  5. IronPDF をインストール: 選択したパッケージをインストールするには、「インストール」ボタンをクリックします。

  6. ただし、次のコマンドを使用して、NuGetパッケージマネージャーコンソールを使用して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
VB   C#

IronPDFに関する詳細な情報は、以下のウェブサイトをご覧ください:IronPDF ドキュメント.

結論

この記事では、Xpdf コマンドラインツールを使用してC++でPDF文書の内容を抽出および表示する方法を学びました。 このアプローチにより、C++ アプリケーション内で抽出されたテキストをシームレスに処理および分析できます。

IronPDFライセンス情報開発目的で無料で使用できますが、PDFには透かしが入ります。 ウォーターマークを取り除き、商用目的でIronPDFを使用するには、ライセンスを購入してください。

A無料トライアルライセンス商業目的でのテストも利用可能です。

< 以前
NodeJSでPDFを画像に変換する方法
次へ >
C++でPDFファイルを作成する方法