124 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| using LBWordLibrary;
 | |
| 
 | |
| namespace Volian.MSWord
 | |
| {
 | |
| 	public class WordDoc
 | |
| 	{
 | |
| 		private static LBApplicationClass _MyWordApp;
 | |
| 		public static LBApplicationClass MyWordApp
 | |
| 		{
 | |
| 			get 
 | |
| 			{
 | |
| 				if (_MyWordApp == null)
 | |
| 					_MyWordApp = new LBApplicationClass();
 | |
| 				return WordDoc._MyWordApp; 
 | |
| 			}
 | |
| 		}
 | |
| 		private LBDocumentClass _MyWordDoc;
 | |
| 		public LBDocumentClass MyWordDoc
 | |
| 		{
 | |
| 			get 
 | |
| 			{	return _MyWordDoc; }
 | |
| 		}
 | |
| 		private string _DocName;
 | |
| 		public string DocName
 | |
| 		{
 | |
| 			get { return _DocName; }
 | |
| 			set { _DocName = value; }
 | |
| 		}
 | |
| 		public WordDoc(string docName)
 | |
| 		{
 | |
| 			DocName = docName;
 | |
| 			_MyWordDoc = MyWordApp.Documents.Open(_DocName, false);
 | |
| 		}
 | |
| 		public string Save()
 | |
| 		{
 | |
| 			try
 | |
| 			{
 | |
| 				MyWordDoc.SaveAs(DocName, LBWdSaveFormat.wdFormatDocument);
 | |
| 				return "Successful Save";
 | |
| 			}
 | |
| 			catch (Exception ex)
 | |
| 			{
 | |
| 				return string.Format("Error during Doc save - {0}", ex.Message);
 | |
| 			}
 | |
| 		}
 | |
| 		public string Save(string docName)
 | |
| 		{
 | |
| 			DocName = docName;
 | |
| 			return Save();
 | |
| 		}
 | |
| 		public void Close()
 | |
| 		{
 | |
| 			MyWordDoc.Close(false);
 | |
| 		}
 | |
| 		public void SetLineSpacing(float linesPerInch)	// if need landscape set too: , bool landscape) 
 | |
| 		{
 | |
| 			LBSelection selection = MyWordApp.Selection;
 | |
| 			selection.WholeStory();
 | |
| 			selection.ParagraphFormat.SpaceBefore = 0;
 | |
| 			selection.ParagraphFormat.SpaceAfter = 0;
 | |
| 			selection.ParagraphFormat.LineSpacingRule = LBWdLineSpacing.wdLineSpaceExactly;
 | |
| 			selection.ParagraphFormat.LineSpacing = 72 / linesPerInch;
 | |
| 		}
 | |
| 		public float Length
 | |
| 		{
 | |
| 			get { return MyWordDoc.Length; }
 | |
| 		}
 | |
| 		public static void CloseApp()
 | |
| 		{
 | |
| 			if(_MyWordApp != null)
 | |
| 			{
 | |
| 				TryToQuit();
 | |
| 				KillWordApps();
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		private static void TryToQuit()
 | |
| 		{
 | |
| 			try
 | |
| 			{
 | |
| 				_MyWordApp.Quit(false);
 | |
| 			}
 | |
| 			catch (Exception ex)
 | |
| 			{
 | |
| 				Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message);
 | |
| 			}
 | |
| 			_MyWordApp=null;
 | |
| 		}
 | |
| 		public static void KillWordApps()
 | |
| 		{
 | |
| 			try
 | |
| 			{
 | |
| 				TerminateProcesses(WordProcesses);
 | |
| 			}
 | |
| 			catch (Exception ex)
 | |
| 			{
 | |
| 				Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message);
 | |
| 			}
 | |
| 		}
 | |
| 		public static void TerminateProcesses(System.Diagnostics.Process[] wordProcesses)
 | |
| 		{
 | |
| 			foreach (System.Diagnostics.Process proc in wordProcesses)
 | |
| 			{
 | |
| 				// TODO: Determine if Word is Visible
 | |
| 				// If it is let it run
 | |
| 				// otherwise Kill it.
 | |
| 				proc.Kill();
 | |
| 			}
 | |
| 			_MyWordApp = null;
 | |
| 		}
 | |
| 		public static System.Diagnostics.Process[] WordProcesses
 | |
| 		{
 | |
| 			get
 | |
| 			{
 | |
| 				return System.Diagnostics.Process.GetProcessesByName("WINWORD");
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| }
 | 
