public void TestParseOgg() { string path = Path.GetFullPath(TestDataSample.GetAudioPath("sample.ogg")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(15, x.Count); }
public void TestParseMp3_Id3v1Only() { string path = Path.GetFullPath(TestDataSample.GetAudioPath("sample_v1_only.mp3")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(11, x.Count); }
public void TestPowerPoint() { string path = Path.GetFullPath(TestDataSample.GetOLE2Path("Test_Humor-Generation.ppt")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(8, x.Count); Assert.AreEqual("Funny Factory", x.Get("Title").Value); }
public void TestExcelFile() { string path = Path.GetFullPath(TestDataSample.GetExcelPath("comments.xls")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(8, x.Count); Assert.AreEqual("Microsoft Excel", x.Get("ApplicationName").Value); }
public void TestSolidWorksFile() { string path = Path.GetFullPath(TestDataSample.GetOLE2Path("TestSolidWorks.sldprt")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(10, x.Count); Assert.AreEqual("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}", x.Get("ClassID").Value); Assert.AreEqual("scj", x.Get("LastAuthor").Value); }
public void TestCorelDrawFile() { string path = Path.GetFullPath(TestDataSample.GetOLE2Path("TestCorel.shw")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(6, x.Count); Assert.AreEqual("thorsteb", x.Get("Author").Value); Assert.AreEqual("thorsteb", x.Get("LastAuthor").Value); }
public void TestXlsx() { string path = Path.GetFullPath(TestDataSample.GetOOXMLPath("sample.xlsx")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(4, x.Count); Assert.AreEqual("Microsoft Excel", x.Get("Application").Value); Assert.AreEqual("12.0000", x.Get("AppVersion").Value); }
public void TestDocx() { string path = Path.GetFullPath(TestDataSample.GetOOXMLPath("MultipleCoreProperties.docx")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(12, x.Count); Assert.AreEqual("Format", x.Get("Title").Value); Assert.AreEqual("Microsoft Macintosh Word", x.Get("Application").Value); }
public void TestPptx() { string path = Path.GetFullPath(TestDataSample.GetOOXMLPath("SampleShow.pptx")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(8, x.Count); Assert.AreEqual("SlideShow Sample", x.Get("Title").Value); Assert.AreEqual("Microsoft Office PowerPoint", x.Get("Application").Value); }
public void TestParseGifWithComment() { string path = Path.GetFullPath(TestDataSample.GetImagePath("sample_gimp.gif")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(4, x.Count); Assert.AreEqual(37, x.Get("PhotoHeight").Value); Assert.AreEqual(12, x.Get("PhotoWidth").Value); Assert.AreEqual("Created with GIMP", x.Get("Comment").Value); Assert.AreEqual("Created with GIMP", x.Get("GifComment").Value); }
public void TestParseTiff() { string path = Path.GetFullPath(TestDataSample.GetImagePath("sample_gimp.tiff")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(97, x.Count); Assert.AreEqual(10, x.Get("PhotoHeight").Value); Assert.AreEqual(10, x.Get("PhotoWidth").Value); Assert.AreEqual("Test", x.Get("Comment").Value); Assert.AreEqual("28/10", x.Get("FNumber").Value); Assert.AreEqual("0", x.Get("Rating").Value); Assert.AreEqual("+150", x.Get("Tint").Value); Assert.AreEqual("5", x.Get("Shadows").Value); }
public void TestWord() { string path = Path.GetFullPath(TestDataSample.GetOLE2Path("TestEditTime.doc")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(18, x.Count); path = Path.GetFullPath(TestDataSample.GetOLE2Path("TestChineseProperties.doc")); context = new ParserContext(path); parser = (IMetadataParser)ParserFactory.CreateMetadata(context); x = parser.Parse(); Assert.AreEqual(18, x.Count); Assert.AreEqual("雅虎網站分類", x.Get("Comments").Value); Assert.AreEqual("參考資料", x.Get("Title").Value); }
public void TestParseJpegWithXmp() { string path = Path.GetFullPath(TestDataSample.GetImagePath("sample_nikon1.jpg")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(17, x.Count); Assert.AreEqual(3008, x.Get("PhotoHeight").Value); Assert.AreEqual(96, x.Get("PhotoQuality").Value); Assert.AreEqual(2000, x.Get("PhotoWidth").Value); Assert.AreEqual("NIKON D70", x.Get("Model").Value); Assert.AreEqual("Kirche Sulzbach", x.Get("Keywords").Value); Assert.AreEqual("1", x.Get("Rating").Value); Assert.AreEqual("2009-08-04T20:42:36Z", x.Get("DateAcquired").Value); Assert.AreEqual("Microsoft Windows Photo Gallery 6.0.6001.18000", x.Get("Software").Value); Assert.AreEqual("Microsoft Windows Photo Gallery 6.0.6001.18000", x.Get("creatortool").Value); }
public void TestParseJpeg() { string path = Path.GetFullPath(TestDataSample.GetImagePath("sample_sony1.jpg")); ParserContext context = new ParserContext(path); IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context); ToxyMetadata x = parser.Parse(); Assert.AreEqual(12, x.Count); Assert.AreEqual(2592, x.Get("PhotoHeight").Value); Assert.AreEqual(95, x.Get("PhotoQuality").Value); Assert.AreEqual(3872, x.Get("PhotoWidth").Value); Assert.AreEqual("DSLR-A200", x.Get("Model").Value); Assert.AreEqual((uint)400, x.Get("ISOSpeedRatings").Value); Assert.AreEqual(5.6, x.Get("FNumber").Value); Assert.AreEqual((double)35, x.Get("FocalLength").Value); Assert.AreEqual((uint)52, x.Get("FocalLengthIn35mmFilm").Value); Assert.AreEqual(new DateTime(2009, 11, 21, 12, 39, 39), x.Get("DateTime").Value); }
static int Main(string[] args) { try { Console.OutputEncoding = Encoding.UTF8; var encoding = "UTF-8"; var flags = Flags.None; var caught = Flags.None; var arguments = new ArrayList(args); int i; if ((i = arguments.IndexOf("/encoding")) != -1) { arguments.RemoveAt(i); if (i < arguments.Count) { encoding = (string)arguments[i]; arguments.RemoveAt(i); } } if ((i = arguments.IndexOf("/text")) != -1) { arguments.RemoveAt(i); flags |= Flags.Text; } if ((i = arguments.IndexOf("/metadata")) != -1) { arguments.RemoveAt(i); flags |= Flags.Metadata; } if (arguments.Count != 1) { Console.WriteLine(Usage); return(arguments.Count); } var filepath = (string)arguments[0]; ParserContext context = new ParserContext(filepath); context.Encoding = Encoding.GetEncoding(encoding); ITextParser tparser = null; if (flags == Flags.None || (flags & Flags.Text) != 0) { try { tparser = ParserFactory.CreateText(context); } catch (Exception e) { if (flags == Flags.None) { flags = Flags.Metadata; } else { caught |= Flags.Text; Console.WriteLine(e); } } } if ((flags & Flags.Metadata) != 0) { try { var parser = ParserFactory.CreateMetadata(context); Console.WriteLine(string.Format("[{0}]", parser.GetType().Name)); var metadatas = parser.Parse(); foreach (var data in metadatas) { Console.WriteLine(string.Format("{0} = {1}", data.Name.PadRight(23), data.Value.ToString())); } Console.WriteLine(); } catch (Exception e) { caught |= Flags.Metadata; Console.WriteLine(e); } } if (tparser != null) { try { if ((flags & Flags.Text) != 0) { Console.WriteLine(string.Format("[{0}]", tparser.GetType().Name)); } var text = tparser.Parse(); if (text.EndsWith("\r")) // as seems to happen with .doc files { text = text.Replace('\r', '\n'); } Console.Write(text); } catch (Exception e) { caught |= Flags.Text; Console.WriteLine(e); } } return((int)caught); } catch (Exception e) { Console.Write(e); return(-1); } }
private void ShowDocument(string filepath, string encoding, string extension) { ParserContext context = new ParserContext(filepath); context.Encoding = Encoding.GetEncoding(encoding); if (Mode == ViewMode.Text) { AppendRichTextBox(); var tparser = ParserFactory.CreateText(context); rtbPanel.Text = tparser.Parse(); tbParserType.Text = tparser.GetType().Name; } else if (Mode == ViewMode.Structured) { switch (extension) { case ".csv": AppendSpreadsheetGrid(); context.Properties.Add("HasHeader", "1"); ISpreadsheetParser csvparser = ParserFactory.CreateSpreadsheet(context); ss = csvparser.Parse(); tbParserType.Text = csvparser.GetType().Name; var table1 = ss.Tables[0]; ShowToGrid(table1); cbSheets.Items.Clear(); foreach (var table in ss.Tables) { cbSheets.Items.Add(table.Name); } cbSheets.SelectedIndex = 0; panel1.Visible = true; break; case ".xlsx": case ".xls": AppendSpreadsheetGrid(); ISpreadsheetParser ssparser = ParserFactory.CreateSpreadsheet(context); ss = ssparser.Parse(); tbParserType.Text = ssparser.GetType().Name; var table0 = ss.Tables[0]; ShowToGrid(table0); cbSheets.Items.Clear(); foreach (var table in ss.Tables) { cbSheets.Items.Add(table.Name); } cbSheets.SelectedIndex = 0; panel1.Visible = true; break; case ".vcf": AppendDataGridView(); var vparser = ParserFactory.CreateVCard(context); ToxyBusinessCards vcards = vparser.Parse(); tbParserType.Text = vparser.GetType().Name; gridPanel.GridView.DataSource = vcards.ToDataTable().DefaultView; break; case ".pptx": //TODO: show slides break; case ".xml": case ".htm": case ".html": AppendTreePanel(); var domparser = ParserFactory.CreateDom(context); ToxyDom htmlDom = domparser.Parse(); TreeNode rootNode = treePanel.Tree.Nodes.Add(htmlDom.Root.NodeString); treePanel.Tree.BeginUpdate(); AppendTree(rootNode, htmlDom.Root); treePanel.Tree.EndUpdate(); //rootNode.ExpandAll(); break; } } else { AppendPropertyListPanel(); var tparser = ParserFactory.CreateMetadata(context); ToxyMetadata metadatas = tparser.Parse(); plPanel.Clear(); foreach (var data in metadatas) { plPanel.AddItem(data.Name, data.Value.ToString()); } tbParserType.Text = tparser.GetType().Name; } }