word や pdf をテキストを抽出するNo.05890
heikki さん 08/08/30 09:03
 
word から文字を抽出するフィルターでしょうか xdoc2txt.exe を見つけました。こ
れを使って、秀丸に取り込むことは可能でしょうか。PDF からも変換できるようです
ので、作業の簡略化につながると思っています。マクロについては分かっていません
が、ただ、word をテキスト化したいことで質問しました。ここでは的外れかしれま
せんが、どなたかご教授くださるでしょうか。(既出のことならお許しください)

[ ]
RE:05890 word や pdf をテキストを抽出すNo.05891
三月 さん 08/08/30 10:04
 
>word から文字を抽出するフィルターでしょうか xdoc2txt.exe を見つけました。
>これを使って、秀丸に取り込むことは可能でしょうか。PDF からも変換できるよう
>ですので、作業の簡略化につながると思っています。マクロについては分かってい
>ませんが、ただ、word をテキスト化したいことで質問しました。ここでは的外れか
>しれませんが、どなたかご教授くださるでしょうか。(既出のことならお許しくだ
>さい)

http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html
をみるとデフォルトで標準出力に出るらしいので

マクロではないけど
c:\tools\xdoc2txt.exe にあると仮定して
「その他」-「プログラムの実行」で
特定のword文書を変換する場合、
c:\tools\xdoc2txt.exe 特定のword文書.doc > con

複数のファイルがc:\docsにword文書、c:\pdfsにpdfファイルの場合、
c:\tools\xdoc2txt.exe c:\docs\*.doc c:\pdfs\*.pdf > con
とやれば結果を取り込めるでしょう。


変換したいだけならば、バッチで変換する等の方がよいかも。
ファイルに出力して自動的に秀丸で開きたいとかならマクロ化も有効。
どういった作業を簡略化したいかがマクロ作成の基本ですよ。

[ ]
RE:05891 word や pdf をテキストを抽出すNo.05892
heikki さん 08/08/30 13:29
 
ありがとうございます。
>c:\tools\xdoc2txt.exe 特定のword文書.doc > con
ワードを開かないで取り込むことができました。感激です。

>ファイルに出力して自動的に秀丸で開きたいとかならマクロ化も有効。
>どういった作業を簡略化したいかがマクロ作成の基本ですよ。
秀丸から「ファイルを開く」→目的の「ファイル選択」→「テキスト変換」(xdoctx
tの実行)→「秀丸に取り込み」 取り込みは、「新規作成」か「開いてるカーソル
位置に読込」の選択ができるならありがたいです。

[ ]
RE:05892 word や pdf をテキストを抽出すNo.05893
三月 さん 08/08/30 19:40
 
>秀丸から「ファイルを開く」→目的の「ファイル選択」→「テキスト変換」(xdoct
>xtの実行)→「秀丸に取り込み」 取り込みは、「新規作成」か「開いてるカーソ
>ル位置に読込」の選択ができるならありがたいです。

>目的の「ファイル選択」
の部分が秀丸単体でマクロ化するのが厳しいかと。
http://www.ceres.dti.ne.jp/~sugiura/hidemaru/macros/dgserver/index.html
の田楽DLLを使えば可能でしょう。
(使ったことがないので詳しくはわからないですが。)

プログラム実行はマクロではrunで実行するので、上記で取得したファイル名を
runで実行するコマンドに埋め込んで実行する。

新規か挿入かは ">con" を付けるかどうかで分けれそう。

といったところでマクロ作成に挑戦してください。

[ ]
RE:05892 word や pdf をテキストを抽出すNo.05894
山紫水明 さん 08/08/30 20:41
 
 heikkiさん,

>秀丸から「ファイルを開く」→目的の「ファイル選択」→「テキスト変換」(
>xdoctxtの実行)→「秀丸に取り込み」 取り込みは、「新規作成」か「開いて
>るカーソル位置に読込」の選択ができるならありがたいです。

 とりあえず次のようなマクロを作ってみました。
 最初の3行は自分の環境に合わせて設定してください。

//------- BinaryToText.mac---------------------------------------------//
$doc2txt = "c:\\Tools\\Xdoc2txt\\xdoc2txt.exe";// xdoc2txt.exeのパス
$dengaku = hidemarudir + "\\DengakuDLL.dll";// 田楽DLLのパス
$folder = "c:\\Documents";  //対象フォルダ初期値

loaddll( $dengaku );
if ( !result ) {
    message "田楽DLL をロードできませんでした。";
    endmacro;
}
#n = dllfunc("NEWDIALOG","ファイルの選択", 50);
#n = dllfunc("NEWCONTROL","edit","file", "");
#n = dllfunc("SETCTRLWIDTH","", 44);
#n = dllfunc("NEWCONTROL","reffilebutton", "fileref","");
#n = dllfunc("SETCTRLNOTIFY", "", "10");
#n = dllfunc("SETCTRLITEM", "", "ファイルを選んで下さい");
#n = dllfunc("SETCTRLITEM", "", $folder);
#n = dllfunc("NEWCONTROL", "okcancel", "", "");
#n = dllfunc("SHOWDIALOG", hidemaruhandle(0),1);
while (1) {
    $$note = "";
    while (strlen($$note) == 0) $$note = dllfuncstr("WAITCTRLNOTIFY", 10);
    if ($$note == "0" || $$note == "1" ) {
        break;
    } else if ($$note == "10") {
        $file = dllfuncstr("GETCTRLSTRING", "fileref");
        #n = dllfunc("SETCTRLSTRING","file", $file);
        #n = dllfunc("CHANGECTRLITEM", "fileref", $file, "2");
    }
}
#n = dllfunc("ENDDIALOG");
if ($$note == "0" ) {
    freedll;
    endmacro;
}
freedll;
mousemenu "&1 カーソル位置に挿入", "&2 新しいファイルを作成";
#r = result;
if( #r == 0 ) endmacro;
else if( #r == 2 ) newfile;
beginsel;
run "\"" + $doc2txt + "\" \"" + $file + "\" > con";
if( #r == 2 ) {
    while(1){
        $ext = rightstr($file, #i);
        if(leftstr($ext, 1) == ".") break;
        #i = #i + 1;
    }
    changename leftstr( $file, strlen($file) - strlen($ext)) + ".txt";
}
endmacro;
//-----------------------------------------------------------------------//

     では, (^^)/~
                                        山紫水明(ユーザー)
                                        SANSHISUIMEI

[ ]
RE:05894 word や pdf をテキストを抽出すNo.05895
heikki さん 08/08/30 22:27
 
山紫 水明 様
すごい! できました。今までの作業工程はいったい何だったのだろうと思うほど驚
きです。それと同時になぜなかったのか不思議です。ほんとうにありがとうございま
した。
これだけでも十分ありがたいですが、欲を言えば、「ファイルの選択」の窓に「フォ
ルダーの履歴」が出れば、同じフォルダー内のファイルがさらに選びやすくなります。
マクロについて疎いので勝手なことをお願いしてるのかもしれません。重宝して使わ
せていただきます。

[ ]
RE:05895 word や pdf をテキストを抽出すNo.05896
山紫水明 さん 08/08/31 08:54
 
 heikkiさん,

>これだけでも十分ありがたいですが、欲を言えば、「ファイルの選択」の窓に
>「フォルダーの履歴」が出れば、同じフォルダー内のファイルがさらに選びや
>すくなります。

 フォルダの履歴の仕組みを作るのは少し手間がかかりそうですが,できると思
います。
 さらに複数ファイルの処理などもあります。もし完成したら,ライブラリにア
ップしようと思います。
 その他に,何か追加した方がよい機能があればお知らせください。実現できる
かどうかはわかりませんが。

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:05896 word や pdf をテキストを抽出すNo.05897
heikki さん 08/08/31 20:06
 
山紫 水明 様

フォルダー履歴もできるのですか。
複数ファイル処理など思い浮かびませんでしたが、楽しみにしております。
検討をお願いしたいのは、ファイル選択の窓をもう少し長めので方が良いです。(サ
ブフォルダーが深い時全部見えません)
実行前の「1 カーソル位置に挿入、2 新しいファイルを作成」に、「戻る」があれば
どうでしょう。(カーソル位置を再変更する時便利です)
処理速度のスピードアップは可能ですか。置換処理の時、スピードアップが選択でき
ますね。(一万行ほどになると DOS窓から直接実行する時と比べ時間がかかります)
勝手なことを並べましたが、作ってくださっただけでとても感謝しております。どう
もありがとうございました。

[ ]
RE:05897 word や pdf をテキストを抽出すNo.05898
山紫水明 さん 08/08/31 22:35
 
 heikkiさん,

 少し改良したものを私のホームページにアップしておきました。
  http://homepage2.nifty.com/12sun/sansui.html
 フォルダの履歴については,一応直前のフォルダを出すようにしています。履
歴を複数出すようにするのは,少し手間がかかりますので。
 複数ファイルの一括処理はできます。
 ダイアログの幅は少し広めにしました。これも冒頭のオプションで変更できる
ようにしています。
 処理速度は少し速くなったともいます。

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:05898 word や pdf をテキストを抽出すNo.05920
heikki さん 08/10/06 11:28
 
ご親切にしてくださっているにも関わらず、返事が大変遅くなり、申し訳ありません
でした。作業が大変楽になり助かっております。ありがとうございました。
後、ひとつお願いができるなら、変換する前にエンコードの拡張子を選択できるなら
なお使い勝手がよくなるですが、いかがでしょう?

[ ]