在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
欢迎阅读本教程,我们将探讨如何在 C# 控制台应用程序中使用 Microsoft Interop 打印 Word 文档。 这本便于初学者阅读的指南将指导您完成以编程方式打印 Microsoft Word 文档的步骤。
在深入研究代码之前,必须做好以下几项准备工作:
Microsoft Word 安装:确保您的系统已安装 Microsoft Word。 如果没有,请前往电脑上的微软官方网站或应用商店安装。
Visual Studio 设置:您应安装 Visual Studio,并具备创建控制台应用程序的功能。 如果您是初学者,请考虑下载Visual Studio 社区此外,我们还需要使用免费的.NET、Java、Python 或 Node.js 语言,以满足我们的需求。
Word 文档:在您的机器上准备一个 Word 文档样本,用于测试。 这将是我们发送给印刷厂的文件。
打开 Visual Studio。
单击创建新项目。
搜索 "控制台应用程序 "并选择相应的 C# 模板。
使用 Interop 需要参考 Microsoft Office Interop 库。 以下是添加方法:
在 Visual Studio 中,右键单击解决方案资源管理器中的控制台项目。
导航至添加 > 参考资料。
在 "参考资料管理器 "窗口中,转到 "COM "选项卡。
在搜索栏中键入 "Microsoft Word "可筛选列表。
从结果中选择 Microsoft Word xx.x 对象库(其中 xx.x 表示版本号).
单击 "确定 "按钮添加参考文献。
您也可以使用 NuGet 软件包管理器进行安装。
确保您应用程序的目标框架与 Interop 库兼容。 您可以在解决方案资源管理器中右键单击项目,选择属性,然后查看应用程序选项卡下的目标框架来检查。 如果您遇到 Interop 库版本问题,请考虑下载必要的软件包或程序集,或调整目标框架版本。
环境设置完成后,您就可以开始编码过程了。
在处理 Word 文档时,文档对象是 Interop 服务的核心。 该对象表示 Microsoft Word 文档并提供其所有功能。
常见的任务是打开文档:
object oMissing = Type.Missing;
object fileName = @"C:\path_to_document\document.docx";
Word._Document wordDoc = wordApp.Documents.Open(ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
object oMissing = Type.Missing;
object fileName = @"C:\path_to_document\document.docx";
Word._Document wordDoc = wordApp.Documents.Open(ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
Dim oMissing As Object = Type.Missing
Dim fileName As Object = "C:\path_to_document\document.docx"
Dim wordDoc As Word._Document = wordApp.Documents.Open(fileName, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing)
带有 ref oMissing 的多个参数可能看起来令人生畏,但对于 Open 方法来说却是必不可少的,因为该方法需要许多参数,其中大部分是可选参数。
设置好环境并了解文档对象后,我们就可以深入了解打印 Word 文档的核心功能了。
要打印该文档,您可以使用以下方法:
private void ButtonPrint_Click(object sender, EventArgs e)
{
wordDoc.PrintOut();
}
private void ButtonPrint_Click(object sender, EventArgs e)
{
wordDoc.PrintOut();
}
Private Sub ButtonPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
wordDoc.PrintOut()
End Sub
此方法使用默认设置将文档发送到默认打印机。
如果要介绍打印对话框、自定义打印机设置,甚至打印多页,则需要更详细的方法:
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
object copies = "1";
object pages = "1-3"; // To print multiple pages, e.g., 1 to 3.
wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
object copies = "1";
object pages = "1-3"; // To print multiple pages, e.g., 1 to 3.
wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
Private Sub ButtonPrintWithSettings_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim copies As Object = "1"
Dim pages As Object = "1-3" ' To print multiple pages, e.g., 1 to 3.
wordDoc.PrintOut(Copies:= copies, Pages:= pages)
End Sub
在上述源代码中,我们指定了页面范围和副本数量,但潜在的自定义功能非常多。
修改打印设置的能力是程序控制的与众不同之处。 无论是调整打印机设置、定义特定打印机,还是静默打印文档,Interop 都能帮您实现。
静默打印是指在没有任何用户交互的情况下将文档发送到打印机:
object background = false;
wordDoc.PrintOut(Background: ref background);
object background = false;
wordDoc.PrintOut(Background: ref background);
Dim background As Object = False
wordDoc.PrintOut(Background:= background)
使用默认打印机以外的特定打印机打印文档:
wordApp.ActivePrinter = "Printer Name";
wordDoc.PrintOut();
wordApp.ActivePrinter = "Printer Name";
wordDoc.PrintOut();
wordApp.ActivePrinter = "Printer Name"
wordDoc.PrintOut()
除了指定打印机外,可能还需要调整打印机设置:
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;
wordDoc.PrintOut();
}
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;
wordDoc.PrintOut();
}
Dim printDialog As New PrintDialog()
If printDialog.ShowDialog() = DialogResult.OK Then
wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName
wordDoc.PrintOut()
End If
这样,用户就可以手动调整方向、双面打印等设置。
虽然 Microsoft Interop 提供了管理 Word 文档的功能,但对于严肃的商业用途来说,它还不够强大和高效。 进入IronWord-在 Word DOCX 文件处理方面,它是 Interop 的上佳替代品。 IronWord 允许在 C# 中无缝读写和操作 Excel 文件。 了解更多关于如何开始使用 IronWord.
在本教程中,我们深入探讨了利用 Microsoft Interop 在 C# 控制台应用程序中以编程方式打印 Word 文档的步骤。 我们已经了解了如何显示打印对话框、设置自定义打印设置以及控制各种打印功能,如选择指定打印机或定义页面范围。 虽然 Interop 提供了基础功能,但值得注意的是,还有一些有效的替代方案,如IronWord.