word文档printout后关闭,无法打印
C# winform ,代码生成 WORD 文档,并打印,打印完后关闭 Word ,需要完全后台,用户看不到Word程序,dc为Document
object m_true = true;
object m_miss = Type.Missing;
app.visible=false ;
try
{
Docment dc=app.documents.add(...)
......//写入文档内容。
dc.PrintOut(ref m_true, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss, ref m_miss);
dc.Close(ref m_false, ref m_null, ref m_null);
}
finally
{
if (app != null)
{
if (app.Documents.Count == 0)
{
app.Quit(ref m_false, ref m_null, ref m_null);
app = null;
}
else app.Visible = true;
}
GC.Collect(); GC.WaitForPendingFinalizers();
}
问题出在:如果事先未打开Word程序,则打印不出任何东西,是调用 PrintOut 后马上 dc.Close()的缘故,如果去掉 dc.close()及app.quit语句,能正常打印。
printout的第一个参数是后台打印,无论为true 或false ,均不能打印,但如果事先打开 Word程序,哪怕是个空文档,又可以打印。
请教:如何等PrintOut打印完后再关闭?(别跟我说 Sleep,机子有快有慢,谁知道要 Sleep 多久?)
------解决方案--------------------
第一个参数就是用 false 啊,我一直都是这样做的,没出过任何问题啊!!!!