Namazu-win32-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CD-ROM上にNamazu,indexを置いてPDFファイルを検索したい



多田と申します。始めて発言します。

Subject:CD-ROM上にNamazu,indexを置いてPDFファイルを検索したい

 以前からの発言で、CD-ROM上にIndexを置いて検索するという内容は
 見つけたのですが全てをCD-ROM上に置いて実現するという物が
 無かったために色々試行錯誤しました。というよりご助言頂いて
 実現できました。

 この件で、宮沢さん、坂口さん、山下さん、とうぼうさん他、
 数人の方にご助言を頂きました。
 処理が実現できましたので、お役に立てればと纏めをアップさせて頂きます。
 特に宮沢さんと坂口さん、頻繁に丁寧なフォローを入れて頂きましてとても
 感謝致します。
 今回、IENamazu.htaに関して修正箇所を記載しても良い、という許可も
 頂きましたのでそれについても記載させて頂きます。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※但し、作者へこの件について直接問い合わせを行うことはやめてください※※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

【目的】
 Namazu,index等全てのファイルをCD-ROMに置いてpdfファイルを
 検索したい。

【動作確認OS】
Windows2000 Professional(SP3)+InternetExplorer6(SP1)
WindowsXP Professional(SP1)+InternetExplorer6(SP1)

【使用製品のバージョン】
Namazu				: 2.0.12
kakasi				: 2.3.4
xpdf				: 2.00
ActivePerl			: 5.6.1
IENamazu			: 0.0.1
search-s for Namazu : 0.9.3beta

【処理手順 namazu〜インデックスの作成】
1.namazu,kakasi,xpdf,perlのインストールを行います。
 私は、宮沢さんのページを参考にさせていただきました。
 http://www10.plala.or.jp/miyazawa/namazu/index.html
 
#これについては過去ログ,HomePageに沢山導入事例が有ります。割愛します。

2.インデックスの作成

(1)mknmzrcの修正
 私の場合は検索対象がpdfだけだった為、c:\namazu\etc\namazu\mknmzrcを
 修正しました。

$ALLOW_FILE = ".\\.pdf*; 

 として、検索対象を絞り込みました。
 KAKASIをインストールしてあるのですが、良く見ると、mknmzrcの最後の方に
 KAKASIについての定義がありましたがコメントのままにしてます。
 $FILE_SIZE_MAXと$TEXT_SIZE_MAXについては適宜サイズを変更します。
 これがデフォルトのままの場合、
 「a.pdf 致命的なエラー(x-system/x-error) skipped.」
 とのエラーが出ました。
 また、Directoriesに関してはnamazuがインストールされているディレクトリを
 正しく指しているかをチェックします。

$LIBDIR = 'C:/namazu/share/namazu/pl';
$FILTERDIR = 'C:/namazu/share/namazu/filter';
$TEMPLATEDIR = 'C:/namazu/share/namazu/template';

(2)xpdfrcの修正
 xpdfrcについては一通り標準の設定を終えた後、
 次の2カ所について手を加えました。

#textEncoding	 UTF-8
textEncoding	 Shift-JIS

#textEOL		 unix
textEOL 		 dos

(3)pdf.plの修正
 私が使用したpdfの場合はマスタパスワードがかかっておりまして、
 このために
 「b.pdf Unable to convert pdf file (maybe copying protection)」
 というエラーが出ました。内容のコピーと抽出を許可しないpdfの場合
 text化は無理だ、と諦めかけていたところ作成元から協力が得られまして
 パスワードの提供が有りました。
 pdfファイルにパスワードが掛かっている場合、
 C:\namazu\share\namazu\filter\pdf.plの修正が必要です。
 88行目から始まる構文で、

#	system("$pdfconvpath -q $pdfconvarg -raw $tmpfile $tmpfile2");

 と有りますが、これにパスワード(例 foo_pw)を加えて

	system("$pdfconvpath -opw foo_pw -q $pdfconvarg -raw $tmpfile $tmpfile2");

 とすることによりテキストへの出力が可能でした。

(4)作業用ディレクトリ配置

c:\work\	   ....この下にpdfファイルとindexを置くようにします
	   \pdf1\  ....pdfは分類上、複数のディレクトリに分かれてます
	   \pdf2\
	   \pdfn\
	   \index\ ....インデックスファイルはここへ出力します

(5)インデックスの生成
 対象のpdfファイルはCD-R上に置く場合、ルートディレクトリではなく、
#考えるのが面倒ってだけなんですが
 サブフォルダに置いた方が後のnamazurcのReplace設定の時に楽でした。
 作業は、DOSコマンドプロンプトを開いて行います。

C:\WORK\INDEX>mknmz -U c:\work

 インデックス作成の状況が画面に現れ、コマンドが終了するとインデックスの
 生成は完了です。

(6)namazurcの修正(Replaceについてはそれぞれのツールで違います)
 /namazu/etc/namazu/namazurcを修正します。

 namazurcの60行目くらいからLang設定が有りますので、これを修正します。
 コメント行の「#」を外し、次のようにします。

Lang		  ja_JP.SJIS

 これで検索結果はSJISでの出力になります。
 ReplaceとLang以外は全てコメントにしました。
# 必要な場合設定して下さい。

 Namazu 2.0.12の場合、Namazuインストールフォルダまるごと
 CD-Rに焼き込んでしまえば日本語環境も問題なく動作しました。
 この場合、環境変数のセットアップは不要でした。
 これについては、チュートリアルに記述が有ったようです。
 (Namazu 2.0.6 から修正されているようです。)

--------------------------------

【処理手順 IENamazuの場合】
1.IENamazuをダウンロードし、解凍します

2.ienamazu.iniを設定する
 次の箇所を修正します。
[idxname]
; CD-ROMは「@」で置き換えられます
CD-ROM=@:\namazu\bin\namazu.exe;@:\index		  selected

[alias]
; CD-ROMは「@」で置き換えられます
namazu=@:\namazu\bin\namazu.exe
namazu.png=@:\namazu\share\namazu\etc\namazu.png

3.namazurcのReplace設定を行います
 インデックスを作成する環境がC:\WORKの下にぶら下がり、
 CD-RへはWORK以下をそのまま焼く場合、次の設定となります。

Replace 	  /c\|/work/  /c\|/ 		  # ienamazuの場合

4.ienamazu.htaを修正します

(1)172行目の
172:var nmzout = "$nmzout.htm";
を
172:var nmzout = "C:\\$nmzout.htm";
にします。
#WindowsNT以上の場合、一般ユーザーではCドライブのルートディレクトリに
#書き込む権限が無いため、適宜修正した方が良いかも。

(2)509行目から次のように3行追加します

509:	var nmzpng = alias.getValue("namazu.png");
ADD:	if (/^@:/.test(nmzpng)) {
ADD:		nmzpng = nmzpng.replace(/@:/g, namazu.driveletter+":");
ADD:	}
510	text = text.replace(/%namazu\.png%/g, nmzpng);

 これは、Namazuを一式CD-Rへ焼き込むため、pngファイルの参照を
 CD-Rからできるようにするための変更です。

5.ファイル配置
 CD-ROM上には次の通りに焼きました。
 基本的にはc:\workの下を全部です。
   \pdf1\	  ....pdfは分類上、複数のディレクトリに分かれてます
   \pdf2\
   \pdfn\
   \index\	  ....インデックスファイルフォルダ
   \namazu\   .... Namazuのフォルダをまるごと
   \ienamazu\ .... IENamazuのフォルダをまるごと

 後は、ienamazuフォルダの下のIENamazu.htaをダブルクリックして起動します。
 InnternetExplorer6(SP1)からローカルファイルに対するセキュリティについて
 仕様変更が有ったため、CD-ROM上にautorun.infを置いてindex.htmを起動させて
 そこからIENamazu.htaをハイパーリンクさせるとアクセスできないことが
 有るようです。
 以下、Microsoftのページ
 http://support.microsoft.com/default.aspx?scid=kb;ja;436868

--------------------------------

【処理手順 search-s for Namazuの場合】
1.search-s for Namazuを準備します。
 私が使用した時点では、Version0.9.2が最新でしたが、CD-ROMへの
 完全対応という事では0.9.3betaが必要だとの事でこれを使用しま
 した。

2.searchs.iniを設定する
 次の箇所を修正します。
[Search]
Directory1={cdrom1}/Index
NamazurcPath={cdrom1}\namazu\etc\namazu\namazurc

[Result]
ResultUseTempDir=1

[Command]
namazuPath={cdrom1}\namazu\bin\namazu.exe

[SearchMRU]
Item_0=""{cdrom1}/Index""

3.namazurcのReplace設定を行います
 インデックスを作成する環境がC:\WORKの下にぶら下がり、
 CD-RへはWORK以下をそのまま焼く場合、次の設定となります。

Replace 	  /c\|/kajima/	{cdrom1}/			# search-sの場合

4.ファイル配置
 CD-ROM上には次の通りに焼きました。
 基本的にはc:\workの下を全部です。
   \pdf1\	  ....pdfは分類上、複数のディレクトリに分かれてます
   \pdf2\
   \pdfn\
   \index\	  ....インデックスファイルフォルダ
   \namazu\   .... Namazuのフォルダをまるごと
   \search-s\ .... search-sのフォルダをまるごと

 以上です。
 宮沢さん、早朝から深夜までのメールサポート、誠に有り難うございました。


---------------------------------------------------
E-mail : K.Tada@xxxxxxxxxx Web : http://www.doon.co.jp/
株式会社ドーン 多田 和彦
TEL 03-3206-3411 FAX 03-3206-3412
---------------------------------------------------