我正在 Dropbox 文件夹中处理一个 word 文档。我想插入一个 pdf 对象,该对象将由脚本单独更新。问题是“插入”>“对象”>“从文件创建”中的链接对象由绝对路径指定C:\Hugh\Dropbox\figures\foo.pdf
。当其他人编辑该文件时,我返回该文件,该对象已损坏并且链接已断开。
我想通过相对路径指定路径..\figures\foo.pdf
(我的 Word 文档在\Dropbox\thedoc.docx
。最佳做法是什么?我试过输入,..\figures\foo.pdf
但失败了。
即使需要将图形和 docx 文件放在同一目录中的解决方案也是可以接受的。
答案1
最后一篇帖子微软论坛上的这个帖子包含一种可能的方法。为了方便未来的读者,我将在此处复制该内容。
笔记:这种方法似乎不适用于“嵌入式对象”,而只适用于简单的图像文件(有关详细信息,请参阅答案的底部)。
图像文件:-)
第一的备份你的 WORD 文件。然后将.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="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
块。