Share via


Объединяем несколько документов Word в один

Есть такая хитрость, очень полезная, например, при верстке и редактировании книг в Ворде. Допустим у вас есть несколько глав - достаточно больших по размеру, возможно с иллюстрациями и т.п. В этом случае может оказаться удобнее работать с каждой главой по отдельности, а затем объединить все документы в один.

 

Для того, чтобы каждый раз не копировать все документы в один вручную, можно воспользоваться продвинутой функцией Ворда - специальными полями. Итак, пусть в наш текущий документ мы хотим вставить документ (главу из книги), путь к которому на диске c:\documents\mydoc1.doc.

 

Выбираем меню Insert, в нем опцию Field, в списке FieldNames выбираем IncludeText, а в поле Filename указываем c:\documents\mydoc1.doc и нажимаем OK.

Если все сделано правильно, в месте, на которое указывал ваш курсор, появится вставленный документ. При этом вставленный документ будет вести себя как и все остальные специальные поля - его можно будет обновить щелчком правой кнопки мышки и выбрав опцию Update Field (или клавишу F9).

 

Для того, чтобы увидеть скрытую информацию, связанную со специальными полями, нажмите Alt-F9. Для нашего примера должно получиться:
{ INCLUDETEXT "c:\\documents\\mydoc1.doc" \* MERGEFORMAT }
В этом режиме легко создать нужное число копий этого специального поля и вписать в них правильный путь для каждого документа. При этом не забудьте про удвоенные слэши. Можно также использовать относительные пути к документу. Если наши документы находится в одной папке, достаточно написать mydoc1.doc вместо c:\\documents\\mydoc1.doc. Для того, чтобы вернуться в обычное представление, снова нажмите Alt-F9. Для того, чтобы обновить все вложенные документы (главы книги), выделите весь документ (Ctrl-A) и нажмите F9.

Если вы используете Microsoft Word 2007, опция Field будет находится в меню Insert\Quick Parts.

Comments

  • Anonymous
    January 01, 2003
    Замечательная функция! Только совершенно непроработанная ;( хотя это у меня насчёт всего оффиса такое впечатление. вроде бы всё есть, ан нет! замечаешь иногда недочёты.... но не об этом я. Имхо, надо было сделать хотя-бы кнопку browse для добавления файлов, плюс очень хотелось бы, чтобы можно было устанавливать двустороннюю связь - т.е. изменили мы текст в документе куда импортировали, и изменения повлияли бы и на импортируемый файл, а пока же как только я что либо изменяю, то меняется только в документе-сборке, но никак не отражается на источниках (документах, из которых импортировали), а при повторном обновлении все изменения вообще теряются.... Сложный вопрос хорошо это или плохо, но лично мне бы было удобно чтобы можно было применить изменения, и это не только данного случая касается, а вообще всех ссылок в документе; то же оглавление - мне бы удобней было в оглавлении править слова, чем прыгать по документу и исправлять в тексте. Ну и вопрос про пути, чего то не работают у меня относительные пути... вот пишу я адрес: 1.docx .......... хм, странный вещи: только что пытался разобраться с относительными путями, ворд повис после ввода "./1.docx" и нажатия кнопки "коды поля"... потом секунд 20 пытался восстановть документ, не смог, после этого я всё закрыл, запустил заново, и, о чудо!, относительные пути заработали! никаких больше "не удаётся найти указанный путь" (или как-то так)!!! Но вчера и сегодня не работало, не дурак же я чтобы не правильно указать имя файла в одной и той же папке раз 15! и глюк плавающий оказался, никак не могу повторить.... даже глюки глючат ;)

  • Anonymous
    January 01, 2003
    Не уверен, что знаком с понятием "ссылочной целостности" в отношении к текстовым (и даже гипертекстовым) документам. А как приложить термин из контеста баз данных сходу не соображу. :) Вы имеете в виду нарушение ссылок при копировании документа? Как раз для этого обычно используют относительные пути. А про полезность - все зависит от вашей ситуации. Фухкция, в принципе, не новая. Использование ее на практике мне в первый раз попалось лет 9 назад... Тогда еще все переходили с Word 6.0 на Word 97.

  • Anonymous
    January 01, 2003
    Относительные пути не спасают. Стоит переместить документ в подкаталог или изменить немного имя... и все, приплыли. То есть, при использовании таких документов приходится создавать еще и файлик Readme.txt и записывать в нем... вручную... требования к расположению документов.

  • Anonymous
    January 01, 2003
    Ссылочная целостность. Вот если бы поддерживалась ссылочная целостность, тогда можно было бы использовать это дело с пользою. А так... игрушка, не более того.

  • Anonymous
    January 01, 2003
    Не вижу проблемы. Перенесли файл в другое место - будьте добры изменить путь к нему в специальном поле. Следить за расположением файлов в системе - это (ИМХО) совместная ответственность пользователя и операционной системы. Если ОС не предоставляет таких возможностей - приложение ничем не сможет вам помочь. Каким образом мог бы Word (незапущенный, а, возможно, и не установленный на компьютере пользователя) узнать, что пользователь перенес/переименовал файлы? В этом может помочь только пользователь (и в редких случаях система). Например, в Висте поддерживается функция резервного копирования всех версий файлов, которые вы меняете. Наверное, технически можно было бы заставить ОС заодно и сообщать о том, куда подевались пропавшие файлы. Но я не слышал о такой функциональности ни в одном из существующих продуктов.

  • Anonymous
    January 01, 2003
    Приветствую, уважаемые. А у вас действительно работают относительные пути в полях {INCLUDETEXT "PATH"}? У меня Word 2003 SP2:

  1. абсолютные пути работают: {INCLUDETEXT "d:docschapterschapter1.doc"}
  2. относительные пути НЕ работают, хоть лопни: {INCLUDETEXT "chapterschapter1.doc"} или {INCLUDETEXT ".chapterschapter1.doc"} = "Ошибка!..."
  3. если указать имя файла без пути или относительный текущий путь {INCLUDETEXT "chapter1.doc"} или {INCLUDETEXT ".chapter1.doc"}, то Word ищет включаемый файл в папке "Мои документы". Поиск в Google способов использовать относительные пути, результатов пока не дал. Коллеги, может, вы что-нибудь посоветуете? Алексей.