Namazu-devel-ja(旧)


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

Re: macbinary.pl



臼田です

細かい検証ありがとうございます

Tadamasa Teranishi wrote:
> > > > RTF の filetype が TEXT だったりします。ですので、filetype だけ
> > > > で、text/plain とすると誤認します。(たぶん)
> > > filetype が 'TEXT'の場合はtext/plainにせずにundefにすることにします。
> > 
> > ttxt/TEXT のものは text/plain
> > MSWD/TEXT のものは application/rtf
> > としておくのが良いと思いますよ。
> 
> どうもそうはいかないようです。
> 
> filename : powerpoint2001.rtf
> type     : RTF
> creator  : PPT3
> 
> filename : word2001.rtf
> type     : RTF
> creator  : MSWD
> 
> と、どちらも type が RTF でした。たぶんこれが正しいのでしょうが、
> 過去に type が TEXT の RTF ファイルがあったということのようです。
> 
> > > (wordで出力されたplaintextファイルもあるということですね)
> > 
> > # Word で出力された plaintext の場合、MSWD/TEXT だと RTF になっちゃう
> > # ので、creator/filetype はどうなるのだろうとちょっと疑問。
> 
> RTF の type が RTF だったので、やはり TEXT になっていました。
> 
> filename : word.txt
> type     : TEXT
> creator  : MSWD
> 
> ただ、HTML に関しては Word/Excel のどちらの出力も creator は MSIE, 
> type は TEXT になるようです。
> 
> filename : word2001.htm
> type     : TEXT
> creator  : MSIE
> 
> filename : excel2001.htm
> type     : TEXT
> creator  : MSIE
> 
> なお、今回は Office 2001 for Mac を使いました。

html,rtfは中身は基本的にplaintextなのでfiletypeにhtmlやrtfをつけたり
textにしたりするのは各MACアプリケーションの勝手であるということですね
最近のOfficeがfiletypeにRTFを入れるようになったのは少し改善したという
ことなのでしょう。

厳密に判断できたもののみ特定し、こぼれたものはFile-MMagicに任せるという
ことにします。
前回のものを修正して下記のようにします。

    my $mmtype = undef;
    if (($filetype_code =~ /^XLS/) && ($creator_code =~ /XCEL/)){ 
        $mmtype = 'application/excel';
    }elsif (($filetype_code =~ /W.BN/) && ($creator_code =~ /MSWD/)){
        $mmtype = 'application/msword';
    }elsif (($filetype_code =~ /^(SLD|PPSS)/) && ($creator_code =~ /^PPT/)){ 
        $mmtype = 'application/powerpoint';
    }elsif ($filetype_code =~ /^PDF/){
        $mmtype = 'application/pdf';
    }elsif ($filetype_code =~ /^RTF/) {
        $mmtype = 'application/rtf'; 
    }elsif ($filetype_code =~ /TEXT/) {
        $mmtype = undef; 
    }

Internet上をいろいろ探して得た情報を元にしているので自分で検証していない
部分もあります。

一太郎の文書ファイルもOLE形式なのでFile-MMagicで判定できないはずです、
これのfiletypeとcreatorがわかればとりあえず安心なのですがどこかにファイル
がころがっていないですか?。

臼田幸生