내 목표는 프로그래밍 방식으로 OneNote 전자 필기장에서 포함 된 문서를 추출하는 것입니다. 포함 된 문서는 Office 문서, PDF 및 기타 임의 파일 일 가능성이 큽니다. 인라인 이미지에 Base64 문자열을 가져 오는 데 어려움이 없지만 다른 파일 형식의 Base64 문자열을 가져 오는 데 문제가 있습니다.OneNote에서 포함 개체 저장
VS 2008 C#, OneNote 2007, Windows XP SP3을 사용하고 있습니다.
소량의 텍스트, PDF 파일 및 인라인 이미지로 구성된 샘플 .ONE 파일을 사용하고 있습니다. 포함 페이지의 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 문자열을 반환합니다. 그러나 응용 프로그램에서 PDF에 대한 오류 0x8004200f The binary object does not exist.
을 반환합니다. 내포 된 Word 문서가 포함 된 버전을 사용해도 마찬가지입니다.
PDF 용 Base64 문자열은 어떻게 얻을 수 있습니까? http://onom.codeplex.com/
을 사용하고 있습니다.하지만 해결책을 찾지 못했습니다.
그런데 하나의 OneNote 세션에서 다른 세션으로 ID가 다를 수 있습니다. 내 테스트에서는 ID가 디버그 모드에서 XML을 수동으로 보는 것이 올바른지 확인합니다.
다음은 strXML2에 쓰여진 XML 스 니펫입니다.
<![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}\">
The embedded PDF
<![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)
The inline image