在一个 Ruby 网页应用程序中,我希望用户能够上传文档。如果用户上传了 Microsoft Word 文件 (.doc),我希望 Ruby 能够计算文件中的页面数。如果能得到单词数会更好,但是页面数就足够了。
我该怎么做?是否有可以为我完成此操作的 Ruby 库/宝石?考虑到 DOC 格式,这是否可能?
我该怎么做?是否有可以为我完成此操作的 Ruby 库/宝石?考虑到 DOC 格式,这是否可能?
在文档的范围对象上调用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自动化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