3

Я работаю в папке Dropbox над документом Word. Я хотел бы вставить объект PDF, который будет обновляться скриптом отдельно. Проблема заключается в том, что связанный объект в меню «Вставка»> «Объект»> «Создать из файла» указывается по абсолютному пути C:\Hugh\Dropbox\figures\foo.pdf . Когда кто-то еще редактирует файл, и я возвращаюсь к файлу, объект поврежден, а ссылка повреждена.

Я бы хотел указать путь относительным путем ..\figures\foo.pdf (мой документ Word находится в \Dropbox\thedoc.docx . Как лучше всего это делать? Я пытался набрать ..\figures\foo.pdf но это не удалось .

Даже решение, которое требует размещения рисунков и файла документа в одном каталоге, будет приемлемым.

1 ответ1

2

Последний пост в этой теме на форуме Microsoft содержит возможный подход. Для будущих читателей я скопирую содержимое здесь.

Примечание. Этот подход не работает с "встроенными объектами", а только с простыми файлами изображений (подробности см. В нижней части ответа).


Файлы изображений :-)

Сначала создайте резервную копию файла с вашим словом. Затем переименуйте файл .docx в .zip (потому что это всего лишь zip-файл). Извлеките zip-файл и откройте файл word/_rels/document.xml.rels в текстовом редакторе. Вы должны найти разделы, подобные следующим:

<Relationship
      Id="rId9"
      Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
      Target="file:///C:\Hugh\Dropbox\figures\foo.png"
      TargetMode="External" />

Просто удалите путь из строки Target для каждой записи: Target="foo.png"

Затем сохраните файл и снова заархивируйте папку (или скопируйте только измененный файл в исходный zip-файл, если ваш менеджер архивов поддерживает это). Переименуйте файл .zip обратно в .docx и попробуйте открыть его с помощью Word. Надеюсь, что это не жалуется.


Вложенные или связанные объекты :-(

Внедренные или связанные объекты OLE обрабатываются иначе, чем связанные файлы изображений. Они указываются в файле word/document.xml с использованием другого синтаксиса. Например, встроенный файл Visio может выглядеть следующим образом:

<w:instrText xml:space="preserve"> LINK Visio.Drawing.11 "\\\\path\\to\\file.vsd" "" \a \p \f 0 \* MERGEFORMAT </w:instrText>

К сожалению, мне не удалось сократить путь до "file.vsd" или ".\\file.vsd" (файл находится в том же каталоге, что и документ Word). Word жалуется, что документ поврежден при попытке открыть его. Если вы скажете ему восстановить документ, он удалит весь блок w:instrText .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .