0

Microsoft.Office.Interop.OneNote リファレンスの UpdatePageContent を使用して、oneNote ページにコンテンツを追加できるかどうかを調べてみました。

XML で作成した既定のテンプレートを使用してページを作成したいのですが、msdn のドキュメントによると、この関数では次の構造のみが許可されるとのことです。

msdn ドキュメント:

UpdatePageContent メソッドに渡す XML コードに含める必要がある唯一のオブジェクトは、変更されたページ レベルのオブジェクト (ページ上のアウトライン、画像、ページ上のインクなど) です。このメソッドは、bstrPageChangesXmlIn パラメータで指定されていないページ レベルのオブジェクトを変更または削除しません。このメソッドは、渡したオブジェクトの ID と一致する ID を持つアウトラインなどのページ レベルのオブジェクトを完全に置き換えます。したがって、コード内のすべてのページ レベル オブジェクトを完全に指定する必要があります。これには、既存のコンテンツやそれらに加えたい変更も含まれます。

私の質問は: このライブラリを使用して、ページに要素を追加できますか? もしそうなら、どのように?

ありがとう

4

3 に答える 3

1

OMSpyツールを使用して、ページのコンテンツ構造を調査できます。以下は、開始に役立ついくつかのサンプルです。

pageId がある場合にページ タイトルを設定するには

        private static void SePageTitle(string pageId, string pageTitle)
    {
        Microsoft.Office.Interop.OneNote.Application m_app = new Microsoft.Office.Interop.OneNote.Application();
        string strPagTitle = "<one:Page xmlns:one=\"http://schemas.microsoft.com/office/onenote/2010/onenote\" ID=\"{0}\" >" +
              "<one:Title selected=\"partial\" lang=\"en-US\">" +
                "<one:OE style=\"font-family:Calibri;font-size:17.0pt\">" +
                  "<one:T><![CDATA[{1}]]></one:T> " +
                "</one:OE>" +
              "</one:Title>" +
            "</one:Page>";
        strPagTitle = string.Format(strPagTitle, pageId, pageTitle);
        m_app.UpdatePageContent(strPagTitle);
    }

pageId がある場合にページに要素を追加します。

        private static void SetElementInPage(string pageId)
    {
        Microsoft.Office.Interop.OneNote.Application m_app = new Microsoft.Office.Interop.OneNote.Application();
        string strPageContent = "<one:Page xmlns:one=\"http://schemas.microsoft.com/office/onenote/2010/onenote\" ID=\"{0}\" >" +
            "<one:Outline>" +
                "<one:Position x=\"36.0\" y=\"86.4000015258789\" z=\"0\" />" + 
                "<one:Size width=\"117.001953125\" height=\"40.28314971923828\" />" + 
                "<one:OEChildren>" + 
                    "<one:OE>" +
                        "<one:T><![CDATA[This is a sample data added to test out OneNote API functionality.  Following is a list item.]]></one:T>" + 
                    "</one:OE>" +
                "</one:OEChildren>" +
                "<one:OEChildren indent=\"2\">" +
                    "<one:OE  alignment=\"left\">" +
                        "<one:List>" +
                            "<one:Bullet bullet=\"2\" fontSize=\"11.0\" />" +
                        "</one:List>" + 
                        "<one:T><![CDATA[A for Apple]]></one:T>" +
                    "</one:OE>" +
                    "<one:OE  alignment=\"left\">" +
                        "<one:List>" +
                            "<one:Bullet bullet=\"2\" fontSize=\"11.0\" />" +
                        "</one:List>" + 
                        "<one:T><![CDATA[B for Ball]]></one:T>" +
                    "</one:OE>" +
                    "<one:OE  alignment=\"left\">" +
                        "<one:List>" +
                            "<one:Bullet bullet=\"2\" fontSize=\"11.0\" />" +
                        "</one:List>" + 
                        "<one:T><![CDATA[C for Cat]]></one:T>" +
                    "</one:OE>" +
               "</one:OEChildren>" +
            "</one:Outline>" +
            "</one:Page>";
        strPageContent = string.Format(strPageContent, pageId);
        m_app.UpdatePageContent(strPageContent);
    }
于 2013-02-17T07:54:18.223 に答える
0

お願いするときは、次の投稿の部分を投稿すると、他の SOF メンバーが問題を適切に理解しやすくなります。

Onepagenote を使用するための構文と問題への対処については、以下のリンクを参照してください。

http://msdn.microsoft.com/en-us/magazine/ff796230.aspx

http://social.msdn.microsoft.com/Forums/pl-PL/officegeneral/thread/4596510a-6509-4e3a-be08-c11131fa4663

于 2013-02-14T18:26:54.717 に答える