2009-06-06 43 views
3

在Ruby Web應用程序中,我希望用戶能夠上傳文檔。如果用戶上傳Microsoft Word文件(.doc),我希望Ruby能夠統計文件中的頁數。獲得單詞數量會變得更加輕鬆,但頁面數量還是會有的。如何計算使用Ruby的Microsoft Word文件中的頁面數量?

我該怎麼做?有沒有一個Ruby庫/寶石可以爲我做到這一點?鑑於DOC格式,它甚至有可能嗎?

回答

1

在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 
+0

win32ole gem只能在Windows上運行。他正在談論一個Web應用程序,所以他在Windows上運行這個應用程序的可能性非常小。當然,如果有人瘋狂地嘗試它,他們會在堆棧溢出... – 2009-06-07 22:00:36

+0

好吧,有沒有辦法做到這一點,而不是在Windows上運行? – avdgaag 2009-08-17 11:57:33

4

調用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進行自動化的各種物品。

相關問題