Слияние документов Word в Ruby

У меня есть документы Word N (Office 2003), из которого я хочу сделать документ отдельного слова путем слияния всех документов N вместе в некотором порядке. Как я иду о выполнении этого в Ruby?Спасибо!

Это - просто документы, которые создаются в MS Office. Я не использую Windows и предпочел бы решения не-Windows.

Править: Это будет легко, если документы будут odt файлами, а не файлами документа?

7
задан Vijay Dev 4 August 2010 в 14:04
поделиться

3 ответа

На http://rubyonwindows.blogspot.com/search/label/word есть целая серия действительно хороших статей о word и ruby. Файлы Word действительно сложны, по крайней мере, до 2007 года, поэтому лучше автоматизировать их в word.

3
ответ дан 7 December 2019 в 07:39
поделиться

Единственное известное мне решение, отличное от Windows, - это привязки Ruby в POI. После этого код будет действительно похож на этот код .NET: Объединить документы Word как страницы одного документа с помощью VB.NET . Ключевой код, который вам нужен, - использовать Selection.InsertFile для любого количества документов в выбранном вами порядке.

Информацию о слиянии документов ODT см. В этой ветке: http://cpanforum.com/threads/9938

4
ответ дан 7 December 2019 в 07:39
поделиться

Поймите, почти любой ответ на этот вопрос будет зависеть от ограничений файлов документации, которые вы используете ...

При этом, на мой взгляд, первый вариант, если вы собираетесь для этого нужно преобразовать их в более удобный для анализа формат - RTF - отличный пример, и если вы можете перевести их в этот формат, RTF Pocket Guide от O Reilly станет БОЛЬШИМ ресурсом для понимания структуры файлов. Преобразовать файлы довольно просто, если вы можете установить abiword на машине Linux. Из командной строки вы просто запустите:

abiword --to=rtf some_file_name.doc

Конечно, в Ruby вы бы просто обернули эти команды.

Сложнее выполнить слияние - оно будет зависеть от ваших файлов. Вам нужно будет принять некоторые решения программиста о том, собираетесь ли вы комбинировать таблицы стилей в каждом отдельном документе, таблицы шрифтов и т. Д. И т. Д. И т. Д. семантические и стилевые данные, в отношении которых вам придется сделать выбор. Здесь нет «одного пути» просто потому, что это зависит от того, чего вы хотите с другой стороны.Карманное руководство по RTF может вам помочь - в основном вы захотите использовать его, чтобы понять структуру ваших RTF и решить, что вы делаете, а что не хотите.

В противном случае, если вам просто нужен контент с НИКАКОЙ семантикой, вы всегда можете преобразовать их в файлы txt, а затем объединить их. Команда очень похожа:

abiword --to=txt some_file_name.doc

Это очень просто, она просто разделит текст, и вы можете объединить его и покончить с этим. Но опять же, вы потеряете ВСЕ форматирование любого вида.

0
ответ дан 7 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: