P
Philipp Schmid
I am programmatically insert ink into a OneNote page using the code below.
The inkdrawing object is properly rendered in the requested page. However,
the ink is not searchable and the context menu has the 'Convert Handwriting
to Text' item grayed out. I am setting isUnclassified to true which should
make the inserted ink searchable, but that doesn't seem to be the case. Is
there another step that I need to perform to get this to work? Note that if I
draw on the same page using the mouse I can create searchable ink just fine
and furthermore the page content contains appropriate InkWord objects.
Main code:
string textContent = CreateText(pageId); // see below
Validate(textContent); // no validation errors
_app.UpdatePageContent(textContent, DateTime.MinValue);
and code that creates the XML:
private string CreateText(string pageId)
{
string resultString;
using (StringWriter stringWriter = new StringWriter())
{
using (XmlTextWriter writer = new XmlTextWriter(stringWriter))
{
string pageGUID = pageId.Substring(0, pageId.Length - 7);
string pagePath = @"Projects\Economica.one";
writer.WriteStartElement("oneage");
writer.WriteAttributeString("xmlnsne",
@"http://schemas.microsoft.com/office/onenote/2007/onenote");
writer.WriteAttributeString("ID", pageId);
writer.WriteStartElement("one:InkDrawing");
writer.WriteAttributeString("isUnclassified", "true");
writer.WriteAttributeString("inkOriginX", "0");
writer.WriteAttributeString("inkOriginY", "0");
writer.WriteStartElement("one:ShapeInfo");
writer.WriteStartElement("one:AnchorPoint");
writer.WriteAttributeString("x", "120");
writer.WriteAttributeString("y", "160");
writer.WriteEndElement(); // - one:AnchorPoint
writer.WriteEndElement(); // - one:ShapeInfo
writer.WriteStartElement("oneata");
writer.WriteCData(GetSampleData());
writer.WriteEndElement(); // - oneata
writer.WriteEndElement(); // - one:InkDrawing
writer.WriteEndElement(); // - oneage
}
resultString = stringWriter.ToString();
}
return resultString;
}
which creates the following XML string:
- <oneage
xmlnsne="http://schemas.microsoft.com/office/onenote/2007/onenote"
ID="{6A46FB6A-8A90-4D90-B87F-E998E4C5E95E}{1}{B0}">
- <one:InkDrawing isUnclassified="true" inkOriginX="0" inkOriginY="0">
- <one:ShapeInfo>
<one:AnchorPoint x="120" y="160" />
</one:ShapeInfo>
- <oneata>
- <![CDATA[
AOUFHQTmAYYBAXAqABofi0JwRYR1gL7QRdkEWM9UiuaXxU+PBvi60uGbIr/scczMIrFBiQ67Eyzu
eqHeuxOL5V6zSJyboSVat1ES+oeVMvLsF0G4wBa/8yv0ekVTgCx6GNVEmWVKNAYxWzMUlUCeksyY
S7VqkBwSxVpVAxBIFESAgPwHRTJGMlcNAAAABQYLZU9mZ2gZFDIIAIAUAnaM4kEzCACAEALa7OJB
Eauq00FkAxVGAEBKGDapo08wFTlp5gOmjTzALdPLTzAdOWnmAABPCQRqAxVGAEBpED6ARSgAABXU
AAHi8AAaygAACmVRgv4CE/gIVYLALAAAAAAsAAASksqC/gIr+Ai5UsqWWUlllhYsssWWWLLLLFll
gWWWKllligo/QCNLQT3MF+A44AkEEgARIB9NL142b/RKtMpCz+i/yv4FFEYAQAAABRRGAEAAAApO
IIL+ATP4BNuWXNxcEKVZVTSC/gIb+AhyUAAAs3LACj9AIhmBSSQX4DjgCQQSABEg+fZC1Mry4Uug
gWCjX05u/QUURgBAAAAFFEYAgAAACp0BwgGC/gKD+AoQAFgWAAAAlGaliykWLKlibLmgAACUBKll
zZLDctlAWBYAAAAAAACC/gJL+Ak5ZcqIzU3Ksqi1LYtgLlECUlSwlli5RNgBNixZZYqUlllAbFlE
WJUqWVLLFRBFhSVNk2RubLNJoAoAESBgl3QpfkHHAQkEEgARIFmPLk5Sfg1ArcB74/ROTZkFFEYA
QAAABRRGAMAAAAppR4L+BJP4Enm5ZSwlipYWAiUiW52Xcs3Nlm5UXBYAgv4C4/gLlYssACVLLLFi
bLlLKllliiLFqWWACgARIMCS/ip+QccBCQQSABEgJH31egB1nEGgY21wrQc+1AUURgBAAAAFFEYB
AAAACjcBCX6ACWuACgARIMCf4St+QccBCQQSABEgS1aTMddqgkeQgsJk3d9xIAUURgBAAAAFFEYBQAAA
]]>
</oneata>
</one:InkDrawing>
</oneage>
Any help would be much appreciated!
-- Philipp Schmid - Adapx
The inkdrawing object is properly rendered in the requested page. However,
the ink is not searchable and the context menu has the 'Convert Handwriting
to Text' item grayed out. I am setting isUnclassified to true which should
make the inserted ink searchable, but that doesn't seem to be the case. Is
there another step that I need to perform to get this to work? Note that if I
draw on the same page using the mouse I can create searchable ink just fine
and furthermore the page content contains appropriate InkWord objects.
Main code:
string textContent = CreateText(pageId); // see below
Validate(textContent); // no validation errors
_app.UpdatePageContent(textContent, DateTime.MinValue);
and code that creates the XML:
private string CreateText(string pageId)
{
string resultString;
using (StringWriter stringWriter = new StringWriter())
{
using (XmlTextWriter writer = new XmlTextWriter(stringWriter))
{
string pageGUID = pageId.Substring(0, pageId.Length - 7);
string pagePath = @"Projects\Economica.one";
writer.WriteStartElement("oneage");
writer.WriteAttributeString("xmlnsne",
@"http://schemas.microsoft.com/office/onenote/2007/onenote");
writer.WriteAttributeString("ID", pageId);
writer.WriteStartElement("one:InkDrawing");
writer.WriteAttributeString("isUnclassified", "true");
writer.WriteAttributeString("inkOriginX", "0");
writer.WriteAttributeString("inkOriginY", "0");
writer.WriteStartElement("one:ShapeInfo");
writer.WriteStartElement("one:AnchorPoint");
writer.WriteAttributeString("x", "120");
writer.WriteAttributeString("y", "160");
writer.WriteEndElement(); // - one:AnchorPoint
writer.WriteEndElement(); // - one:ShapeInfo
writer.WriteStartElement("oneata");
writer.WriteCData(GetSampleData());
writer.WriteEndElement(); // - oneata
writer.WriteEndElement(); // - one:InkDrawing
writer.WriteEndElement(); // - oneage
}
resultString = stringWriter.ToString();
}
return resultString;
}
which creates the following XML string:
- <oneage
xmlnsne="http://schemas.microsoft.com/office/onenote/2007/onenote"
ID="{6A46FB6A-8A90-4D90-B87F-E998E4C5E95E}{1}{B0}">
- <one:InkDrawing isUnclassified="true" inkOriginX="0" inkOriginY="0">
- <one:ShapeInfo>
<one:AnchorPoint x="120" y="160" />
</one:ShapeInfo>
- <oneata>
- <![CDATA[
AOUFHQTmAYYBAXAqABofi0JwRYR1gL7QRdkEWM9UiuaXxU+PBvi60uGbIr/scczMIrFBiQ67Eyzu
eqHeuxOL5V6zSJyboSVat1ES+oeVMvLsF0G4wBa/8yv0ekVTgCx6GNVEmWVKNAYxWzMUlUCeksyY
S7VqkBwSxVpVAxBIFESAgPwHRTJGMlcNAAAABQYLZU9mZ2gZFDIIAIAUAnaM4kEzCACAEALa7OJB
Eauq00FkAxVGAEBKGDapo08wFTlp5gOmjTzALdPLTzAdOWnmAABPCQRqAxVGAEBpED6ARSgAABXU
AAHi8AAaygAACmVRgv4CE/gIVYLALAAAAAAsAAASksqC/gIr+Ai5UsqWWUlllhYsssWWWLLLLFll
gWWWKllligo/QCNLQT3MF+A44AkEEgARIB9NL142b/RKtMpCz+i/yv4FFEYAQAAABRRGAEAAAApO
IIL+ATP4BNuWXNxcEKVZVTSC/gIb+AhyUAAAs3LACj9AIhmBSSQX4DjgCQQSABEg+fZC1Mry4Uug
gWCjX05u/QUURgBAAAAFFEYAgAAACp0BwgGC/gKD+AoQAFgWAAAAlGaliykWLKlibLmgAACUBKll
zZLDctlAWBYAAAAAAACC/gJL+Ak5ZcqIzU3Ksqi1LYtgLlECUlSwlli5RNgBNixZZYqUlllAbFlE
WJUqWVLLFRBFhSVNk2RubLNJoAoAESBgl3QpfkHHAQkEEgARIFmPLk5Sfg1ArcB74/ROTZkFFEYA
QAAABRRGAMAAAAppR4L+BJP4Enm5ZSwlipYWAiUiW52Xcs3Nlm5UXBYAgv4C4/gLlYssACVLLLFi
bLlLKllliiLFqWWACgARIMCS/ip+QccBCQQSABEgJH31egB1nEGgY21wrQc+1AUURgBAAAAFFEYB
AAAACjcBCX6ACWuACgARIMCf4St+QccBCQQSABEgS1aTMddqgkeQgsJk3d9xIAUURgBAAAAFFEYBQAAA
]]>
</oneata>
</one:InkDrawing>
</oneage>
Any help would be much appreciated!
-- Philipp Schmid - Adapx