如何使用Ruby计算Microsoft Word文件中的页数?

3
在一个 Ruby 网页应用程序中,我希望用户能够上传文档。如果用户上传了 Microsoft Word 文件 (.doc),我希望 Ruby 能够计算文件中的页面数。如果能得到单词数会更好,但是页面数就足够了。
我该怎么做?是否有可以为我完成此操作的 Ruby 库/宝石?考虑到 DOC 格式,这是否可能?
2个回答

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自动化Word的各种文章。


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

win32ole gem 只能在 Windows 上运行。他谈论的是一个 Web 应用程序,因此他在 Windows 上运行的可能性非常小。当然,如果有人足够疯狂去尝试,他们会在 Stack Overflow 上找到答案... - Sarah Mei
好的,有没有在非Windows系统上运行的方法来实现这个? - avdgaag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接