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

[openoffice:11049] Re: Microsoft W ord 互換性オプション「改行記 号を挿入した場合、両端揃えにしない」



みなさま、調査、ありがとうございます。

教えてくださいました情報で、もやもやっとしていて、わかりにくかった挙動が
ようやくわかってきました。引き続き、もう少し、他のバージョンなどでの情報を
お願いいたします。

現時点で、OpenOffice.org Writer のソースコードの修正は、根本的な部分が
できあがりました。手元の開発版で、動作確認しているところです。ひとつ、
ひっかかっているところがありまして、オプションの設定のチェックの有無に
応じて Word ファイルの中身の特定のバイトの1ビットが 1 もしくは 0 になる
はずではないかと予想しておりまして、OpenOffice.org Writer 側での既存の
ソースコードにいくつかの追加を加えた機能部分でその情報を読み取らせている
はずなのですが、0 のままで、うまく読み取れていません。そもそも読み込もう
としているデータの位置が間違っているのか、それとも、Word 自身が 1 の設定
を書き出していないのか、、、と、Word ファイルのバイナリー形式の内容を
16進数ダンプ 表示、仕様書 [1] と Writer の関連するソースコード [2] との
三つをにらめっこしているところです。Word のファイルの作成に使用した
Word が昔のバージョンでは、そのオプションの情報はもともと存在しない、
新しいバージョンでは、そのオプションの情報は存在するというようなことが
仕様書で定義されています。

Word ファイルを作成した Word のバージョンに関する情報や、言語の情報も
Word ファイル中に含まれています。古いバージョンの Word で作成された場合に
は、今回調査対象としているオプションに関する情報は設定されないみたいで
すので、今回の調査結果の値をデフォルト値として、Writer 側のソースコード
に埋め込むという方法を考えています。新しいバージョンの Word で作成された
場合には、そのオプションに関する情報がファイル中に含まれているはずですので、
その情報をファイル中から読み取って、Writer 側に設定するようにしようと
考えております。ここで調査対象としているオプションの観点から見た古いか
新しいかの判断基準は、どうやら、Word 97 含め 97 以前で作成された Word
ファイルを古い形式、Word 2000 を含め 2000 以降で作成された Word ファイル
を新しいファイル形式とみなせばいいような感じがしております。

今後の予定としては、修正したソースコードを盛り込んだ Writer 関連の .dll
ファイル(Windows版) および .so ファイル(Linux版) の差し替えファイルを作成
いたしますので、みなさまに動作検証をお願いしようかと考えております。
 ・Word のさまざまな版で作成されたファイルを開いてみる。
 ・ファイル変換ソフトなどで変換された Word ファイルを開いてみる。
 ・一太郎などの他のソフト上で Word 形式で保存されたファイルを開いてみる。
などを考えております。

みなさまからの情報および手元での確認作業などから概ねわかってきたことは、

 段落の規定値
  ・日本語、韓国語、中国語(複数の地域、RPCを除く)、では、「両端揃え」
  ・西洋の言語、および、中国語(RPC)では、「左寄せ」
  ・アラビア語などでは、「右寄せ」

 改行記号を挿入した場合、両端揃えにしない (2000以降)
 改行記号を挿入した場合、両端揃えにする (97)
  ・日本語、韓国語、中国語(複数の地域)では、両端揃えにしない設定
  ・他の言語では、設定項目はあるが、設定なし

というような感じでしょうか。

[1] http://www.microsoft.com/interop/docs/OfficeBinaryFormats.mspx
[2] http://sw.openoffice.org/source/browse/sw/sw/source/filter/ww8/
    ww8par.hxx ww8par.cxx ww8scan.hxx ww8scan.cxx

# 上記の文章で日本語になっていないとか、論旨がいまいちな部分もありますが、
# ご容赦くださいませ。

Yosuke Kato wrote:
> 段落の書式で、段落の頭に1文字字下げを設定した場合などが分かりやすいケー
> スかもしれません。
> 「改段落」→次の行頭も1文字インデントされる
> 「改行」→次の行頭はインデントされない。
> 
> この使い分け、WordだけでなくWriterでも有効です。段落のインデント操作や段
> 落前後の余白レイアウト制御がとっても楽になりますので、ぜひ使い分けてみて
> ください。

Impress でも使い分けてみると便利かと思います。
 リターンキー     → 改段 → 行間がそれなりにあく。 行頭に・などがつく
 シフト + リターンキー → 改行 → 行間がほとんどあかない。行頭に・などがつかない

Tora

【MLコミュホームページ】http://www.freeml.com/openoffice

--[PR]------------------------------------------------------------------
       出┃光┃カ┃ー┃ド┃ま┃い┃ど┃プ┃ラ┃ス┃
       ━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛
   年会費永久無料!ETCカードも無料!ガソリン割引など特典満載!
        ただいま、入会特別キャンペーン実施中!!
http://ad.freeml.com/cgi-bin/sa.cgi?id=bWg45
------------------------------------------------------------------[PR]--
■GMO INTERNET GROUP■ GMO INTERNET www.gmo.jp