Alexander Semikashev Asked:2020-05-17 22:20:20 +0800 CST2020-05-17 22:20:20 +0800 CST 2020-05-17 22:20:20 +0800 CST 打印 Word 文档 772 我研究了有关使用 Word 文档的文档。 我正在尝试打印: app.Documents.Open(namefile); // Обрабатываю файл app.ActiveDocument.Save(); app.Dialogs[Word.WdWordDialog.wdDialogFilePrint].Show(); app.ActiveDocument.Close(); 文档已打印,一切正常,但除此之外,一个空的 Word 打开但无法关闭。 因为它可以是什么? c# 3 个回答 Voted Marchosias 2020-05-17T23:04:26+08:002020-05-17T23:04:26+08:00 尝试通过设置适当的属性来隐藏 shell app.Visible = false; 但是,通过这样的添加将所有使用 Word 的工作都推到try - catch设计中更为正确 finally { app.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(app); } iluxa1810 2020-05-18T15:22:29+08:002020-05-18T15:22:29+08:00 这里推荐一个第三方库 using System; using System.Collections.Generic; using System.Text; using Spire.Doc; using System.Windows.Forms; using System.Drawing.Printing; namespace Doc_Print { class Program { static void Main(string[] args) { Document doc = new Document(); doc.LoadFromFile("sample.doc"); PrintDialog dialog = new PrintDialog(); dialog.AllowPrintToFile = true; dialog.AllowCurrentPage = true; dialog.AllowSomePages = true; dialog.UseEXDialog = true; doc.PrintDialog = dialog; PrintDocument printDoc = doc.PrintDocument; printDoc.Print(); if (dialog.ShowDialog() == DialogResult.OK) { printDoc.Print(); } } } } 这将使您免于使用互操作。 Best Answer Alexander Semikashev 2020-06-13T00:05:05+08:002020-06-13T00:05:05+08:00 最近我对这个问题采取了一个正常的解决方案,因为破坏这个过程并不是一个正确的决定。总的来说,问题的解决方案很简单。 发送文档打印后,我关闭文档是这样的: Word.Application.ActiveDocument.Close(); 但是通过这种方式我关闭了文档,而不是程序本身。 如果您按照文档进行操作,这应该有所帮助Word.Application.Application.Quit();,但没有。 工作解决方案是这样的: Word.Application.Documents.Close();在那个电话之后 Word.Application.Application.Quit();
尝试通过设置适当的属性来隐藏 shell
app.Visible = false;
但是,通过这样的添加将所有使用 Word 的工作都推到
try - catch
设计中更为正确这里推荐一个第三方库
这将使您免于使用互操作。
最近我对这个问题采取了一个正常的解决方案,因为破坏这个过程并不是一个正确的决定。总的来说,问题的解决方案很简单。
发送文档打印后,我关闭文档是这样的:
但是通过这种方式我关闭了文档,而不是程序本身。
如果您按照文档进行操作,这应该有所帮助
Word.Application.Application.Quit();
,但没有。工作解决方案是这样的:
Word.Application.Documents.Close();
在那个电话之后Word.Application.Application.Quit();