docx中的文本(OpenXML SDK生成)无法编辑

时间:2012-03-21 01:30:22

标签: ms-word openxml openxml-sdk

我使用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”。我也尝试将整个锁属性删除,但所有结果都相同:如果我尝试编辑段落中的其中一个标题,Word会显示错误“由于选择被锁定,因此不允许进行此修改。”

我在这里做错了什么,或者如何确保段落中的文字是可编辑的?

提前致谢。 鲁

1 个答案:

答案 0 :(得分:2)

如果将来有人需要这个,我会弄清楚罪魁祸首是什么。 退出sdt属性(sdtPr)中的w:group可以解决此问题。 从文档中:“此元素指定父结构化文档标记在文档中显示时应为限制分组。”所以它确实有道理,但很难弄明白。希望它能在未来节省一些宝贵的时间。