Namazu-win32-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: パスワード付文書のインデックス化
ども、佐藤@大和鑑定です。
satou <satou@xxxxxxxxxxxxxxxxx> wrote:
> 時間が取れなかったので、olemsword.pl のみのテストです。
> Excel2000とOffice97は明日試してみます。
さっそく試しました。
竹迫さん(X-Mail-Count: 00511)の方法でOKです。
最後に変更点をまとめておきます。
> > ちょっとエラーも異なるようです。
> > Win32::OLE(0.1402) error 0x800a1520:
> > in METHOD/PROPERTYGET "open" at
> > C:\namazu/share/namazu/filter/win32/olemsword.pl line171
> > 1/1 - /D|/b/adachi2.doc Cannot open File D:\b/adachi2.doc at
> > C:\namazu/share/namazu/filter/win32/olemsword.pl line177.
>
> ありゃ、こちらの動作と違いますね。
> 迷惑でなければ、こちらで動作した olemsword.pl を送りましょうか?
ごめんなさい、これは私の勘違いです。
mknmz するバッチファイルをダブルクリックしていたので上記エラーを
見過ごしてました。今日、コマンドラインで作業しているとしっかりエラーを
表示しています。
Office97の場合、以下のようなメッセージになりました。
【コンソール上のメッセージ】半角カナを全角に修正
----------------------------------------------------------------------
C:\home\cgi-bin>mknmz -U -O C:\namazu\var\namazu\index C:\data 1>rep.txt
OLE exception from "Microsoft Word":
(C:\DATA\PASSWORD.DOC)ん。 文書を開けません。
Win32::OLE(0.1402) error 0x800a1520
in METHOD/PROPERTYGET "open" at C:/namazu/share/namazu/filter/win32/olemswor
d.pl line 171
OLE exception from "Microsoft Excel":
入力したパスワードは間違っています。 [CAPS] キーおよび [LOCK]
キーがオフになっていることを確認し、大文字と小文字が正しく使われていることを確認して
ください。
Win32::OLE(0.1402) error 0x80020009: "例外が発生しました。"
in METHOD/PROPERTYGET "Open" at C:/namazu/share/namazu/filter/win32/oleexcel
.pl line 170
----------------------------------------------------------------------
【mknmzのメッセージ】
----------------------------------------------------------------------
検索対象のファイルを調べています...
6個のファイルがインデックス作成の対象として見つかりました
1/6 - /C|/data/nopassword.doc [application/msword]
2/6 - /C|/data/nopassword.xls [application/excel]
3/6 - /C|/data/password.doc Cannot open File C:\data\password.doc at C:/namazu/share/namazu/filter/win32/olemsword.pl line 176, <GEN3> line 3.
3/5 - /C|/data/password.xls Cannot open File C:\data\password.xls at C:/namazu/share/namazu/filter/win32/oleexcel.pl line 175, <GEN3> line 4.
3/4 - /C|/data/vabtest.xls [application/excel]
4/4 - /C|/data/vbatest.doc [application/msword]
インデックスを書き出しています...
----------------------------------------------------------------------
■Namazu 2.0.5 Win32フィルタの変更点
【olemsword.pl】
----------------------------------------------------------------------
C:\namazu\share\namazu\filter\win32>FC /N olemsword.pl.org olemsword.pl
ファイル olemsword.pl.org と OLEMSWORD.PL を比較しています
***** olemsword.pl.org
168:
169: my $doc = $word->{Documents}->open($cfile);
170: die "Cannot open File $cfile" unless ( defined $doc ) ;
***** OLEMSWORD.PL
168:
169: # my $doc = $word->{Documents}->open($cfile);
170: # my $doc = $word->{Documents}->open($cfile,,,,"dummy");
171: my $doc = $word->{Documents}->open({
172: 'FileName' => $cfile,
173: 'PasswordDocument' => 'dummy password',
174: 'ReadOnly' => 1
175: });
176: die "Cannot open File $cfile" unless ( defined $doc ) ;
*****
----------------------------------------------------------------------
内容:パスワード付き文章をスキップできるように、ダミーパスワード
を与え読取り専用モードで開く。パスワード無しの文章は問題
なく処理できます。(170行目は不要です)
対象:Word97、Word2000
【oleexcel.pl】
----------------------------------------------------------------------
C:\namazu\share\namazu\filter\win32>FC /N oleexcel.pl.org oleexcel.pl
ファイル oleexcel.pl.org と OLEEXCEL.PL を比較しています
(*1)
***** oleexcel.pl.org
127: # get Title
128: $fields->{'title'} = "$cfile->BuiltInDocumentProperties(1)->{Value}"
129: unless $cfile->BuiltInDocumentProperties(1)->{Value}; #
title
***** OLEEXCEL.PL
127: # get Title
128: $fields->{'title'} = $cfile->BuiltInDocumentProperties(1)->{Value}
129: unless $cfile->BuiltInDocumentProperties(1)->{Value}; #
title
*****
(*2)
***** oleexcel.pl.org
166: open (STDERR,">&SAVEERR");
167:
168: my $wb = $excel->Workbooks->Open($cfile);
169: die "Cannot open File $cfile" unless ( defined $wb );
***** OLEEXCEL.PL
166: open (STDERR,">&SAVEERR");
167:
168: # my $wb = $excel->Workbooks->Open($cfile);
169: # my $wb = $excel->Workbooks->Open($cfile,,,,"dummy");
170: my $wb = $excel->Workbooks->Open({
171: 'FileName' => $cfile,
172: 'ReadOnly' => 1,
173: 'Password' => 'dummy password'
174: });
175: die "Cannot open File $cfile" unless ( defined $wb );
*****
(*3)
***** oleexcel.pl.org
203:
204: my $ur = $sheet->{UsedRange};
205:
***** OLEEXCEL.PL
209:
210: #my $ur = $sheet->{UsedRange};
211: my $tmpur = $sheet->{UsedRange};
212: my $tmprc = ($tmpur->Rows->Count >100 ? 100 : $tmpur->Rows->Count);
213: my $tmpcc = ($tmpur->Columns->Count >100 ? 100 : $tmpur->Columns->Count);
214: my $ur = $sheet->Range(
215: $sheet->Cells($tmpur->Rows->Row, $tmpur->Columns->Column),
216: $sheet->Cells($tmpur->Rows( $tmprc )->Row, $tmpur->Columns( $tmpcc )->Column)
217: );
218:
*****
----------------------------------------------------------------------
内容:
(*1)タイトルとしてファイル名が入るように。
(*2)パスワード付きブックをスキップできるように、ダミーパスワード
を与え読取り専用モードで開く。パスワード無しのブックは問題
なく処理できます。(169行目は不要です)
(*3)処理するセル範囲を100×100に制限する。
対象:Excel97、Excel2000
皆さんの情報提供に感謝します。
これで社内のNamazu導入に弾みがつきます。
#FCコマンドなんて久しぶり(^^;
大和不動産鑑定株式会社
情報システム部
佐藤 充男
satou@xxxxxxxxxxxxxxxxx
http://www.daiwakantei.co.jp/