文書テンプレートの、文書内にあるブックマークには値が貼り付けることができるが、ヘッダにあるブックマークに貼り付けると、下記のような例外が出る。
System.ArgumentException: Cannot insert a node of this type at this location. Aspose.Words.CompositeNode.xef23aa45e7612fdd(Node x40e458b3a58f5782, Node xff5adbb92d63bf52, Boolean x7f43f79506f73a73) Aspose.Words.CompositeNode.x2729186e1a0b4aeb(Node x10aaa7cdfa38f254, Node xca09b6c2b5b18485, Node x22bff10c3dd1f70f) x28925c9b27b37a46.x5699f8523a546a42.x52b190e626f65140() Aspose.Words.Bookmark.set_Text(String value)
サポートに連絡したところ、文書テンプレートを送って下さいってことになって、お客さんのテンプレート出す訳にいかないので、新規にテンプレートを作成して実行したら、例外は発生しなかった。
結局、ブックマークの削除、追加でなく、罫線などあったので、ヘッダを一度削除して再度罫線とブックマークを設定したら問題なく貼り付けることができた。
なんとなく、文書テンプレートを作成したWordのバージョンとかって話なのか?とか。
ちなみに、ブックマークに値を貼り付けるコードはこんな感じ。
Aspose.Words.Document doc = new Document(Wordテンプレートのパス); doc.Range.Bookmarks["YYY"].Text = "貼り付けるテキスト"; // 問題なし foreach(Aspose.Words.Section sec in doc.Sections) { foreach(Aspose.Words.HeaderFooter hf in sec.HeaderFooters) { Aspose.Words.Bookmark bm = hf.Range.Bookmarks["XXX"]; // bm != null bm.Text = "貼り付けるテキスト"; // ここで上記の例外 } }