填充的MS Word模板MergeFields未显示在结果

时间:2015-10-28 05:27:07

标签: c# ms-word openxml

我正在尝试使用MergeFields从模板生成应用程序的MS Word输出。我正在使用this CodeProject page中的代码和C#中的DocumentFormat.OpenXml.2.5库。

我已经从docx ZIP打开了document.xml,我看到了构成合并字段的五个Runs()的序列(参见下面的处理之前)。 CodeProject页面中的代码按照它的说法执行,并用文本运行替换合并字段(参见下面的After processing)。

我的麻烦是,当我在Word中保存并打开该docx时,我看不到被替换文本的任何部分。我一直在挠头,但一直无法弄清楚出了什么问题。有人可以提供一些建议吗?提前谢谢!

处理前:

<w:r w:rsidR="00314F5B">
    <w:rPr>
        <w:sz w:val="22"/>
        <w:szCs w:val="22"/>
    </w:rPr>
    <w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r w:rsidR="00314F5B">
    <w:rPr>
        <w:sz w:val="22"/>
        <w:szCs w:val="22"/>
    </w:rPr>
    <w:instrText xml:space="preserve"> MERGEFIELD  MyApp.PatientFirstName  \* MERGEFORMAT </w:instrText>
</w:r>
<w:r w:rsidR="00314F5B">
    <w:rPr>
        <w:sz w:val="22"/>
        <w:szCs w:val="22"/>
    </w:rPr>
    <w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r w:rsidR="00314F5B">
    <w:rPr>
        <w:noProof/>
        <w:sz w:val="22"/>
        <w:szCs w:val="22"/>
    </w:rPr>
    <w:t>«MyApp.PatientFirstName»</w:t>
</w:r>
<w:r w:rsidR="00314F5B">
    <w:rPr>
        <w:sz w:val="22"/>
        <w:szCs w:val="22"/>
    </w:rPr>
    <w:fldChar w:fldCharType="end"/>
</w:r>

处理完毕后:

<w:r w:rsidR="00314F5B">
    <w:rPr>
        <w:sz w:val="22" />
        <w:szCs w:val="22" />
    </w:rPr>
    <w:r>
        <w:t>First</w:t>
    </w:r>
</w:r>

0 个答案:

没有答案