Open MSWord once for first document to be processed

Close MS Word when form closes
This commit is contained in:
Rich 2009-04-15 14:03:37 +00:00
parent 4101b6e37f
commit 202b79e5a8
2 changed files with 20 additions and 6 deletions

View File

@ -18,6 +18,7 @@ namespace DataLoader
components.Dispose();
}
base.Dispose(disposing);
Volian.MSWord.WordDoc.CloseApp();
}
#region Windows Form Designer generated code

View File

@ -9,8 +9,8 @@ namespace Volian.MSWord
{
public class WordDoc
{
private object optional = Missing.Value;
private object oFalse = false;
private static object optional = Missing.Value;
private static object oFalse = false;
private object oTrue = true;
private object oBlank = "";
private object oWdStory = WdUnits.wdStory;
@ -21,7 +21,7 @@ namespace Volian.MSWord
private object oWdExtend = WdMovementType.wdExtend;
private object oWdMove = WdMovementType.wdMove;
private object o1 = 1;
private Application m_App;
private static Application m_App;
// Microsoft.Office.Interop.Word.Application App
// {
// get{return m_App;}
@ -40,7 +40,7 @@ namespace Volian.MSWord
}
public WordDoc(string sPath)
{
m_App = new ApplicationClass();
OpenApp();
//m_App.Visible = true;
mDocName = sPath;
object oFile = sPath;
@ -106,7 +106,8 @@ namespace Volian.MSWord
}
public void Close()
{
m_App.Quit(ref oFalse, ref optional, ref optional);
m_Doc.Close(ref oFalse, ref optional, ref optional);
//CloseApp();
}
public void SetLineSpacing(float linesPerInch) // if need landscape set too: , bool landscape)
{
@ -118,6 +119,18 @@ namespace Volian.MSWord
sel.ParagraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceExactly;
sel.ParagraphFormat.LineSpacing = 72/linesPerInch; // 12 ==> 6 Lines per inch
}
public void OpenApp()
{
if(m_App==null)
m_App = new ApplicationClass();
}
public static void CloseApp()
{
if (m_App != null)
{
m_App.Quit(ref oFalse, ref optional, ref optional);
m_App = null;
}
}
}
}