Как подсчитать количество страниц в файле Microsoft Word, используя Ruby? - PullRequest
3 голосов
/ 06 июня 2009

В веб-приложении на Ruby я хочу, чтобы пользователи могли загружать документы. Если пользователь загружает файл Microsoft Word (.doc), я хочу, чтобы Ruby подсчитал количество страниц в файле. Было бы еще проще узнать количество слов, но количество страниц подойдет.

Как бы я это сделал? Существует ли библиотека / гем Ruby, которая может сделать это для меня? Возможно ли это, учитывая формат DOC?

Ответы [ 2 ]

4 голосов
/ 06 июня 2009

Вызовите метод ComputeStatistics () для объекта Range документа:

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)

Здесь вы найдете различные статьи по автоматизации Word с Ruby .

1 голос
/ 06 июня 2009

В ruby, чтобы открыть файл слова, вам нужно использовать:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...