人に聞けない痔の悩み、これでスッキリ >>

Acrobatの提供するJavascriptオブジェクトやAPIを使用して、PDFを対象とした
全文検索ツールを作りたいのですが、書籍等も少なく、なかなか有効な情報に
出会えません。どなたか実際にそのような開発に携わったことがあれば、
その手法に関する情報をご提供頂けないでしょうか?
なお、市販のPDF全文検索ソフトもいろいろあるのですが、ライセンス
フリーなものが今回必要となり、自作を検討しております。
用途はPDFをCD-Rに焼き、そのCD-R内にCD-R内全文検索プログラムを
組み込むというものです。
よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

私は経験も知識も無いものですが、


A.PDFファイルを直接読んで検索する。
B.人間が操作して、下記RTFファイルまたはテキストファイルに抽出して、検索する。の2つが考えられると思います。
お手許にPDFファイルのファイルフォーマットは既にあるのでしょうか。
その後Adobe社にこの形式のファイルを読み検索するアプリを作成する(その後貴社でソフトを販売するのですか?それを明確に伝えて)のに認諾や契約や有償が必要なのか確認されましたか。
(1)AcrobatファイルはRTF形式にテキスト部分のみ落とせるとのことです。
http://www.keiyu.com/doc/pdftxt.htm
http://search.luky.org/linux-users.8/msg00983.html
http://www.pdf-seek.com/jyouhou/index.html
http://pc-training.hp.infoseek.co.jp/pdf.html
http://www.y-adagio.com/public/standards/tr_pdf/ …
(この中に「著作権認諾」のことも載っている。)
相当調べられたふうですが、「PDF」「テキスト」「ファイル形式」「ファイルフォーマット」などでWEB検索してみてください。
(2)この落としたファイルを対象に、自作の検索プログラムを作り、走らせる。
(3)(1)はAcrobatの「操作」ですから、その通り操作でやると
オフラインバッチ処理的になり、1ステップ入ってしまいます。
それで良いのでしょうか。もし操作を自動的にするマクロのようなものが
あればAと近くなり、良いのでしょうが。
(3)バッチ的になって良いなら、(1)を操作でさせて、RTFファイルを読みこみ、扱う方法を習得すれば、検索プログラムが出来ると思います。
検索は「JavascriptオブジェクトやAPI」にそのものズバリはあるはずは
無いと思います。WINやJAVAやその他で検索エンジンまでAPIになっている例があるのでしょうか。
すなわち言いたいことは、RTFの形式のフォーマット詳細を調べるとかして勉強し、処理言語を決めて扱える事ができるようになることがターゲットでしょう。
(4)あと文章検索について色々なアルゴリズムがあるようですので、それを調べて勉強し、その処理言語で使用できるようになることでしょう。クラスモジュールのようなものが販売されておれば、使えると早いでしょうが。
経験のないものがあれこれいっておりますが、目指し進む方向がちょっと
気になりましたので。得るものがあれば幸甚です。
    • good
    • 0
この回答へのお礼

返答が遅れまして、申し訳ございませんでした。
色々と調べて頂き、ご助言頂きまして大変恐縮です。
その後調査を致しましたところ、http://partners.adobe.com/asn/developer/acrosdk/ …
のDevelopment Kitにて、VC用のヘッダーファイルや、Javascript
オブジェクトを使用したVBのサンプルコードが公開されていました。
まだ深くは解読していませんが、そこで使用されているオブジェクト
&メッソドを使用すれば、テキストベースに変換したりだとかいう
ステップは省略できそうです。
ただ、Acrobat Readerのプラグインツールとして開発するのであれば
Adobe社の開発キット等を購入する必要があるようです。

また、Adobe社へ問い合わせ致しましたところ、
「PDFのテキスト情報を検索する」
というアプリケーションを開発するにあたっては、特に許諾などは
必要ないということです。
意外とPDFの需要は伸びてきているようなので、そういったPDFを対象とした
開発に関するKnowHow資料も、書籍などでもっと欲しいところですね。

いろいろアドバイス頂き、誠に有難うございました。

お礼日時:2002/11/19 22:45

自分でプログラムを作るということでしょうか?


それなら、Adobe社と契約が必要になりますし、契約すればモジュールとマニュアルを供給してもらえますよ。
私の会社はそれで作りました。
    • good
    • 0
この回答へのお礼

早速のご返信ありがとうございます。
Adobe社との契約が必要なのですか。
やはりAdobe社からの情報無しでは難しいのでしょうか?
PDFからテキスト情報を取得するAPIでも分かれば
VBやVCあたりでできそうな気もするのですが・・・
ありがとうございます。検討してみます。

お礼日時:2002/11/17 14:09

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBからPDFファイルの埋め込みテキストを検索する方法

VBで文書を検索できるシステムを作っています。
通常検索では、テキストボックスに入力した文字列と一致するものをデータベースに登録した文書名から探してきてMSHFlexGridコントロール上に表示するようにしています。
今回は、追加検索として、指定したフォルダの中にあるPDFファイルやワードファイルなどの文書中の文字から一致するものを探して表示する機能を作りたいと考えています。
この様な機能はどの様に作れば良いのでしょうか?
色々とサイトを探してみたのですが、該当するものを見つけることが出来ませんでした。
よろしくお願いします。

Aベストアンサー

こんにちは。

[xdoc2txt]
PDF,WORD,EXCEL,一太郎などの各種バイナリ文書からテキストを抽出
http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html

VB から xdoc2txt.exe を起動して抽出テキストをリダイレクトする。
または、ActiveX 版 xdoc2txt.ocx を使うとか。

一から VB でとなると恐ろしく面倒で、難しいですよ。

まず速度面の問題があるでしょうし、ファイルフォーマットの解析が
必要になったり。。

QPDFファイルから特定の文字を検索し、頁を抽出する方法

PDFファイルの文書の中から、特定の文字列を検索し、その文字が含まれているページだけを抽出して別のPDFファイルを作る方法を教えてください。
検索結果の件数は表示されるのですが、その頁を抽出(あるいは、文字を含まない頁を削除)する方法がわかりません。
元のページ数が多いので、手作業での不要ページ削除が難しく大変困っています。
(win7でAdobe Acrobat 11 Standardを使用しています) 
どうかよろしくお願いいたします。

Aベストアンサー

検索結果から文字列のあるページをクリックして表示しておけば、その
ページ番号などが分かります。それでページのみでの抽出をすることは
可能だと思いますよ。
https://helpx.adobe.com/jp/acrobat/kb/3320.html
http://www.itmedia.co.jp/bizid/articles/1304/01/news007.html

Qpdfの中を検索したい

win7を使っていますがpdfファイルの中身までは検索してくれません
pdfの中の文字を検索するのにはどうすればいいですか?

Aベストアンサー

通常のPDFファイルは、Adobe Readerの検索機能を使えば検索が可能です。

「文字検索機能はありますか (Adobe Reader X)」
http://kb2.adobe.com/jp/cps/331/3313.html

画像のPDFファイルの場合は、OCRソフトを使ってテキスト認識を可能に指せる必
要があります。

「PDFのOCRテキスト認識」
http://m-school.biz/dev/acrobat-pdf/031-ocr-text-scan.htm

「PDFファイルを開いて、PDFファイル内で文字列の検索を行う」
http://cweb.canon.jp/e-support/products/canoscan/reference.html

Qエクセルで別ブックをバックグラウンドでオープンする方法

最初にメニュー画面となるブックを開いた後、データブックをバックグランドのみで開きたいのですが、エクセルVBAで単純にOPENを行うと画面上にデータブックが表示されてしまいます。操作作業者に画面が次々入れ替わることを見せたくないのですが、ブックをバックグラウンドだけで開く方法はあるのでしょうか。VBAについては素人で宜しくお願いします。

Aベストアンサー

ごめんなさい。解決済みと思って見ていませんでした。 まだですか?

後で開いた3つのブックは、VBAで操作しないのですか。
操作するのでしたら、ブックをオブジェクト変数に入れておいた方が操作しやすい
と思うのですが・・・ 一応何処でどのように使うのか判りませんので・・・

こんな感じで如何でしょうか。

ブックを開いてから非表示にするまでの瞬時の画面のことですね。
それなら、その間、ScreenUpdating = False でどうでしょうか。

Public Bk1 As Workbook
Public Bk2 As Workbook
Public Bk3 As Workbook
Dim PathName As String

Sub Auto_Open()
PathName = ThisWorkbook.Sheets("メニュー").Range("C28").Value
ファイル読込 "初期値.xls", Bk1
ファイル読込 "データ1.xls", Bk2
ファイル読込 "データ2.xls", Bk3
End Sub

Sub ファイル読込(BkName, ObjBk)
Application.ScreenUpdating = False
Set ObjBk = Workbooks.Open(Filename:=PathName & "\" & BkName)
Windows(BkName).Visible = False
Application.ScreenUpdating = True
End Sub

ごめんなさい。解決済みと思って見ていませんでした。 まだですか?

後で開いた3つのブックは、VBAで操作しないのですか。
操作するのでしたら、ブックをオブジェクト変数に入れておいた方が操作しやすい
と思うのですが・・・ 一応何処でどのように使うのか判りませんので・・・

こんな感じで如何でしょうか。

ブックを開いてから非表示にするまでの瞬時の画面のことですね。
それなら、その間、ScreenUpdating = False でどうでしょうか。

Public Bk1 As Workbook
Public Bk2 As Workbook
P...続きを読む

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

Q複数あるPDFファイルのページ数を知りたい

当方は1,000個以上のPDFファイルを所有しています。それぞれのPDFファイルのページ数を知りたいのですが、このページ数を簡単に検索(一括表示)できる無料ツールなどを知っている方は是非、教えてください。

Aベストアンサー

初めまして。
私も同じようなことをしようと思い、色々探していました。

それで下記のサイトにある「ComPDF」を使ってみたらいかがでしょうか。
シェアウェアですが、ページ数を調べるのでしたら大丈夫でしたよ。
私が調べたアプリの中では精度がかなりいいです。

http://www.ne.jp/asahi/foresth/home/

QEXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい

メインプログラム(EXCEL VBA)より、
他のフォルダーにあるEXCELの項目の内容を取り込みたいです。
たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。

・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。
・作業者が選んだパスとブックもMsgBoxで表示できてるので、もらう相手の場所も取得できてます。

・となると次はOPEN,INPUTですか?
テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。

よろしくお願いします!

Aベストアンサー

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む

readBook.Close False ' 相手ブックを閉じる
Set readSheet = Nothing
Set readBook = Nothing

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Ce...続きを読む

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

QVBAでEXCELに埋め込んだPDFを開く方法

あらかじめPDFファイルをシート内に貼り付けておき、
ユーザーフォーム上のボタンを押した時に、
PDFファイルを開くマクロを探しております。

参照パスを指定のフォルダにしなくても良い方法として
あらかじめPDFファイルを貼り付ける事を考えました。
尚、使用しているexcelは2010です。

Aベストアンサー

そもそもマクロの前に
>あらかじめPDFファイルをシート内に貼り付けておき、

この部分は既に実現できているのですか?どうやって(エクセルをどのように操作して)実現しているのでしょうか。
それともまだナニも手をつけていないので,そういうことができる準備の段取りから聞きたいご質問でしょうか。




>PDFファイルを開くマクロを探しております。

手順:
挿入のオブジェクトのファイルから,PDFファイルを(推奨:アイコンで表示)挿入する
そういうオブジェクトが1つシートに挿入してあるとすると,マクロは

worksheets("Sheet1").oleobjects(1).verb

と書いておけば,開いてくれます。

QエクセルVBAでテキストボックスの値の取得と変更について

エクセルのVBAを使ってシート上のテキストボックスのテキストを取得・変更するマクロを作成したいと思っていますがうまく行きませんので、お知恵を拝借したいとおもいます。

環境:WindowsXPでオフィス2002
状況:
エクセルブックa.xlsのシートに「コントロールツールボックス」のテキストボックスを配置(オブジェクト名はTEXTBOX_C)
エクセルブックb.xlsにコードを書き、a.xlsのTEXTBOX_CのプロパティのValueかTextを取りだしたい

試した事:
コントロールを配置したシートに次のマクロ
TEXTBOX_C.Text = "これはコントロールのテキストボックス"
を書くとテキストボックスに文字を入れ込めますが、別のエクセルブックからだと上手く行きません。

また、オートシェイプのテキストボックスの場合は簡単に出きるのですが、コントロールツールボックスではどうしても上手く行きませんので、対象法などご存知の方いらっしゃいましたら教えてください

Aベストアンサー

エクセルを新規に開きました。
そのSheet1に(コントロールツールボックスの)TextBoxを貼りつけました。
そのBook1から、ファイル-開くで別ブックを開きました。
別ブックのMojule1側に下記を書いて
Sub test02()
MsgBox Workbooks("book1").Worksheets("sheet1").textbox1.Text
End Sub
を実行すると、Book1のTextBoxに入れた文字列が表示
されました。
がそんな質問ではないのですか。


人気Q&Aランキング