xdoc2txt2 - PDF,WORD,EXCEL,一太郎などの各種バイナリ文書からテキストを抽出

■ 概要
・xdoc2txtはPDF,WORD,EXCEL,一太郎などの各種バイナリ文書から、テキスト要素を抽出
　する汎用テキストコンバータであり、Windowsのコマンドラインで動作します。
・xdoc2txtは各種文書の構造を直接解析しているため、単独で変換できます。WORDや
　Acrobatなど、作成元のアプリケーションをインストールする必要はありません。
・高速に動作するので、各種全文検索エンジンのフィルタに最適です。
・文書の種類は、拡張子から判別します。次の拡張子のファイルに対応しています。

	.sxw	OpenOffice.org Writer
	.sxc	OpenOffice.org Calc
	.sxi	OpenOffice.org Impress
	.sxd	OpenOffice.org Draw
	.odt	Open Document (text documemts)
	.ods	Open Document (spreadsheet documemts)
	.odp	Open Document (presentation documemts)
	.odg	Open Document (drawing documemts)
	.docx/.docm	WORD 2007
	.xlsx/.xlsm	Excel 2007
	.pptx/.pptm	PowerPoint 2007
	.doc	WORD ver5.0/95/97/2000/Xp/2003
	.xls	Excel ver5.0/95/97/2000/Xp/2003
	.ppt	PowerPoint 97/2000/Xp/2003
	.rtf	リッチテキスト
	.jaw/jtw 一太郎 ver5
	.jbw/juw 一太郎 ver6
	.jfw/jvw 一太郎 ver7
	.jtd/jtt 一太郎 ver8/9/10/11/12
	.oas/oa2/oa3	OASYS/Win
	.bun	新松/松5/松6
	.wj2/wj3/wk3/wk4/123	Lotus 123 
	.wri	Windows3.1 Write 
	.pdf	Adobe PDF
	.mht	
	.html	HTML
	.eml	OutlookExpressのMailエクスポート形式
・Ver2.0から、iFilterに対応しています。xdoc2txtがネイティブに対応していない拡張子でも、対応するiFilterがあればテキスト抽出が行えます。(exe版のみの機能です)
・exe版、Dll版、COM DLL版があります。テキスト抽出の機能は同等です。


■ 動作環境
 ver1.x(MBCS版)
   Windows 95 / 98 / NT /  2000 / XP / Vista / 7(32/64) / 8(32/64) / Server 2003 / Server 2008 R2

 ver2.x(Unicode版)
   Windows 2000 / XP / Vista / 7(32/64) / 8(32/64) / Server 2003 / Server 2008 R2

■ 必須ファイル

 Ver2.0の実行には、以下のパッケージの導入が必要です。（Vista以降は基本的に不要です）
「Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)」

「指定されたプログラムは実行できません。」「このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始 できませんでした。」等のエラーメッセージが表示される場合は、
Microsoftの配布サイトから上記のパッケージをインストールしてください。


■ 著作権・利用条件について
・xdoc2txtは非営利の場合、フリーで使用できます。個人や非営利組織の利用、企業・法人
内部のイントラネットでの利用、インターネット公開サーバーを自ら構築して利用する場合
（商用サイトの運営を含む）は、商用には当たりませんので、フリーで利用できます。
・xdoc2txtを組み込んだ製品を販売して利益を得る場合は商用ライセンスにあたりますので、
作者までご相談ください。
・Hyper Estraierに含まれるxdoc2txtを、Hyper Estraierと共に配布する場合は、
商用ライセンスから除外されます。
・xdoc2txtを再配布する場合、パッケージに含まれる全ファイルを変更せずに配布して下
さい。ユーザが作製したソフトにxdoc2txtを組み込む場合、xdoc2txtを使用している旨を
マニュアル等のユーザがわかる場所に明示して下さい。また、必ず作者に配布許可を
取って下さい。 
・xdoc2txtパッケージに含まれる全ファイルの著作権は、hishidaに帰属します。 
・xdoc2txtは、無保証で現状のまま提供されます。xdoc2txtの使用または使用不能から生
じるいかなる損害（逸失利益、事業の中断、事業情報の喪失その他の金銭的損害を含む）
に関して、作者は一切責任を負いません。 
・本ソフトウェアの雑誌への掲載・収録、インターネット上での転載を許可します。
掲載される場合は、事後報告で結構ですので作者まで掲載誌についてご連絡下さい。 


■ 配布ファイル
	xdoc2txt.exe	プログラム本体
	xdoc2txt.txt	ドキュメント
	(配布される場合は、以上の2つのファイルを同梱してください)

■ コマンドオプション
	xdoc2txt.exe [options..] <filename...>

	-h	ヘルプの表示
	-s	出力のエンコードはShiftJIS(デフォルト)
	-j	出力のエンコードはJIS
	-e	出力のエンコードはEUC
	-u	出力のエンコードはUTF-16(LE)	※ Ver2.0以降
	-8	出力のエンコードはUTF-8		※ Ver2.0以降
	-i	利用できる場合にはiFilterを優先する。	Ver2.0以降
	-f	変換結果をファイルに出力。デフォルトでは標準出力に出力
	-p	文書プロパティを表示(MS Office,OpenOffice.org,一太郎で有効)
	-r=	HTML文書のルビの変換
		-r=0	ルビ削除
		-r=1	（）
		-r=2	《》青空文庫形式
	-o=	その他のオプション
		-o=0	PDFで -- ? -- の形式のページ番号を表示しない
		-o=1	PDFで改行を削除(縦書きで1字毎に改行される場合に使用)
	-g=#	PDFの字間調整オプション（省略値は92）
		# は0以上の百分率（60%の場合、-g=60と指定）
		字間が、文字高*(#/100) 以上開くと、空いているとみなして空白を出力
		-g=0	字間調整をしない
		-g=60	文字高の60%以上開くと、字間が空いているとみなす
	-v	バージョン番号表示
	-x	EXCEL2007で存在するセルのみ表示(xdoc2txt 1.33以降)

	<filename>	変換元のファイル名。ワイルドカード文字(* ?)が使用可。
		※空白を含むファイル名の場合、""で囲ってください。

	※以下のオプションは、Ver2.0から廃止されました。
	-n	PDF文書のアクセス権限の設定を無視する(cryptlib.dllが必要) 
	-c	PDFキャッシュon(デフォルトはoff)


■ xdoc2txtの使用方法

・典型的な使用方法は、次の通りです。
	例)
	xdoc2txt sample.doc
　この例ではMS-Word文書の sample.doc に含まれるテキストを標準出力に書き出しま
　す。

・次のように出力先をリダイレクトすることで、ファイルに保存することもできます。
	例)
	xdoc2txt sample.doc > sample.txt

・-f オプションを付けると、出力先をファイルに変更できます。拡張子は自動的に.txt 　になります。
	例)
	xdoc2txt -f sample.doc sample.xls
　ワイルドカード * ? が使用できるため、複数のファイルを一括してテキスト化するこ
　とが出来ます。
	例)
	xdoc2txt -f *.xls

・MS Office文書(2007を含む)、OpenOffice.org文書、一太郎文書(Ver8以降)の場合、-p オプションで文書プロパティを表示できます。
　プロパティは設定された項目のみ表示されます。
	例)
	xdoc2txt -p マニュアル.doc

	実行結果)
	<Title>KWIC Finderマニュアル</Title>
	<Author>hishida</Author>
	<Template>Normal.dot</Template>
	<LastAuthor>hishida</LastAuthor>
	<RevisionNumber>1</RevisionNumber>
	<AppName>Microsoft Word 9.0</AppName>
	<Lastprinted>2004/03/23 19:39:00</Lastprinted>
	<Created>2004/03/23 19:35:00</Created>
	<LastSaved>2004/03/23 19:44:00</LastSaved>
	<PageCount>1</PageCount>
	<WordCount>21</WordCount>
	<CharCount>121</CharCount>

■iFilterについて

Ver2.0以降では、iFilterに対応しています。
-i オプションを指定すると、拡張子に対するiFilterが使用できる場合には、iFilterを優先します。
以下のiFilterで検証しています。

・一太郎 IFilter
・DocuWorks Content Filter 
・Microsoft Office フィルタ パック
・Adobe Reader 9.5付属のiFilter 
　※Adobe Reader 10以降に付属のiFilterや、単独で配布されている「Adobe PDF IFilter v6.0」
　「Adobe PDF iFilter 9 for 64-bit platforms」は利用できません。

※iFilterの規約に従っていれば、その他サードパーティ製のiFilterも使用できると思われます。

■各ファイル形式毎の制限事項

◎ Microsoft WORD 2007/2010
・拡張子.docx .docm に対応しています。

◎ Microsoft WORD

・5.0/95/97/2000/2003に対応しています。 
・テキストはWord文書の格納順に表示するため、テキストボックスは本文テキストの後に
　表示されます。したがってテキストボックスを使用している文書では、Wordでの表示結
　果と違った表示になりますが、検索は正常に行われます。 
・ルビは、（ふりがな）の形式で表示します。囲み文字は、（字）の形式で表示します。 
・パスワードで保護されたWord文書は検索・表示できません。 
・高速保存モードには対応していません。 

◎ Microsoft EXCEL 2007/2010
・拡張子.xlsx .xlsm に対応しています。
・.xlsb(EXCEL2007バイナリブック)には未対応です。

◎ Microsoft EXCEL 5.0/95/97/2000/2003
・テキスト、数値、計算結果、テキストボックス内のテキストが検索・表示されます。
　計算式、マクロは検索対象になりません。 
・テキストボックスはファイル内の格納順に表示されるため、EXCEL上の見かけと必ずしも
　同じ順序になりません。 
・パスワードで保護されたExcel文書は検索・表示できません。 

◎ Microsoft PowerPoint 2007/2010
・拡張子.pptx .pptm に対応しています。
・テキスト要素が表示されます。 

◎ Microsoft PowerPoint 95/97/2000/2003
・テキスト要素が表示されます。 
・高速保存モードの場合、正しく表示されない場合があります。 

◎ RTF(Rich Text Format)

・テキスト部分のみ表示・検索の対象となります。表などのレイアウトは再現されません。 

◎ 一太郎

・ver5( .jaw)/6( .jbw)/7( .jfw)/8以降( .jtd)に対応しています。 
・テキスト・注釈・レイアウト枠・脚注が検索・表示されます。 
・ver5/6では、罫線も表示します。 
・注釈等のフィールドは、[ ]で表示します。 
・パスワードで保護された一太郎文書は検索・表示できません。 
・高速保存モードには対応していません。（一太郎2008からは、高速保存モードは廃止されています）
・一太郎2007以降の圧縮形式には対応していません。

◎ 富士通 OASYS Win

・OASYS文書(.OAS)、OASYS2文書(.OA2/.OA3)に対応しています。
・OASYSの特殊文字は、可能な限り近いJIS漢字に変換します。ただし二重線は太線に、
　点線は細線に変換します。 
・ワープロ専用機のOASYSフロッピーは検索できません。いったん OASYS/Winや市販のワー
　プロコンバータでWindows上のOASYS形式(.OAS .OA2 .OA3 .DOC) に変換してください。 

◎ 新松

・新松 / 松5 / 松6 の.bun形式をサポートしています。松85には未対応です。 
・テキスト部分のみが検索・表示されます。罫線等は無視されます。 

◎ Lotus 123

・.WJ2 .WJ3 .WK3 .WK4 .123に対応しています。 
・.WJ2 .WJ3 はテキスト、数値、計算結果が表示されます。
・.WK3 .WK4 .123はテキストのみが表示されます。 

◎ Adobe PDF

・PDF1.3の仕様を元に開発しています。1.4以降の文書でもテキストに関しては表示できる
　と考えられます。 
・本文内のテキストのみ検索・表示の対象となります。注釈等には対応していません。 
・Ver1.xでは、パスワード無で暗号化されたPDFを表示するためには別途 cryptlib.dll を
　を http://www31.ocn.ne.jp/~h_ishida/KWIC.html からダウンロードして解凍し、
　xdoc2txtのインストールディレクトリに入れる必要があります。
　Ver2.0以降は、パスワード無で暗号化されたPDFを標準でサポートしています。
・フォント埋め込みでカスタムエンコーディングのPDFは、PDF文書中にエンコーディング
　のマップ情報(/ToUnicode)がないと検索・表示対象にできません(例：Ghostscriptの
　Type3フォント)。もっとも、このようなファイルはAcrobat Readerのテキストツールで
　もテキストを抽出できません。 
・ページ内のテキスト要素の表示順は、ページ内のデータ格納順に行います（=PDF文書を
　作成したアプリケーションの描画順）。このためAcrobat Readerでの表示順と異なるこ
　とがあります。 
・現時点では縦書き対応は不完全であり、1字ずつ改行して表示されます。 
・対応しているエンコーディング(CMAP)の種類は以下の通りです。 

	/Identity-H(V) /UniJIS-UCS2-H(V) 
	/90ms-RKSJ-H(V) /78ms-RKSJ-H(V) 
	/90pv-RKSJ-H(V) /83pv-RKSJ-H(V) 
	/MacRomanEncoding /WinAnsiEncoding
	/H /V

・コンテンツストリームのデコードフィルター(/Filter)は、 /Ascii85Decode 、
　/FlateDecode 、/LZWDecode(xdoc2txt Ver2.0以降)に対応しています。
・次のアプリケーションで生成したPDFについて動作確認を行いました。 

	Acrobat PDFWriter 3.0/4.0/5.0
	Acrobat PDFMaker 5.0 
	Acrobat Distiller 3.0/4.0/5.0/6.0
	Acrobat Web Capture 5.0
	Adobe PageMaker 6.0J/6.5J
	Adobe Illustrator 5.5J/8.0
	Adobe InDesign 2.0J
	FrameMaker 6.0
	pdfTeX
	Ghostscript(英語のみ・日本語はだめ)
	読んでココVer9(透明テキスト)
	読取革命(透明テキスト)
	eTypist(透明テキスト)
	SkyPDF Driver 1.02
	いきなりPDF
	OpenOffice.Org.1.1
	ActiveReports 2.0J 
	easyPDF 3.1
	Jaws PDF Creator
	eXPert PDF
	JustSystem PDF Creater

■マウス操作での利用について
・デスクトップにショートカットを作成し、マウス操作でテキスト化することができます。

(1)エクスプローラで xdoc2txt.exe の上で右ボタンメニュー→[送る(N)]→[デスクトップ(ショートカットを作成)]
(2)デスクトップに作成されたアイコンの上で右ボタンメニュー→[プロパティ(R)]
(3)[リンク先(T)]の末尾に、 -f を追加。
	例）
	"C:\Program Files\kwic\xdoc2txt.exe" -f
(4)テキスト化したいファイルをアイコンにドラッグ＆ドロップすると、同じディレクトリに拡張子が.txtのファイルが出来ます。

参考記事： http://www.forest.impress.co.jp/article/2003/11/19/xdoc2txt.html
	(【窓の杜NEWS】)


■ 履歴
--
2.00β4	2012/12/28	・bug修正
2.00β3	2012/12/24	・標準出力の改行が\r\r\nになっていた問題を修正
			・書込不可のディレクトリで -f オプションを使用すると異常終了する問題修正
			・Word文書の一部のルビが表示されない問題を修正
			・Word2007で出力したPDFの一部の文字が抽出できない問題を修正

2.00β2	2012/12/19	・一部の.odtで異常終了するbug修正
			・長さ0のdocで異常終了するbug修正
2.00β1	2012/12/01	・xdoc2txt.exe にバージョンリソースを追加(1.x 系列と区別するため) 
2.00β0	2012/11/26	・一部のPDFでフリーズする問題を修正
2.00α3	2012/11/17	・Office2007/2010文書で実体参照が解釈されていなかった問題を修正
2.00α2	2012/11/15	・VC++サンプル追加、DLL版の引数順序をCOM版と同じにする。
2.00α1	2012/11/14	・COM Dll版を追加

2.00α0	2012/11/13	・内部Unicode化を行う。コンパイラをVC++6.0からVC++2008に変更。
			・出力オプションに-u(UTF16)、-8(UTF8)を追加
			・iFilterに対応(-i オプション)。
			　xdoc2txtがネイティブに対応していない拡張子でも、
			　対応するiFilterがあればテキスト抽出が行える。
			・/LZWDecodeでエンコードされたPDFに対応(Unisys特許が切れたため)。
			・cryptlib.dll を統合し、パスワード無で暗号化されたPDFに標準で対応。
			・DLL版を提供。C#とVB.Netから呼び出すサンプルを添付
			　※COM DLLではないので注意。COM版は開発中。

	※ Ver2.0では内部的に大幅な改訂を行っています。
	アプリケーションに同梱のxdoc2txtを1.xから2.xに移行する場合は、再度テストをお願いします。

---
1.46	2012/12/24	・Word文書の一部のルビが表示されない問題を修正
			・Word2007で出力したPDFの一部の文字が抽出できない問題を修正
1.45	2012/11/26	・一部のPDFでフリーズする問題を修正
1.44	2012/11/17	・docxで一部の文字の文字化けに対応
1.43	2012/10/17	・"Office Open XML File Formats "に準拠していない.xlsxで異常終了する場合がある問題を修正
1.42	2012/05/17	・一部のPDFで異常終了する場合がある問題を修正
1.41	2011/07/31	・EXCELのテキストボックスで最後の文字が欠けるbug修正（1.37で混入したbug）
1.40	2011/05/16	・一部のPDFでテキストの表示が欠落する場合がある問題を修正。
1.39	2011/04/28	・一部のPDFで余計な文字が表示される問題を修正(/Lang による言語指定が使われている文書)
1.38	2010/12/21	・一部のPDF(PDF1.5で/XRefが使用されている場合の一部の条件)で異常終了する問題修正
1.37	2010/05/16	・一部のPDF writer(Brava!Desktop)で出力したPDFが文字化けする問題に対処
			・EXCELのテキストボックスでごみが入るケースを修正
1.36	2010/01/09	・EUCエンコードのPDFが文字化けする問題を修正
1.35	2009/08/24	・空のOffice2007文書
1.34	2009/06/22	・パスワード付のOffice2007文書は"encrypted file."と表示するようにする。
			・本バージョンからzlib.dll不要(静的リンクにした)
1.33	2009/06/07	・破損したPDFで異常終了するケースを修正
			・パスワード付のOpenOffice文書で文字化けする問題を修正("encrypted file."と表示する)
			・シート数や行数が極端に多いExcel2007文書で異常終了するケースを修正。
			・-x オプション追加。EXCEL2007で存在するセルのみ表示
1.32	2008/12/01	・破損したPDFで無限ループになるケースがあるのを修正
			・Acrobat7.0以降の、128bit AESで暗号化されたPDFの読み取り対応
			 (cryptlib.dllの導入が必要)
1.31	2008/11/05	・破損したOffice2007ファイルで文字化けする問題を修正。
			・Excel2007でシート数が100付近を超えると異常終了する問題を修正
	2008/08/18	・AtiveX版 xdoc2txt.ocx を公開。配布条件はexe版と同じ。
1.30	2008/05/22	・-p オプション：Office文書のプロパティ表示に「会社名」「分類」「管理者名」を追加

1.29	2008/05/18	・Acrobat以外のPDF作成ソフトで作成されたPDFファイルで異常終了する場合がある問題を修正
			・サイズが0バイトのPDFで異常終了する問題を修正
1.28	2008/03/17	・PDFMaker8.1で作成されたPDFに対応
1.27	2008/01/20	・入力ファイルのパス名が256バイトを超えると "error in ファイル名"と表示されて処理できない問題を修正

1.26a	2007/10/21	・改行が0x0D,0x0AでないHTMLでバッファオーバーランのケースがあるのを修正
			・docxで中身がdocのファイルを正常に処理するようにする
1.26	2007/05/11	・Microsoft Office Excel2007 で列の一部が表示されないbug修正
			・PDFに関するbug修正2件(表示漏れ、異常終了対策)
1.25	2007/02/28	・Microsoft Wordの差込フィールド名の表示に対応
1.24	2007/02/18	・Microsoft Office Word2007/Excel2007/PowerPoint2007,
			  OpenOffice.org Writer/Calc/Impress/Draw,
			  Open Document Formatに対応
			・EXCELで1E+275 のように大きな桁数の数字を使用すると異常終了するbug修正。
1.23	2006/08/29	・AntenaHouse PDF Driver2.0 で作成されたPDFからテキスト抽出できない問題に対応
			(PDF1.5以降のCross-Reference Streamsに対応)
			・PDFによって、ファイルの最後までテキスト抽出できない場合があった問題を修正
1.22	2006/05/28	・PDFのエンコードによって‘’“”が文字化けするbug修正
-	2006/05/10	・商用利用の利用条件変更
1.21	2006/05/08	・【重要】一太郎Ver6のパスワード付文書を検索するとメモリ不足になるbug修正
1.20	2006/02/17	・PDFでUnicodeマッピングのリガチャ対応(ff,fi等)
1.19	2006/02/08	・PDFでバッファオーバーランの予防的修正
1.18	2006/02/04	・PowerPoint95対応
	2006/01/26	・EXCELで行の内容がすべて表示されないことがあるbug修正
1.17	2005/09/19	・PDFの字間調整パラメータ -g を追加
1.16	2005/05/02	・PDFでサポートするCMAPの種類に /H /V を追加(JISエンコーディング)
			・PDFで巨大な図形が/FlateDecodeで圧縮されている場合、メモリ確保に失敗するbugを修正
			・PDFのオプション追加
			　-o=0	PDFで -- ? -- の形式のページ番号を表示しない
			　-o=1	PDFで改行を削除(縦書きで1字毎に改行される場合)
			・HTMLのルビの出力オプション
			  -r=0	なし
			  -r=1	()
			  -r=2	《》青空文庫形式
			・HTMLのテキスト化でタグ直後の空白が消えるbugを修正
1.15	2005/04/23	・Acrobat4で作成したPDFで一部テキスト化できないケースを修正
			・Acrobatで一度でもスタンプを付けたPDFがテキスト化できないbugを修正
1.14	2005/01/31	・Justsystem PDF Creator で作成したPDFで異常終了するbug修正
			・画像のみでテキストのないPDFで異常終了するケースのあるbug修正
1.13	2004/05/30	・PDFの字間の計算を調整
			・WK4(123)で異常終了するケースがあるbug修正
1.12	2004/05/05	・PDF文書のアクセス権限の設定を無視するオプション(-n)
			・PDFで半角のCIDが表示されないbug修正
			・標準出力に出力したとき、余分な改行が表示されるbug修正
1.11	2004/04/04	・パスワード無しで暗号化されたPDF対応(128bit暗号まで)。
			　ただし別途 cryptlib.dll をダウンロードする必要有り
			・「easyPDF 3.1」「Jaws PDF Creator」で作成したPDFに対応
			・一太郎V7以降でタブ文字が削除される問題に対処
			・-p オプションを追加。Office文書のプロパティを表示
1.10	2004/03/13	・「OpenOffice.org1.1」で作成したPDFに対応 
1.09	2004/02/25	・「ActiveReports 2.0J 」で作成したPDFに対応
			・特定のPDFで異常終了するbug修正
1.08	2004/01/28	・EXCELの計算式の結果文字列に全角"±×÷"が現れた場合、
			　半角カナに文字化けするbug修正
			・余分な改行の除去
1.07	2004/01/26	・Word、EXCEL、PowerPointで全角の"±×÷"が半角カナに
			　文字化けする場合があるbug修正
-	2004/01/18	・「著作権・利用条件について」を明文化する。
1.06	2003/11/09	・ワードパッドで保存したRTFの１行目が表示されないbug修正
			・拡張子が.docのOLE文書でWord文書が含まれない場合に
			　異常終了するbug修正
1.05	2003/07/15	・Acrobat6.0で作成したPDFの表示対応
1.04	2003/03/26	・日本語PDFの字間の計算の改良
1.03	2002/11/23	・UnicodeエンコーディングのPDF対応
1.02	2002/10/18	・mht/html に対応
1.01	2002/09/09	・-cオプション追加
1.00	2002/07/08	・KWIC Finderからテキスト抽出部分を分離し、フィルタとして公開。

Copyright (C) 2002-2012, hishida
	http://www31.ocn.ne.jp/~h_ishida/ 
	hishida@bg.mbn.or.jp

