Example #1
0
        /// <summary>
        /// Return the number of Journal pages from a XmlDocument (Microsoft format)
        /// </summary>
        /// <param name="filename">XML document's filename</param>
        /// <returns>Number of pages</returns>
        public static int NumberOfPages(string filename)
        {
            Stream      inkStream = File.OpenRead(filename);
            XmlDocument xmlDoc    = ReadJnt.GetMicrosoftXmlFromJournal(inkStream);

            //Please refer to http://support.microsoft.com/default.aspx?scid=kb;en-us;318545 for help
            XmlNamespaceManager manager = new XmlNamespaceManager(xmlDoc.NameTable);

            manager.AddNamespace("sketch", "urn:schemas-microsoft-com:tabletpc:journalreader");

            XmlNode pageNode = xmlDoc.SelectSingleNode("//sketch:JournalPage[last()]", manager);

            System.Xml.XmlAttribute attribute = pageNode.Attributes["Number"];

            return(Convert.ToInt32(attribute.Value));
        }
Example #2
0
        private void ConvertToSketch(string filename, int pageNumber)
        {
            ByteHolder[] strokes;
            InkHolder[]  inks;

            Stream      inkStream   = File.OpenRead(filename);
            XmlDocument xmlDocument = ReadJnt.GetMicrosoftXmlFromJournal(inkStream);

            List <Sketch.Stroke> convertedStrokes = new List <Sketch.Stroke>();

            // The conversion process basically extracts Ink information
            // and puts it into our own Point/Stroke format.
            // The conversion process uses Converter.Converter.
            // Seek that file for specifics.
            strokes          = ExtractXmlInkObject(xmlDocument, pageNumber);
            inks             = CreateStrokes(strokes);
            convertedStrokes = ReadJnt.CreateConvertedStrokes(inks);

            this.sketch.AddStrokes(convertedStrokes);
        }