public override void Execute(WorkItem workItem) { try { m_workItem = workItem; DocumentText dtCheck; switch (workItem.Extension) { case "doc": WordDocumentReader wrdRdr = new WordDocumentReader(workItem.BaseFileName); try { dtCheck = wrdRdr.Read(); } catch (Exception) { return; // failed to discover source document } CompareDiscoveryForDoc(workItem.BaseFileName, workItem.DiscoveredText, dtCheck); break; case "ppt": PptDocumentReader pptRdr = new PptDocumentReader(workItem.BaseFileName); try { dtCheck = pptRdr.Read(); } catch (Exception) { return; // failed to discover source document } CompareDiscoveryForPpt(workItem.BaseFileName, workItem.DiscoveredText, dtCheck); break; case "xls": ExcelDocumentReader xlsRdr = new ExcelDocumentReader(workItem.BaseFileName); try { dtCheck = xlsRdr.Read(); } catch (Exception) { return; // failed to discover source document } CompareDiscoveryForXls(workItem.BaseFileName, workItem.DiscoveredText, dtCheck); break; default: throw new Exception("File extension not expected : " + workItem.Extension); } } catch (Exception e) { workItem.FailureMode = FailureMode.DiscoveryMismatch; throw e; } }
private void CleanFile(string fileName, List<ContentType> listContentTypes, List<Exclusion> listExclusion) { try { using (PptDocumentReader pptReader = new PptDocumentReader(fileName, true)) { pptReader.Clean(listContentTypes, listExclusion); } } catch (System.Exception ex) { Logger.LogError("Powerpoint Binary cleaning failed"); Logger.LogError(ex); throw; } }
private void CleanFile(string fileName, List<ContentType> listContentTypes) { try { PptDocumentReader pptReader = new PptDocumentReader(fileName, true); pptReader.Clean(listContentTypes); } catch (System.Exception ex) { Logger.LogError(ex); throw; } finally { } }
public override bool VerifyFile(TempFileForActions tempFile) { try { using (PptDocumentReader reader = new PptDocumentReader(tempFile.TempFile, true)) { reader.Read(); return true; } } catch (System.Exception ex) { Logger.LogError("PowerPoint Verification failed"); Logger.LogError(ex); } return false; }
/// <summary> /// Original incarnation of lightspeed clean method. Left for comparison. There is at least one document that gets corrupted by the /// lightspeed clean user action as opposed to the method below. see Rally DE8912 in Professional & Deltaview project. /// </summary> /// <param name="listContentTypes"></param> private void DoLightSpeedClean(List<ContentType> listContentTypes) { System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); switch (m_ft) { case Workshare.Policy.FileType.WordDocument: using (WordDocumentReader Word2003Reader1 = new WordDocumentReader(m_sFileForBinClean, true)) { Word2003Reader1.Clean(listContentTypes); } break; case Workshare.Policy.FileType.ExcelSheet: using (ExcelDocumentReader Excel2003Reader1 = new ExcelDocumentReader(m_sFileForBinClean, true)) { Excel2003Reader1.Clean(listContentTypes); } break; case Workshare.Policy.FileType.PowerPoint: using (Workshare.FCS.Lite.PptDocumentReader Ppt2003Reader1 = new PptDocumentReader(m_sFileForBinClean, true)) { Ppt2003Reader1.Clean(listContentTypes); } break; case Workshare.Policy.FileType.WordDocumentX: case Workshare.Policy.FileType.WordDocumentMacroX: case Workshare.Policy.FileType.WordDocumentTemplateX: case Workshare.Policy.FileType.WordDocumentMacroTemplateX: { string outFileName = System.IO.Path.GetTempFileName(); using (DocxDocumentReader Word2007Reader1 = new DocxDocumentReader(m_sFileForBinClean)) { using (Stream outStr = File.Open(outFileName, FileMode.Create)) { Word2007Reader1.CleanTo(outStr, listContentTypes); } } File.Copy(outFileName, m_sFileForBinClean, true); File.Delete(outFileName); break; } case Workshare.Policy.FileType.ExcelSheetX: case Workshare.Policy.FileType.ExcelSheetMacroX: case Workshare.Policy.FileType.ExcelSheetTemplateX: case Workshare.Policy.FileType.ExcelSheetMacroTemplateX: { string outFileName = System.IO.Path.GetTempFileName(); using (XlsxDocumentReader Excel2007Reader1 = new XlsxDocumentReader(m_sFileForBinClean)) { using (Stream outStr = File.Open(outFileName, FileMode.Create)) { Excel2007Reader1.CleanTo(outStr, listContentTypes); } } File.Copy(outFileName, m_sFileForBinClean, true); File.Delete(outFileName); break; } case Workshare.Policy.FileType.PowerPointX: case Workshare.Policy.FileType.PowerPointMacroX: case Workshare.Policy.FileType.PowerPointTemplateX: case Workshare.Policy.FileType.PowerPointMacroTemplateX: case Workshare.Policy.FileType.PowerPointShowX: case Workshare.Policy.FileType.PowerPointMacroShowX: { string outFileName = System.IO.Path.GetTempFileName(); using (PptxDocumentReader Ppt2007Reader1 = new PptxDocumentReader(m_sFileForBinClean)) { using (Stream outStr = File.Open(outFileName, FileMode.Create)) { Ppt2007Reader1.CleanTo(outStr, listContentTypes); } } File.Copy(outFileName, m_sFileForBinClean, true); File.Delete(outFileName); break; } default: break; } watch.Stop(); m_binCleanTime = watch.Elapsed.TotalSeconds; }
DocumentText DiscoverDocument(string sFilename) { switch (m_ft) { case Workshare.Policy.FileType.WordDocument: using (WordDocumentReader Word2003Reader1 = new WordDocumentReader(sFilename, false)) { return Word2003Reader1.Read(); } case Workshare.Policy.FileType.ExcelSheet: using (ExcelDocumentReader Excel2003Reader1 = new ExcelDocumentReader(sFilename, false)) { return Excel2003Reader1.Read(); } case Workshare.Policy.FileType.PowerPoint: using (Workshare.FCS.Lite.PptDocumentReader Ppt2003Reader1 = new PptDocumentReader(sFilename, false)) { return Ppt2003Reader1.Read(); } case Workshare.Policy.FileType.WordDocumentX: case Workshare.Policy.FileType.WordDocumentMacroX: case Workshare.Policy.FileType.WordDocumentTemplateX: case Workshare.Policy.FileType.WordDocumentMacroTemplateX: using (DocxDocumentReader Word2007Reader1 = new DocxDocumentReader(sFilename)) { return Word2007Reader1.Read(); } case Workshare.Policy.FileType.ExcelSheetX: case Workshare.Policy.FileType.ExcelSheetMacroX: case Workshare.Policy.FileType.ExcelSheetTemplateX: case Workshare.Policy.FileType.ExcelSheetMacroTemplateX: using (XlsxDocumentReader Excel2007Reader1 = new XlsxDocumentReader(sFilename)) { return Excel2007Reader1.Read(); } case Workshare.Policy.FileType.PowerPointX: case Workshare.Policy.FileType.PowerPointMacroX: case Workshare.Policy.FileType.PowerPointTemplateX: case Workshare.Policy.FileType.PowerPointMacroTemplateX: case Workshare.Policy.FileType.PowerPointShowX: case Workshare.Policy.FileType.PowerPointMacroShowX: using (PptxDocumentReader Ppt2007Reader1 = new PptxDocumentReader(sFilename)) { return Ppt2007Reader1.Read(); } default: break; } return null; }
public DocumentText DiscoverDocument(string sFilename) { switch (m_ft) { case Workshare.Policy.FileType.WordDocument: using (WordDocumentReader Word2003Reader1 = new WordDocumentReader(sFilename, false)) { return Word2003Reader1.Read(); } case Workshare.Policy.FileType.ExcelSheet: using (ExcelDocumentReader Excel2003Reader1 = new ExcelDocumentReader(sFilename, false)) { return Excel2003Reader1.Read(); } case Workshare.Policy.FileType.PowerPoint: using (Workshare.FCS.Lite.PptDocumentReader Ppt2003Reader1 = new PptDocumentReader(sFilename, false)) { return Ppt2003Reader1.Read(); } default: break; } return null; }
public void DoBinaryClean(List<ContentType> listContentTypes) { switch (m_ft) { case Workshare.Policy.FileType.WordDocument: using (WordDocumentReader Word2003Reader1 = new WordDocumentReader(m_filenameIn, true)) { Word2003Reader1.Clean(listContentTypes); } break; case Workshare.Policy.FileType.ExcelSheet: using (ExcelDocumentReader Excel2003Reader1 = new ExcelDocumentReader(m_filenameIn, true)) { Excel2003Reader1.Clean(listContentTypes); } break; case Workshare.Policy.FileType.PowerPoint: using (Workshare.FCS.Lite.PptDocumentReader Ppt2003Reader1 = new PptDocumentReader(m_filenameIn, true)) { Ppt2003Reader1.Clean(listContentTypes); } break; default: break; } }
/// <summary> /// </summary> /// <returns>A FCS.Lite.DocumentText object</returns> public FCS.Lite.Base.DocumentText AdvancedRead() { if (m_docText == null) { FCS.Lite.Base.DocumentReader docReader; switch (m_fileData.FileType) { case FileType.WordDocument: docReader = new WordDocumentReader(m_fileData.BinaryFileData); break; case FileType.PowerPoint: docReader = new PptDocumentReader(m_fileData.BinaryFileData); break; case FileType.ExcelSheet: docReader = new ExcelDocumentReader(m_fileData.BinaryFileData); break; case FileType.WordDocumentX: case FileType.WordDocumentMacroX: case FileType.WordDocumentTemplateX: case FileType.WordDocumentMacroTemplateX: docReader = new DocxDocumentReader(m_fileData.BinaryFileData); break; case FileType.PowerPointX: case FileType.PowerPointMacroX: case FileType.PowerPointTemplateX: case FileType.PowerPointMacroTemplateX: case FileType.PowerPointShowX: case FileType.PowerPointMacroShowX: docReader = new PptxDocumentReader(m_fileData.BinaryFileData); break; case FileType.ExcelSheetX: case FileType.ExcelSheetMacroX: case FileType.ExcelSheetTemplateX: case FileType.ExcelSheetMacroTemplateX: docReader = new XlsxDocumentReader(m_fileData.BinaryFileData); break; case FileType.PDFDocument: docReader = new PdfDocumentReader(m_fileData.BinaryFileData); break; default: return m_docText; } using (docReader) { m_docText = docReader.Read(); } } return m_docText; }