Rails 5を使用しています。Word文書(.doc)からテキストを取り出したい私はこのコードを使用していますWord文書からコンテンツを取得しようとすると「Ole :: Storage :: FormatError:OLE2署名が無効です」
text = nil
MSWordDoc::Extractor.load(file_location) do |ctl00_MainContent_List1_grdData|
text = contents.whole_contents
end
私は以下のエラーが表示されます。私は私のGemfileにこの宝石を持っています
gem 'msworddoc-extractor'
Word文書からコンテンツを取り出すには他に何が必要ですか? .docx
ファイルに同じコードを適用して.doc
ファイルに適用するといいですね。
/Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/support.rb:201: warning: constant ::Fixnum is deprecated
Ole::Storage::FormatError: OLE2 signature is invalid
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:378:in `validate!'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:370:in `initialize'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:112:in `new'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:112:in `load'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:79:in `initialize'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:85:in `new'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:85:in `open'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/msworddoc-extractor-0.2.0/lib/msworddoc/extractor.rb:11:in `load'
from /Users/davea/Documents/workspace/myproject/app/services/msword_processor_service.rb:12:in `pre_process_data'
from /Users/davea/Documents/workspace/myproject/app/services/abstract_import_service.rb:88:in `process_race_data'
from (irb):2
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/console.rb:65:in `start'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/console_helper.rb:9:in `start'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:78:in `console'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands.rb:18:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
これはインターネットからダウンロードしたWord文書です。残念ながら、別の形式に文書を再保存することはできません。私は ".doc"ファイルを開くことができるRubyソリューションを見つける必要があります。この文書をWord 2010で開くことができます。 – Dave
UNIX/Linuxでは 'file your.doc'のような' file'コマンドを使うことができます。ファイルタイプは 'Microsoft Word 2007 +'です。 'コンポジットドキュメントファイルV2ドキュメント、リトルエンディアン、Os:Windows、バージョン5.1、コードページ:1252 '。これは、ファイルの種類を判断するのに役立ちます。これはファイルヘッダーに対して同じ種類の "マジックテスト"を使用して、ファイルの種類を判別します。 – anothermh
こんにちは、UNIXのコマンドが本当に私を助けてくれました。私はファイルを適切にダウンロードしたくないことを知りました。とにかく、あなたはMSの単語の解析についてはかなり良いと感じる場合、私は別のオープンtahtはおそらく1日roの賞金に行くでしょう - http://stackoverflow.com/questions/43077897/how-do-i-データを正確に出現させるデータを解析するファイルを解析する – Dave