如何使用 vsto 将脚注转换为带标题的尾注?

How to convert Footnote to endnotes with title using vsto?

如何使用vsto给尾注加标题?如有任何建议,我们将不胜感激。

我试过以下代码:

public void ConvertFootNoteToEndNote(Word.Document myDocx, ref string sErrMsg)
{
    try
    {
        Word.WdNoteNumberStyle FootNoteNumberStyle;
        if (!(myDocx.Endnotes.Count > 0 && myDocx.Footnotes.Count > 0))
        {
            if (myDocx.Footnotes.Count > 0)
            {
                FootNoteNumberStyle = myDocx.Footnotes.NumberStyle;
                myDocx.Footnotes.Convert();
                myDocx.Endnotes.NumberStyle = FootNoteNumberStyle;
            }
        }

        Word.Range rnFootNoteRange = null;

        if (myDocx.Endnotes.Count > 0)
        {
            rnFootNoteRange = myDocx.StoryRanges[Word.WdStoryType.wdEndnotesStory];

            if (rnFootNoteRange.Paragraphs.Count != 0)
                if (rnFootNoteRange.Paragraphs[1].Range.Text != null)
                    if (rnFootNoteRange.Paragraphs[1].Range.Text.Length < 15)
                        if (rnFootNoteRange.Paragraphs[1].Range.Text.ToUpper().Contains("NOTE"))
                            return;

            rnFootNoteRange.Paragraphs.Add(rnFootNoteRange);
            Word.Paragraph objNewParagraph = rnFootNoteRange.Paragraphs.Add(rnFootNoteRange);                   
        }
    }
    catch (Exception ex)
    {
        sErrMsg = ex.StackTrace;
        throw;
    }
}

它工作正常,但我想为尾注添加标题。

我找到了。

public void ConvertFootNoteToEndNote(Word.Document myDocx, ref string sErrMsg)
        {
            try
            {
                Word.WdNoteNumberStyle FootNoteNumberStyle;
                if (!(myDocx.Endnotes.Count > 0 && myDocx.Footnotes.Count > 0))
                {
                    if (myDocx.Footnotes.Count > 0)
                    {
                        FootNoteNumberStyle = myDocx.Footnotes.NumberStyle;
                        myDocx.Footnotes.Convert();
                        myDocx.Endnotes.NumberStyle = FootNoteNumberStyle;
                    }
                }

                Word.Range rnFootNoteRange = null;

                if (myDocx.Endnotes.Count > 0)
                {
                    rnFootNoteRange = myDocx.StoryRanges[Word.WdStoryType.wdEndnotesStory];

                    if (rnFootNoteRange.Paragraphs.Count != 0)
                        if (rnFootNoteRange.Paragraphs[1].Range.Text != null)
                            if (rnFootNoteRange.Paragraphs[1].Range.Text.Length < 15)
                                if (rnFootNoteRange.Paragraphs[1].Range.Text.ToUpper().Contains("NOTE"))
                                    return;

                    rnFootNoteRange.Paragraphs.Add(rnFootNoteRange);
                    Word.Paragraph objNewParagraph = rnFootNoteRange.Paragraphs.Add(rnFootNoteRange);

                    //if (objNewParagraph != null)
                    //    objNewParagraph.Range.Text = myDocx.Endnotes.Count > 1 ? "Notes" : "Note";
                }
            }
            catch (Exception ex)
            {
                sErrMsg = ex.StackTrace;
                throw;
            }
        }