在Ruby Web應用程序中,我希望用戶能夠上傳文檔。如果用戶上傳Microsoft Word文件(.doc),我希望Ruby能夠統計文件中的頁數。獲得單詞數量會變得更加輕鬆,但頁面數量還是會有的。如何計算使用Ruby的Microsoft Word文件中的頁面數量?
我該怎麼做?有沒有一個Ruby庫/寶石可以爲我做到這一點?鑑於DOC格式,它甚至有可能嗎?
在Ruby Web應用程序中,我希望用戶能夠上傳文檔。如果用戶上傳Microsoft Word文件(.doc),我希望Ruby能夠統計文件中的頁數。獲得單詞數量會變得更加輕鬆,但頁面數量還是會有的。如何計算使用Ruby的Microsoft Word文件中的頁面數量?
我該怎麼做?有沒有一個Ruby庫/寶石可以爲我做到這一點?鑑於DOC格式,它甚至有可能嗎?
在Ruby中,打開你需要使用Word文件:
require 'win32ole'
word = WIN32OLE.new('word.application')
word.visible = true
word.documents.count
# open/create new document
word.documents.add
# or open file
word.documents.open(path_to_file)
(來源:http://www.ruby-forum.com/topic/99742#214485)
參見:http://www.perlmonks.org/?node_id=614609一種算法上得到適當的/預期的詞條數(注:該算法中是用Perl)
然後:
word.activedocument.close(false)
word.quit
調用ComputeStatistics()方法文檔的範圍對象:
require 'win32ole'
WdStatisticWords = 0
WdStatisticPages = 2
word = WIN32OLE.connect('Word.Application')
doc = word.ActiveDocument
word_count = doc.Range.ComputeStatistics(WdStatisticWords)
page_count = doc.Range.ComputeStatistics(WdStatisticPages)
你會發現使用Ruby here Word進行自動化的各種物品。
win32ole gem只能在Windows上運行。他正在談論一個Web應用程序,所以他在Windows上運行這個應用程序的可能性非常小。當然,如果有人瘋狂地嘗試它,他們會在堆棧溢出... – 2009-06-07 22:00:36
好吧,有沒有辦法做到這一點,而不是在Windows上運行? – avdgaag 2009-08-17 11:57:33