Archive for the ‘OneNote’ Category

OneNote mit Powershell bearbeiten

19 Juni 2011

Mal wieder so ein Ding wo Powershell mit seinen Möglichkeiten strahlt. Wer OneNote kennt wird irgendwann auch mal den Wunsch haben, mit Powershell darauf zuzugreifen.

Nun gibt es schon seit einiger Zeit einen Powershell-Provider für OneNote. http://bdewey.com/2007/07/18/onenote-powershell-provider/. Weitere Infos gibts es hier http://powershell.com/cs/blogs/tobias/archive/2008/10/10/extending-powershell-with-snapins-and-microsoft-onenote.aspx. Aber es muss ja nicht immer gleich ein externes Snapin sein, wenn man nur mal schnell etwas probieren möchte.

In diesen Beispielen wird Onenote 2010 mit Powershell 2.0 benutzt.

Also gehts wie immer ganz einfach los:

$onenote = New-Object Microsoft.Office.Interop.Onenote.ApplicationClass

Damit enthält $oneNote ein COM-Objekt. Die in Frage kommenden Objekte deren Methoden und Properties werden hier beschrieben: http://msdn.microsoft.com/en-us/library/gg649853.aspx.

Nun kann man mittels GetHierarchy() verschiedene Dinge in Erfahrung bringen, vorher wird aber noch eine $xml-Variable mit $nil zugewiesen damit die Variable existiert, da sie per [ref] an GetHierarchy übergeben werden muss:

[xml]$xml = $null

$one.GetHierarchy($null, [Microsoft.Office.InterOp.OneNote.HierarchyScope]::hsNotebooks, [ref] $xml)

Der Enumeration-Typ [Microsoft.Office.InterOp.OneNote.HierarchyScope] wird hier erklärt: http://msdn.microsoft.com/en-us/library/ff966473.aspx und erlaubt auch den Zugriff auf Seiten und Sektionen also Register.

Durch die vorhergehende Initialisierung von $xml mittels dem [xml]-Typ, ist nun $xml direkt über die üblichen Powershell-Möglichkeiten mit XML-Objekten ansprechbar:

$xml.Notebooks.Notebook

listet alle Notizbücher auf, welche bekannt sind. Wenn man es detaillierter haben möchte, kann man auch hsPages benutzen:

$one.GetHierarchy($null, [Microsoft.Office.InterOp.OneNote.HierarchyScope]::hsPages, [ref] $xml)

Damit ist ein kompletter Durchgriff mittels

$page=$xml.Notebooks.Notebook[0].section[0].Page[0]

bis auf die Seite möglich.

Also wieder eine Variable als XML-Typ initialisieren:

[xml]$pagexml = $null

und direkt den Seiteninhalt holen:

$one.GetPageContent($page.ID, [ref] $pagexml)

und

$pagexml.Page

fördert dann die Seite zutage. Ja und hier bekommt man dann die interessanten Sachen zu Gesicht, wie InkDrawing oder Image.OCRData.OCRText, nicht zu vergessen die Möglichkeiten mittels Audio-Aufzeichnungen Transkriptionen zu bekommen! Aber das sind Spielereien für einen späteren Blogeintrag…

Was sehr hilfreich werden kann, bei tiefergehenden Geschichten: http://htmlagilitypack.codeplex.com/

Werbeanzeigen

Onenote 2010 Fehler 0xE0000784 mit WebDAV Hinweis oder 0xE000078B beim Synchronisieren eines Notizbuchs

18 März 2011

Wer sich mal wundert, warum das Synchronisieren eines Notizbuchs in Onenote (hier 2010) mit folgender Fehlermeldung fehlschlägt:

Dieses Notizbuch kann von Onenote nicht synchronisiert werden. Fehler während der Kommunikation mit dem Webserver, auf dem das Notizbuch gespeichert ist. (Fehlercode: 0xE000078B)

oder

Die Änderungen in diesem Notizbuch können von Onenote nicht synchronisiert werden, weil auf Ihrem Computer keine WebDAV-Unterstützung aktiviert ist. (Fehlercode: 0xE0000784)

Leider gibt es im Netz keinerlei Hinweise auf diesen Fehler. Weder bei Google noch bei Microsofts Knowledge Base. Auf der Suche nach dem Problem wurde natürlich auch überprüft, ob der für die WebDAV Unterstützung nötige Webclient Dienst läuft, aber dieser funktionierte normal.

Bei der weiteren Suche stellte sich heraus, dass aufgrund von Umstellung eines DNS-Server falsche IP-Adressen für den betreffenden Sharepoint Server, auf dem die Notizbücher lagen, geliefert wurden. Nachdem dieses Problem korrigiert wurde, funktionierte wieder alles tadellos.

Übrigens, falls der WebClient-Dienst nicht aktiv sein sollte, so versucht OneNote beim Synchronisationsvorgang diesen automatisch zu starten. Nur falls dieser auf Deaktiviert stehen sollte, gelingt dies natürlich nicht.

Nette automatische Übersetzung

29 Juni 2010

Hier als Auszug die Überschrift davon:

Alternative methods to regain the functionalities of Microsoft Office Document Imaging (MODI)

http://support.microsoft.com/?scid=kb;en-us;982760&x=4&y=3

und dazu passend die deutsche Übersetzung:

Alternative Methoden erhalten Sie die Funktionalitäten von Windows PowerShell-Virtual Machine Manager-Befehlsshell Windows PowerShell-Virtual Machine Manager-Befehlsshell Document Imaging (MODI)

http://support.microsoft.com/?scid=kb;de;982760&x=11&y=16

Alles klar?

Da OneNote mittlerweile breit verfügbar wird sollte man für seine OCR Belange OneNote einsetzen, wer noch Dokumente im MDI Format hat, hat halt Pech gehabt.