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(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
Volian.MSWord.WordDoc.CloseApp();
} }
#region Windows Form Designer generated code #region Windows Form Designer generated code

View File

@ -9,8 +9,8 @@ namespace Volian.MSWord
{ {
public class WordDoc public class WordDoc
{ {
private object optional = Missing.Value; private static object optional = Missing.Value;
private object oFalse = false; private static object oFalse = false;
private object oTrue = true; private object oTrue = true;
private object oBlank = ""; private object oBlank = "";
private object oWdStory = WdUnits.wdStory; private object oWdStory = WdUnits.wdStory;
@ -21,7 +21,7 @@ namespace Volian.MSWord
private object oWdExtend = WdMovementType.wdExtend; private object oWdExtend = WdMovementType.wdExtend;
private object oWdMove = WdMovementType.wdMove; private object oWdMove = WdMovementType.wdMove;
private object o1 = 1; private object o1 = 1;
private Application m_App; private static Application m_App;
// Microsoft.Office.Interop.Word.Application App // Microsoft.Office.Interop.Word.Application App
// { // {
// get{return m_App;} // get{return m_App;}
@ -40,7 +40,7 @@ namespace Volian.MSWord
} }
public WordDoc(string sPath) public WordDoc(string sPath)
{ {
m_App = new ApplicationClass(); OpenApp();
//m_App.Visible = true; //m_App.Visible = true;
mDocName = sPath; mDocName = sPath;
object oFile = sPath; object oFile = sPath;
@ -106,7 +106,8 @@ namespace Volian.MSWord
} }
public void Close() 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) 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.LineSpacingRule = WdLineSpacing.wdLineSpaceExactly;
sel.ParagraphFormat.LineSpacing = 72/linesPerInch; // 12 ==> 6 Lines per inch 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;
}
}
} }
} }