C# Word OpenXML wp14:anchorId属性导致文本框对齐错误

C# Word OpenXML wp14:anchorId属性导致文本框对齐错误,c#,vb.net,ms-word,openxml,office-interop,C#,Vb.net,Ms Word,Openxml,Office Interop,所以。这是一个很难回答的问题: 我为Word 2007开发了一个Word插件,然后将其升级到Word 2010。它在2007年是稳定的,但在升级后,一个重要的功能停止工作,所以我不得不恢复我的更改 停止的特定函数在文档中拍摄所选图片,并在其旁边添加一个文本框,带有特定格式。(我将在问题末尾提供代码) 最终版本可以安装在2007和2010两个版本中,但只能在2007年使用。直到今天!。。。[怀疑] 碰巧,一个客户使用该插件在Word 2010上处理文档,令人惊讶的是,它成功地工作了 所以我去调查这

所以。这是一个很难回答的问题:

我为Word 2007开发了一个Word插件,然后将其升级到Word 2010。它在2007年是稳定的,但在升级后,一个重要的功能停止工作,所以我不得不恢复我的更改

停止的特定函数在文档中拍摄所选图片,并在其旁边添加一个文本框,带有特定格式。(我将在问题末尾提供代码)

最终版本可以安装在2007和2010两个版本中,但只能在2007年使用。直到今天!。。。[怀疑]

碰巧,一个客户使用该插件在Word 2010上处理文档,令人惊讶的是,它成功地工作了

所以我去调查这个问题。我将同一个文档的一个工作文档和一个非工作版本复制了一份,并比较了两者的OpenXML

以下是我的发现:

工作文件

这是工作文档上的图片标记:

<w:drawing>
    <wp:inline distT="0" distB="0" distL="0" distR="0">
        <wp:extent cx="3251200" cy="2285390"/>
        <wp:effectExtent l="19050" t="19050" r="25400" b="19685"/>
        <wp:docPr id="193" name="Imagem 48" descr="Elev. 4"/>
        <wp:cNvGraphicFramePr>
            <a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"/>
        </wp:cNvGraphicFramePr>
        <a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
            <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
                <pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
                    <pic:nvPicPr>
                        <pic:cNvPr id="0" name=""/>
                        <pic:cNvPicPr/>
                    </pic:nvPicPr>
                    <pic:blipFill>
                        <a:blip r:embed="rId33">
                            <a:lum/>
                        </a:blip>
                        <a:stretch>
                            <a:fillRect/>
                        </a:stretch>
                    </pic:blipFill>
                    <pic:spPr>
                        <a:xfrm>
                            <a:off x="0" y="0"/>
                            <a:ext cx="3251200" cy="2285390"/>
                        </a:xfrm>
                        <a:prstGeom prst="rect">
                            <a:avLst/>
                        </a:prstGeom>
                        <a:noFill/>
                        <a:ln w="19044" cmpd="sng">
                            <a:solidFill>
                                <a:srgbClr val="333333"/>
                            </a:solidFill>
                            <a:prstDash val="solid"/>
                        </a:ln>
                    </pic:spPr>
                </pic:pic>
            </a:graphicData>
        </a:graphic>
    </wp:inline>
</w:drawing>
<w:drawing>
    <wp:inline distT="0" distB="0" distL="0" distR="0" wp14:anchorId="0FC2E46A" wp14:editId="42C17A65">
        <wp:extent cx="3251200" cy="2285390"/>
        <wp:effectExtent l="19050" t="19050" r="25400" b="19685"/>
        <wp:docPr id="50" name="Imagem 50" descr="Elev. 1"/>
        <wp:cNvGraphicFramePr>
            <a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"/>
        </wp:cNvGraphicFramePr>
        <a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
            <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
                <pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
                    <pic:nvPicPr>
                        <pic:cNvPr id="0" name=""/>
                        <pic:cNvPicPr/>
                    </pic:nvPicPr>
                    <pic:blipFill>
                        <a:blip r:embed="rId24">
                            <a:lum/>
                        </a:blip>
                        <a:stretch>
                            <a:fillRect/>
                        </a:stretch>
                    </pic:blipFill>
                    <pic:spPr>
                        <a:xfrm>
                            <a:off x="0" y="0"/>
                            <a:ext cx="3251200" cy="2285390"/>
                        </a:xfrm>
                        <a:prstGeom prst="rect">
                            <a:avLst/>
                        </a:prstGeom>
                        <a:noFill/>
                        <a:ln w="19044" cmpd="sng">
                            <a:solidFill>
                                <a:srgbClr val="333333"/>
                            </a:solidFill>
                            <a:prstDash val="solid"/>
                        </a:ln>
                    </pic:spPr>
                </pic:pic>
            </a:graphicData>
        </a:graphic>
    </wp:inline>
</w:drawing>
问题:

正如您所见,上面的方法将文本框与图像显示时的段落顶部对齐。图像是内联的,因此,文本框顶部与图像顶部对齐。这是word 2007和参考工作文件中发生的情况

问题是:当我在非工作文档上运行此方法时,文本框最终与页面顶部对齐。没有边际

这份工作文件是例外。所有其他人的行为都与Word 2010中不起作用的人类似

我研究过MSDN文档,但没有关于这些属性的信息

因此,请:

  • wp14:anchorId和wp14:editId的属性是什么
  • 如何让Word停止生成它们
  • 或者,当这些属性存在时,如何阻止文本框转到页面顶部

  • 非常感谢。

    有两种类型的内联标记和锚定标记

    <wp:anchor distT="0" distB="0" distL="114300" distR="114300" simplePos="0" relativeHeight="251658240" behindDoc="0" locked="0" layoutInCell="1" allowOverlap="1" wp14:anchorId="7E0D7E99" wp14:editId="66BEB3EF">
    
    
    
    给定的属性wp14:anchorId和wp14:editId与anchor相关,但我可以在代码中看到,它位于内联标记中

    <wp:inline distT="0" distB="0" distL="0" distR="0" wp14:anchorId="0FC2E46A" wp14:editId="42C17A65">  
    
    
    
    内联标记应该只有一个字符

    <wp:inline distT="0" distB="0" distL="0" distR="0" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
    
    
    
    我认为这也会帮助其他人

    谢谢

    <wp:anchor distT="0" distB="0" distL="114300" distR="114300" simplePos="0" relativeHeight="251658240" behindDoc="0" locked="0" layoutInCell="1" allowOverlap="1" wp14:anchorId="7E0D7E99" wp14:editId="66BEB3EF">
    
    <wp:inline distT="0" distB="0" distL="0" distR="0" wp14:anchorId="0FC2E46A" wp14:editId="42C17A65">  
    
    <wp:inline distT="0" distB="0" distL="0" distR="0" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">