private void ProcessDocument(string path, string tempPath, int width) { if (File.Exists(path) == false) { return; } this.FilePath = path; _currentController = null; DeleteOldSnapshot(); string newTempPath = System.IO.Path.Combine(tempPath, Guid.NewGuid().ToString()); Directory.CreateDirectory(newTempPath); foreach (var item in _pptController) { if (item.Load(path, newTempPath) == true) { int height = (int)(width * _pptSlideHeightRatio); PPTDocument pptDocument = item.ReadAll(width, height); string txt = Newtonsoft.Json.JsonConvert.SerializeObject(pptDocument); if (string.IsNullOrEmpty(txt) == false) { _snapshotForWindowsPhone = txt; _currentController = item; break; } } } }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.PPTController); _imageView = FindViewById <BorderedImageView>(Resource.Id.panoramaImage); _txtMemo = FindViewById <TextView>(Resource.Id.txtMemo); _bottomSlideList = FindViewById <BottomHorizontalListView>(Resource.Id.bottomSlideList); _ip = Intent.GetStringExtra("ip"); _port = Intent.GetStringExtra("port"); //string document = Intent.GetStringExtra("document"); string document = App.DocumentText; if (string.IsNullOrEmpty(document) == true) { Intent i = new Intent(this, typeof(MainActivity)); i.PutExtra("ip", _ip); i.PutExtra("port", _port); StartActivity(i); } _pptDocument = Newtonsoft.Json.JsonConvert.DeserializeObject <PPTDocument>(document); if (_pptDocument != null) { LoadDocument(); } StartShow(this.SlideList[0].AnimationCount); SetSlide(0); _bottomSlideList.Adapter = new BottomItemAdapter(this, Resource.Layout.bottomRow); _imageView.SetOnTouchListener(this); }
public PPTDocument ReadAll(int width, int height) { if (Directory.Exists(_tempPath) == false) { return(null); } int slideNumber = 0; List <string> files = new List <string>(); files.AddRange(Directory.GetFiles(_tempPath)); files.Sort(CompareOnlyNumbers); PPTDocument document = new PPTDocument(); for (int i = 1; i <= _current.Slides.Count; i++) { Slide slide = null; try { slide = _current.Slides[i]; } catch { } if (slide == null) { continue; } string note = string.Empty; int animationCount = 0; SlideRange nodePath = null; try { nodePath = slide.NotesPage; } catch { } if (nodePath != null) { foreach (Shape shape in nodePath.Shapes) { PpPlaceholderType currentType = PpPlaceholderType.ppPlaceholderObject; try { currentType = shape.PlaceholderFormat.Type; } catch { } if (currentType == PpPlaceholderType.ppPlaceholderBody) { if (shape.HasTextFrame == Microsoft.Office.Core.MsoTriState.msoTrue) { if (shape.TextFrame.HasText == Microsoft.Office.Core.MsoTriState.msoTrue) { note += shape.TextFrame.TextRange.Text; } } } AnimationSettings animationSettings = null; try { animationSettings = shape.AnimationSettings; if (animationSettings.Animate == Microsoft.Office.Core.MsoTriState.msoTrue) { animationCount++; } } catch { } } } try { foreach (Effect effect in slide.TimeLine.MainSequence) { if (effect.Timing.TriggerType == MsoAnimTriggerType.msoAnimTriggerOnPageClick) { animationCount++; } } } catch { } PPTPage page = new PPTPage(); page.Note = note; page.ImageAsText = ConvertToImage(files[slideNumber], width, height); page.AnimationCount = animationCount; slideNumber++; document.List.Add(page); } document.Count = document.List.Count; document.Width = width; document.Height = height; return(document); }