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/