• ベストアンサー

PDFファイルの文字を取得するプログラム

http://kanpoo.jp/ のサイトで、検索すると、PDFの内容が検索できます。 検索できるということは、PDFの文字を取得できるからだと思うのです。 PDFの文字をデータベースに読み込みプログラムを作りたいです。 とりあえず、PDFの文字を取得するプログラムを作りたいのですが、 作り方が全くわかりません。 どの言語をつかえばいいのか? どの関数、ライブラリ?をつかえばいいのか? 何度ググっても、PDFの文字を取得するサイトがみつけられないので、 偉い人教えてください。

  • mcurry
  • お礼率73% (167/228)

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.2

標準でそういう機能を持っている言語はあまりないと思います。そのためのライブラリなどを追加して処理することになるでしょう。例えば、Javaの場合、Apache Software Foundationから「PDFBox」というライブラリが出ています。これを利用することで、PDFからテキストを取得できます。 http://pdfbox.apache.org/

mcurry
質問者

お礼

ご回答ありがとうございました。 自分には敷居が高すぎたようです。

その他の回答 (2)

  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.3

わざわざ作らなくたって テキストを引っ張り出すツールを呼び出せばいい xpdfのpdftotextとかが使えるし, namazuのようにpdfも全文検索できるものが どうやってるのかをみればいい (namazuのインデクサはxpdfを使ってたような).

mcurry
質問者

お礼

ご回答ありがとうございました。 pdftotextを使用してみましたが、日本語がうまく変換できませんでした。

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.1

開発やったことない方なら、たしかにたどれないかもしれませんね。 通常、 SDK OpenSouce オープンソース API のキーワードを、アプリ名とか、ファイル形式について検索します。有償であったり、無償であったりします。 オープンソースと言うのは無償で、プログラムの内容を公開し、使ってもらうプログラムの事をさします。 http://www.google.co.jp/search?hl=ja&q=Acrobat+SDK&lr=lang_ja http://www.google.co.jp/search?hl=ja&q=PDF+%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9&lr=lang_ja とかですね。その中から、 http://www.infoq.com/jp/news/2007/12/sun-releases-lgpl-pdf-renderer http://journal.mycom.co.jp/articles/2009/02/20/pdfcreator/index.html http://kengo.preston-net.com/archives/002506.shtml http://kb2.adobe.com/jp/cps/255/2558.html これらとは別に、企業同士で提携すると、デベロッパー版が渡されます。それがSDKとか、フレームワークとか、API、SPIとかよばれるものです。 開発環境は、当然それらの物に依存するので、何かとは特定できませんが、昔からあるものなら、CがVBが多いです。 最近のものなら、C++、C#、Javaが多いです。 やる気があるひとなら、また許可されている場合は、別言語に書き換える方もいますが、Javaだと以外にそんあことしなくても、C++から使えます。 なお、COM(DCOM)として提供されていれば、VBS、VBA(つまりエクセルから使える)、JScriptなどのオブジェクト指向スクリプト言語が使えます。また、そのように開発している方もおおいです。

mcurry
質問者

お礼

ご回答ありがとうございました。 自分には敷居が高すぎました。

関連するQ&A

  • ブラウザなどで入力された文字列を取得する方法

    ブラウザやワードのようなアプリケーションで入力された文字列(特に漢字)をプログラムで取得する方法を探しています。 プログラム内で用意したテキストボックスに入力された文字列を取得するサンプルコードはそこかしこで見かけるのですが、 他のアプリケーションで入力した文字列を取得するような方法がどうしてもわかりません 文字列を取得するImeAPIの中のImmGetCompositionStringの存在や アクティブウインドウのハンドルを取得するGetActiveWindowの存在は知っているのですが この2つを組み合わせて出来るものなのでしょうか? ほかにも「フック」を使うという方法も考えましたがIMEで入力が確定した文字列を 「フック」してくることは可能なのでしょうか? 「これなら取得できる」といった良い方法があれば教えていただきたいです。 長文になりましたがなにとぞよろしくお願いいたします。 開発環境:windows7 64bit 開発言語:できればC言語 ↓テキストボックスに入力された文字列を取得するサンプルコード↓ http://shinshu.fm/MHz/95.83/archives/0000025041.html#comments http://www.atmarkit.co.jp/fdotnet/dotnettips/875imeyomi/imeyomi.html ↓IME APIの関数リスト↓ http://msdn.microsoft.com/ja-jp/library/cc422019.aspx

  • 画像に文字をプログラムで埋め込む

    画像処理はしたことがなくこの方面の知識が無いです。 JPGファイルの隅に、数文字をプログラムで埋め込みたいです。2、3百枚くらいなので、1枚ずつ手作業というのは避けたいです。 どういうライブラリを使うのが良いでしょうか? 言語はRuby/Pythonくらいだとありがたいです。 もしプラットフォーム依存のライブラリの場合はWIndowsかLinuxで。 プログラムを自分で書くのではなく、そういう機能のあるWindowsアプリがあるのならそれでもいいです。 検索しても、ファイル名のリネームのことだったり、手作業のことだったりで、ノイズが多くてちょっと探せません。

  • 右から何文字目にあるか文字位置を取得するには?

    関数で検索文字が右から何文字目にあるか文字位置を取得するには? FIND関数は左から検索文字が何文字目にあるかを取得しますよね。 右から取得するための関数は用意されてますか? vbaで言うと、StrReverse関数みたいなのはワークシート関数にはないのですか?

  • web上のhtmlファイルから文字データを取得するには

    c言語を勉強中の初心者です、 自分が今作りたいプログラムはweb上のhtmlにある文字データを取得し、 整理し、プログラム内で表示するような物ですが、どの本を読んでもweb上からデータを取得する方法が紹介されていません、(見つけられないだけかもしれませんが…) 例えば、yahooの株情報からデータを取得するソフトなんてのはよくありますよね? こういった方法は何か凄く特殊なのでしょうか? 一般的にこういった事をプログラミング用語で何と呼ぶのかすらわからないので、検索で調べようがありません… ただweb上のhtmlファイルから文字列を取得したいだけです、 コードの例などを紹介している書籍やwebページを教えてください よろしくお願いします。

  • ノーツから.pdfファイルがプログラムを設定できません!?

    ノーツ上の.pdfファイルをクリックすると先日まで問題なかったのですがプログラムを設定できませんとなり、プローシージャーエントリポイントCHtotalChunksがダイナミックリンクライブラリSCCH.dllから見つかりませんでしたと表示され開く事ができなくなりました。 デスクトップ上の.pdfファイルは問題なく開きます。 Acrobatはインストールされていますが、最近.pdf関係のものを削除した記憶があります。ゴミ箱復元ソフトでこのファイルを検索しましたが見つかりませんでした。OSは2000です。ご回答よろしくお願い致します。

  • C言語からデータベースにアクセス

    現在C言語で作成したシステムで MySQLで作成されたデータベースに格納されている画像のヒストグラム情報(すでに数値化して格納してあります)を取得 →プログラム内で処理→処理後の画像のファイル名、ヒストグラム情報をデータベースに格納 (C言語プログラム、データベースともに同じサーバー機に入っています) という処理を行いたいと思っているのですが、どのようにするのが良いでしょうか? データベースからのデータ取得はCから検索キーを指定して、データを検索、取得できればなおよいです。 PostgreSQLであればlibpqなどのライブラリがあるようですが、MySQLはどうにもわかりません。 C言語で作成したプログラムをCGIとして実装すればよいとは思うのですが、 解説サイトではフォームからの入力ばかりで、データベースから直接の受け渡しや、 画像情報のような大量のデータの受け渡しを解説しているサイトは見当たりませんでした。 なお、データベース操作はphpで行っています。 分かり辛い分で申し訳ありませんが、最悪Cプログラムからデータベースへのデータ格納だけでもかまいませんので、ご回答お願いします。

  • 文字列を取得し書き出す

    プログラムを書いたファイルから Test っていう文字列が含まれる関数名をすべて取得して DoTest という関数内に書き出すというものをつくりたいんですが どうすればよいかわかりません… どなたかご教授ください。

  • C言語のライブラリで"A"を20文字生成する関数名を知りたいです。

    C言語のライブラリで"A"を20文字生成する関数名を知りたいです。 C言語やVBなどのプログラミングで良く関数やライブラリとして存在している名前を調べる良いサイトを知っている方はいらっしゃいますか?

  • pdfファイルは文字情報も取り込み編集できるのでしょうか?

    カタログをスキャナーで取り込んで データベース化しようと思っています。 pdfファイルにしたら!とアドバイスいただきましたが 私の知っているそれは、画像として読み込めるけど 文字情報の取り出しができません。 例えば、 メーカーのチラシの期間の最終日が 当店の休日であった場合などに pdfファイルとして読み込んで 日付の変更ができるのでしょうか? また、カタログを読み込んだ場合、 その中の文字で、検索をかけられますか? pdfファイルでググってみたのですが あまりに初歩的な疑問なのか答えが見つかりませんでした。 よろしくお願いします。

  • ExcelのVlookup関数で一致した文字のセルの番地を取得する方法

    ExcelのVlookup関数で一致した文字のセルの番地を取得する方法 プログラム(VBA)で、検索で使用する関数でVlookup関数というのがあるというのが最近知ったのですが、Vlookup関数は、検索するセルの範囲を指定して、検索対象の文字列が一致した場合、そのセルの内容(値)を返すという風に書いてあったのですが、値ではなく、そのセルの番地を取得する方法はあるのでしょうか? ありましたら、その方法を詳しく教えてください。Vlookup関数以外でも検索するコードがあるようですが、Vlookup関数に限った場合でよろしくお願いします。 回答よろしくお願いします。

専門家に質問してみよう