Поймите, почти любой ответ на этот вопрос будет зависеть от ограничений используемых вами документов doc ...
При этом, на мой взгляд, первый вариант, если вы собираетесь это сделать, это преобразовать их в более легко анализируемый формат - отличный пример - RTF, и если вы сможете получить их в этот формат, то RTF Pocket Руководство от O Reilly - БОЛЬШОЙ ресурс для понимания структуры файлов. Преобразовать файлы довольно просто, если вы можете установить abiword на компьютер с Linux. Из командной строки вы просто запустите:
abiword --to=rtf some_file_name.doc
Конечно, в Ruby вы бы просто обернули эти команды.
Это объединение более сложное - оно будет зависеть от ваших файлов. Вам придется принять некоторые решения программиста о том, собираетесь ли вы объединять таблицы стилей в каждом отдельном документе, таблицы шрифтов и т. Д., И т. Д. И т. Д. Содержимое просто находится в середине этого файла RTF, но это все семантические и стилевые данные, о которых вам придется выбирать. Здесь нет «одного пути», просто потому, что это зависит от того, что вы хотите с другой стороны. Вот, где RTF Pocket Guide - отличная помощь - в основном вы захотите использовать его, чтобы понять структуру ваших rtf и решить, что вы делаете, а чего не хотите.
В противном случае, если вам просто нужно содержимое с семантикой NONE, вы всегда можете преобразовать их в текстовые файлы, а затем объединить их. Команда очень похожа:
abiword --to=txt some_file_name.doc
Это очень просто, он просто разделит текст, и вы можете согласовать его и покончить с этим. Но опять же, вы потеряете ВСЕ форматирование любого вида.