在页脚中插入图像的.doc和.docx文档之间的代码差异

时间:2019-07-02 14:56:09

标签: vba ms-word

我想在Word中的页脚中的特定位置插入图像。我正在将此代码用于“。doc” 文档:

Option Explicit
Sub CATMain()
Dim strPathImg As String
strPathImg = "C:\Test\Img.png"
Dim wrdApp
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Dim myWrdDoc
Set myWrdDoc = wrdApp.Documents.Open("C:\Test\Document.doc") 'chage path for .docx to: "C:\Test\Document.docx"
Dim wrdFootShape
Set wrdFootShape = myWrdDoc.Sections.Last.Footers(1).Shapes
Dim objPic As Object
Set objPic = wrdFootShape.AddPicture(FileName:=strPathImg, 
LinkToFile:=False, SaveWithDocument:=True, Left:=120, Top:=50)
End Sub  

,除了“。docx” 文档外,此方法效果很好。这行代码不会插入图片,也不会显示任何错误。

在“ .docx”类型的文档的页脚中的特定位置插入图像应该采用什么方法?

预先感谢,感谢您的回答

1 个答案:

答案 0 :(得分:1)

某些版本的Word倾向于将图形对象推离页面(太高,太低,太左或太右)。引入了具有新文件格式的新图形引擎,它可能(至少部分地)是造成doc和docx之间差异的原因。

对于问题中的示例, doc 文件解释了相对于插入StoryRange的{​​{1}}的位置属性。对于 docx 文件,这很可能与文档页面有关,而不是特定的Shape。 (Story的语言参考提到相对于工程图画布。)

问题中的代码将图形从顶部向下定位50个点,这将其推到 doc 文件的页面下方。在 docx 文件中,图形位于文档顶部附近。

以下代码示例基于问题中的代码,显示了如何通过测试文档的AddPicture来实现这一点。其他保存格式也是可能的,这仅涉及正在讨论的两种文件格式。

SaveFormat