Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从OneNote保存嵌入对象_C#_Office Interop_Office 2007_Onenote - Fatal编程技术网

C# 从OneNote保存嵌入对象

C# 从OneNote保存嵌入对象,c#,office-interop,office-2007,onenote,C#,Office Interop,Office 2007,Onenote,我的目标是以编程方式从OneNote笔记本中提取嵌入式文档。嵌入的文档可能是Office文档、PDF和其他任意文件。为内联图像获取Base64字符串没有任何困难,但为其他文件类型获取Base64字符串确实有问题 我使用的是VS 2008 C#、OneNote 2007、Windows XP SP3 我使用的是一个示例.ONE文件,它由少量文本、一个PDF文件和一个内联图像组成。我能够识别包含页面的ID和PDF的ID。我已将ID硬编码到以下示例中 // ID of the Appl

我的目标是以编程方式从OneNote笔记本中提取嵌入式文档。嵌入的文档可能是Office文档、PDF和其他任意文件。为内联图像获取Base64字符串没有任何困难,但为其他文件类型获取Base64字符串确实有问题

我使用的是VS 2008 C#、OneNote 2007、Windows XP SP3

我使用的是一个示例.ONE文件,它由少量文本、一个PDF文件和一个内联图像组成。我能够识别包含页面的ID和PDF的ID。我已将ID硬编码到以下示例中

        // ID of the Application
        string strID;
        Microsoft.Office.Interop.OneNote.Application onApplication = new Microsoft.Office.Interop.OneNote.Application();
        onApplication.OpenHierarchy(@"D:\Projects\OneNote\test.one",
            System.String.Empty, out strID, Microsoft.Office.Interop.OneNote.CreateFileType.cftSection);


        string strXML1;
        onApplication.GetPageContent("{460ABC12-855F-09E4-3724-85E8DE17BD57}{1}{B0}", out strXML1, PageInfo.piAll);

        // Get page reference
        string strXML2;
        onApplication.GetPageContent("{4AA5B6DF-1C90-0B3D-3FFD-687B0AF4A632}{1}{B0}", out strXML2, PageInfo.piAll);

        //Get Hyperlink to embedded object
        string strHyperlink;
        onApplication.GetHyperlinkToObject("{4AA5B6DF-1C90-0B3D-3FFD-687B0AF4A632}{1}{B0}", "{23A17F23-F743-0C9B-082A-BC6BD5D9CA6E}{13}{B0}", out strHyperlink);

        //Condition to ensure that the ObjectID is good.
        if ((strHyperlink != null) && (strHyperlink != ""))
        {
            //Get Base64 string.
            string strBase64;
            onApplication.GetBinaryPageContent("{4AA5B6DF-1C90-0B3D-3FFD-687B0AF4A632}{1}{B0}", "{23A17F23-F743-0C9B-082A-BC6BD5D9CA6E}{13}{B0}", out strBase64);
        }
无论我引用PDF还是内联图像,应用程序都会返回一个良好的超链接。应用程序为内联映像返回一个良好的Base64字符串。但是,如果二进制对象不存在,应用程序返回错误
0x8004200。
用于PDF。如果我尝试包含嵌入式Word文档的版本,情况也是如此

如何为PDF获取Base64字符串? 我愿意使用
http://onom.codeplex.com/
,但我还没有找到解决方案

顺便说一句,我知道OneNote会话之间的ID可能不同。在测试中,我确保在调试模式下手动查看XML时ID是正确的

下面是写入strXML2的XML片段

内联图像

<![CDATA[Attachment_Test_01]]>
</one:T>
</one:OE>
</one:Title>
<one:Image format=\"jpg\" originalPageNumber=\"0\" lastModifiedTime=\"2013-06-10T18:39:46.000Z\" objectID=\"{1A32E30F-091E-4F03-8147-D00D0D16C6FD}{20}{B0}\">
<one:Position x=\"90.0\" y=\"104.400001525879\" z=\"3\"/>
<one:Size width=\"767.9999389648437\" height=\"576.0\"/>
<one:Data>/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJ (SNIP)

谢谢。

GetBinaryPageContent
API只能用于检索图像和墨水数据。对于嵌入式文件,
pathCache
属性指向存储在OneNote缓存文件夹中的文件。您只需读取该文件即可

<![CDATA[4\r\n‘4]]>
</one:OCRText>
<one:OCRToken startPos=\"0\" region=\"0\" line=\"0\" x=\"564.631591796875\" y=\"250.1052703857422\" width=\"6.063148498535156\" height=\"5.30526351928711\"/>
<one:OCRToken startPos=\"3\" region=\"1\" line=\"1\" x=\"684.3789672851562\" y=\"462.3157653808594\" width=\"5.305229187011718\" height=\"6.821067810058594\"/>
</one:OCRData>
</one:Image>
<one:InsertedFile pathCache=\"C:\\TEST\\D62228.pdf\" pathSource=\"C:\\C++_Neural_Networks_And_Fuzzy_Logic.pdf\" preferredName=\"C++_Neural_Networks_And_Fuzzy_Logic.pdf\" lastModifiedTime=\"2013-06-10T18:39:43.000Z\" objectID=\"{23A17F23-F743-0C9B-082A-BC6BD5D9CA6E}{13}{B0}\">