トラスト・ソフトウェア・システム
トラスト・ソフトウェア・システム

PDF Prep Tool Suite テキスト抽出C++サンプル

「PDF Prep Tool Suite」ソフトは、PDF文書を作成、編集、分割、統合するためのAPI(ライブラリ)です。

PDF文書にテキスト・コンテント、画像、ベクタ・グラフィックスを追加します。 さらに、インターラクティブな要素(ハイパー・リンク、フォーム・フィールド、ブックマークなど)を追加し処理します。

PDF文書は、新たに生成することができます。プロパティ(位置、フォント、サイズ、色など)は自由に選択できます。 作成されたPDF文書には、暗号化やWebの表示用に最適化が施されます。

機能概要はこちらです。
無償評価版(リンク先は英語)はこちらです。 ダウンロード手順
他のC++サンプルC#サンプルを公開しています。
PDF Prep Tool Suite ソフト 購入(価格)

無償評価版のダウンロードとインストール

 ライブラリ(評価版API)は無償でダウンロード(試用)できますので、PDF Prep Tool Suiteダウンロード手順を参照してダウンロードください。
 ファイルをダウンロードしてから、インストールもしくは適当なフォルダーに解凍します。以下のようなフォルダーができあがりますので、適宜ご利用ください。
binライブラリやライセンスマネージャーなど
doc使用説明書やjavadocなど
includeC/C++用のヘッダー(.h)ファイル
jarPrepTool.jar、I2PA.jar(Javaのラッパー)
libC/C++用のlibファイル
ご注意ください:サンプル(英語版)はPDF Tools AG社のページからダウンロードできますが、それを動作させるためにはコードの変更が必要な場合があります。
以下のサンプルは、正しい動作を確認しています。ソースコードはこちらからダウンロードできます。

無償評価版と共にダウンロードしたライセンスキーをbin/LicenseManager.exeを使って登録してください。 ライセンスキーの登録方法はこちらです。

サンプルの実行前に、bin/pdprep32.dll、bin/Img2PdfAPI.dllをサンプル実行イメージと同じフォルダーにコピーしてください。文字化けする場合は、bin/pdcjk.dllも同様にコピーしてください。
COMインターフェースで利用する場合は、bin/pdprep32.dll、bin/Img2PdfAPI.dllをregsvr32.exeを使って登録してください。なお、64ビット版Windowsの場合は、WOW64/regsvr32.exeを使って登録してください。

PDFからテキストを抽出するC++サンプルと解説

 PDF文書解析して、すべてのテキストをページ番号とフォントや位置情報を含めて抽出します。
#include <stdio.h>
#include <locale.h>
#include "pdprep.h"

#pragma comment(lib,"pdprep32.lib")

int main(int argc, char* argv[])
{
    PTError         TheError;
    InputHandle     idoc;
    PTTokenInfo     m;
    PDBSTR          text;
    VBSTR           font;
    int             iCurPage;

    // 引数チェック
    if(argc < 2){
        printf("usage: gettext PDF-InputFile\n");
        return 1;
    }

    // 初期化
    PTInitialize();

    // 入力ファイル オープン
    idoc = IDocOpen(argv[1], &TheError);
    if(TheError != PTSuccess){
        printf("could not read input file %s\n", argv[1]);
        return 1;
    }

    // すべてのテキストを順にチェック
    PTInitToken(&m);
    text.len = 0;
    text.buf = NULL;
    iCurPage = 0;
    printf("** Page %i **\n\n", ++iCurPage);
    while(TheError == PTSuccess){
        IDocBreakOnBlank(idoc, 1);
        TheError = IDocReadTextU(idoc, &text, &m, &font);
        if(TheError == PTSuccess){
           // 空の文字列が戻った場合に文書の終了とする
            if (m.X == 0 && m.Y == 0 && m.W == 0 && m.H == 0)
                printf("\n** Page %i **\n\n", ++iCurPage);
            else
                printf("(%f / %f) %s  ", m.X, m.Y, font);
                wprintf(L"%s\n", text.buf);
        }
    }
    PTFreeToken(&m);
    PTFreePDBSTR(text);
    return 0;
}
PTInitialize 初期化
IDocOpen( ) 入力PDFのハンドルを取得
この手順では、開いたPDFは独立に存在しています。引数に以下の値を設定します。
第一引数入力PDFのファイル(パス)名
第二引数エラーコードを格納するインスタンス
PTInitToken( ) トークン インスタンスを初期化
IDocReadTextU( ) 現在のページからトークンを取得する
繰り返しコールすることですべてのトークンを取り出せます。取り出すデータは、文字列の位置と大きさ及びフォント情報です。引数に以下の値を設定します。
第一引数入力PDFのハンドル
第二引数文字列
第三引数トークン情報
第四引数フォント情報

サンプルコード

 C++ PDF Prep Tool Suite サンプル (MS Visual Studio 2008 Project) PtsCppSamples.zip

ご質問、お問い合わせ

 メールで support@TrustSS.co.jp 宛てにお送りください。
または、質問のページからお送りいただくようお願いします。ご要望も承っております。(匿名で送れます。)

(記載の会社名および製品名は、各社の登録商標および商標です。)
PDF製品 C++サンプル
PDF Security
PDF Validator
PDF to PDF/A Converter
PDF to Image Converter
PDF Imager-LP
Image to PDF Converter
PDF Printer
PDF Viewer
PDF Viewer-L
PDF Prep Tool Suite
PDF Optimization
PDF Command Line Suite
PDF Extract
PDF Easy Parse
株)トラスト・ソフトウェア・システム
暗号化・電子署名・タイムスタンプ ライブラリ作成します。
お問い合わせください。