Namazu-devel-ja(旧)


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

セクション区切りを含むMS-Word文書のインデックス作成の不具合 (namazu-bugs-ja#2683)



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
 
ナマズ
バグ
ページ
報告
目
---------------------------

以上。