Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
セクション区切りを含むMS-Word文書のインデックス作成の不具合 (namazu-bugs-ja#2683)
- From: nature_photo@xxxxxxxxxxxxxx
- Date: Fri, 23 Jan 2004 17:22:53 +0900 (JST)
- X-ml-name: namazu-devel-ja
- X-mail-count: 03593
Full_Name: 山本幸樹
Version: 2.0.12
OS: FreeBSD 4.3
Submission from: (NULL) (202.232.78.75)
Namazuをいつも便利に使用させていただいており、関係者の皆様に感謝しております。
さて、ワード文書のインデックス作成で不具合を発見しましたので、報告させていただきます。
[現象]
MS-Word文書(*.doc)がセクション区切りを含んでいる場合、インデックス作成時に、その最初のセクション区切り以降の文書内容が無視されてしまう。
[環境]
OS:
FreeBSD 4.3-RELEASE
Namazu:
Namazu 2.0.12
Perl:
Japanization patch 4 by Yasushi Saito, 1996
Modified by Hirofumi Watanabe, 1996-1999
jperl5.005_03-990822
EUC version
wvWare:
wvWare 1.0.0
lv:
lv v.4.49.4 (Aug.24th,2000)
msowrd.pl:
msword.pl,v 1.28.4.5
Word:
MS-Word97
[再現方法]
1.MS-Wordでセクション区切りの入った文書を作成する。
Wordのメインメニューで[挿入/改ページ/セクション区切り/次のページから開始]を実行すると、カーソル位置にセクション区切りが挿入される。
(例)作成したWord文書ファイルの内容
---------------------------
1ページ目 ナマズ
---セクション区切り(次のページから新しいセクション)---
2ページ目 バグ報告
---------------------------
2.作成したWord文書ファイルのインデックスを作成する。
作成されたNMZ.wを見ると、最初のセクション区切りの前にあるページのキーワードはあるが、後のページのキーワードはない。
(例)の文書をインデクシングすると、NMZ.wは以下のようになる。
---------------------------
1
ナマズ
ページ
目
---------------------------
[推測される原因]
(例)の文書をwvWareでhtmlへ変換すると後掲のようになる。
セクション区切りが挿入されている1ページ目と2ページ目の間で
---------------------------
<!--Section Ends-->
<!--Section Begins--><br>
---------------------------
が出力される。
一方、msword.pl164行目の
$$cont =~ s/<!--Section Ends-->.*$//s;
により<!--Section Ends-->以下のテキストは切り詰められてしまう。
従って、2ページ目以降のテキストはmknmzへ渡されず、インデクシングされないことになる。
---------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<META NAME="GENERATOR" CONTENT="wvWare/wvWare version 1.0.0">
<title>
1ページ目 ナマズ
</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b">
<!--Section Begins--><br>
<p><div name="" align="left" style=" padding: 0.00mm 0.00mm 0.00mm 0.00mm;
">
<p style="text-indent: 0.00mm; text-align: left; line-height: 4.166667mm; color:
Black; background-color: White; ">
1ページ目 ナマズ
</p></div>
<p><div name="" align="left" style=" padding: 0.00mm 0.00mm 0.00mm 0.00mm;
">
<p style="text-indent: 0.00mm; text-align: left; line-height: 4.166667mm; color:
Black; background-color: White; ">
</p></div>
<p><div name="" align="left" style=" padding: 0.00mm 0.00mm 0.00mm 0.00mm;
">
<p style="text-indent: 0.00mm; text-align: left; line-height: 4.166667mm; color:
Black; background-color: White; ">
</p></div>
<!--Section Ends-->
<!--Section Begins--><br>
<p><div name="" align="left" style=" padding: 0.00mm 0.00mm 0.00mm 0.00mm;
">
<p style="text-indent: 0.00mm; text-align: left; line-height: 4.166667mm; color:
Black; background-color: White; ">
2ページ目 バグ報告
</p></div>
<!--Section Ends-->
<!--
<hr>
<address>
<a href="http://wvware.sourceforge.net/"><img
src="wvSmall.gif" height=31 width=47
align=left border=0 alt="wvWare"></a>
<a href="http://validator.w3.org/check/referer"><img
src="vh40.gif" height=31 width=88
align=right border=0 alt="Valid HTML 4.0!"></a>
Document created with <a href="http://wvware.sourceforge.net/">wvWare/wvWare
version 1.0.0</a><br>
</address>
-->
</body>
</html>
---------------------------
[回避策]
/usr/local/share/namazu/filterディレクトリにあるmsword.plの
164 $$cont =~ s/<!--Section Ends-->.*$//s;
をコメントアウトし、インデックスを作成する。
(例)の文書をインデクシングすると、NMZ.wは以下のようになり2ページ目もインデクシングされることを確認した。
---------------------------
1
2
ナマズ
バグ
ページ
報告
目
---------------------------
以上。