我使用OpenXML SDK创建了一个docx文档。它包含组内容控件,以便能够具有嵌套的文档结构。组内容控件可以包含其他组内容控件和/或普通文本段落。结果document.xml的结构如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">   
    <w:body>  
        <w:sectPr>  
            <w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:gutter="0" w:footer="720" w:header="720" w:left="1440" w:bottom="1440" w:right="1440" w:top="1440"/>  
            <w:cols w:space="720"/><w:docGrid w:linePitch="360"/>  
        </w:sectPr>  
        <w:sdt>  
            <w:sdtPr>  
                <w:alias w:val="deel"/>  
                <w:tag w:val="deel"/>  
                <w:lock w:val="unlocked"/>  
                <w:group/>  
            </w:sdtPr>  
            <w:sdtContent>  
                <w:p>  
                    <w:pPr>  
                        <w:pStyle w:val="DeelTitel"/>  
                        <w:tabs>  
                            <w:tab w:val="clear" w:pos="360"/>  
                            <w:tab w:val="num" w:pos="1987"/>  
                        </w:tabs>  
                    </w:pPr>  
                    <w:r>  
                        <w:t>Some paragraph text here</w:t>  
                    </w:r>  
                </w:p>  
                <w:sdt>  
                    <w:sdtPr>  
                        <w:alias w:val="hoofdstuk"/>  
                        <w:tag w:val="hoofdstuk"/>  
                        <w:lock w:val="unlocked"/>  
                        <w:group/>  
                    </w:sdtPr>  
                    <w:sdtContent>  
                    <w:p>  
                        <w:pPr>  
                            <w:pStyle w:val="HoofdstukTitel"/>  
                            <w:tabs>  
                                <w:tab w:val="clear" w:pos="360"/>  
                                <w:tab w:val="num" w:pos="1987"/>  
                            </w:tabs>  
                        </w:pPr>  
                        <w:r>  
                            <w:t>Another title here one level deeper</w:t>  
                         </w:r>  
                     </w:p>
                     etc. etc.结果在Word中看起来不错,但问题是所有的文本似乎都被锁定了。正如您在上面的XML中所看到的,我尝试将SdtBlocks的lock属性设置为值"unlocked“。我还尝试去掉了整个lock属性,但都得到了相同的结果:如果我试图编辑段落中的一个标题,Word会显示错误“此修改是不允许的,因为选择已锁定”。
我在这里做错了什么吗?或者我如何确保段落中的文本是可编辑的?
提前谢谢。鲁本。
发布于 2012-03-22 09:39:39
如果将来其他人需要这个,我找到了罪魁祸首是什么。在sdt属性(sdtPr)中省略w:group可以解决这个问题。从文档中可以看到:“这个元素指定了在文档中显示时,父结构化文档标记应该是受限的分组。”所以这实际上是有道理的,但很难弄清楚。希望将来能为其他人节省一些宝贵的时间。
鲁本。
https://stackoverflow.com/questions/9797459
复制相似问题