国产化Word处理控件Spire.Doc教程:在 C# 中打印 Word 文档终极指南

翻译|使用教程|编辑:吉炜炜|2025-05-27 11:56:02.777|阅读 30 次

概述:在 C# 中以编程方式打印 Word 文档可以简化业务工作流程、自动化报告和增强文档管理系统。本指南全面探讨如何使用 Spire.Doc for .NET 打印 Word 文档,涵盖从基本打印到高级自定义技术的所有内容。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

在 C# 中以编程方式打印 Word 文档可以简化业务工作流程、自动化报告和增强文档管理系统。本指南全面探讨如何使用 Spire.Doc for .NET 打印 Word 文档,涵盖从基本打印到高级自定义技术的所有内容。我们将逐步介绍每种情况下的实际代码示例,确保您能够在实际应用中实施这些解决方案。

.NET 打印 Word 文档的库

Spire.Doc for .NET 是一个强大的独立库,支持全面的 Word 文档处理,无需安装 Microsoft Office。它提供直观的 API 用于加载、编辑和打印 Word 文件(DOC/DOCX),同时保持完美的格式保真度。

首先,请通过 NuGet 包管理器安装库:

Install-Package Spire.Doc

或者,您可以从我们的官方网站载 Spire.Doc for .NET 并手动引用 DLL 文件。

在 C# 中打印 Word 文档

在 C# 中打印 Word 文档的基础包括以下三个关键步骤,示例代码如下。首先,我们创建一个 Document对象来表示我们的 Word 文件,然后加载实际文档,最后通过 PrintDocument类访问打印功能。

using Spire.Doc;
using System.Drawing.Printing;

namespace PrintWordDocument
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 初始化新的 Document 实例
            Document doc = new Document();

            // 从指定路径加载 Word 文件
            doc.LoadFromFile("Input.docx");

            // 访问用于打印操作的 PrintDocument 对象
            PrintDocument printDoc = doc.PrintDocument;

            // 发送文档到默认打印机
            printDoc.Print();
        }
    }
}

这个基础实现仅用几行代码就处理了从文档加载到实际打印的整个流程。PrintDocument对象抽象了所有底层打印操作,使开发过程变得简单。

自定义打印选项

除了基本打印外,Spire.Doc 还通过 PrinterSettings类提供广泛的自定义选项,使开发人员能够对打印过程进行细致控制。这些设置允许您根据特定需求调整输出,例如选择特定页面或配置高级打印机功能。

要获取与当前文档关联的 **PrinterSettings **对象,请使用以下代码:

PrinterSettings settings = printDoc.PrinterSettings;

现在,让我们探讨具体的设置。

1. 指定打印机名称

settings.PrinterName = "您的打印机名称";

2. 指定打印范围

settings.FromPage = 1;
settings.ToPage = 5;

3. 指定打印副本数量

settings.Copies = 2;

4. 启用双面打印

if (settings.CanDuplex)
{
    settings.Duplex = Duplex.Default;
}

5. 打印自定义纸张尺寸

settings.DefaultPageSettings.PaperSize = new PaperSize("custom", 800, 500);

6. 将 Word 打印到文件

settings.PrintToFile = true;
settings.PrinterName = "Microsoft Print to PDF";
settings.PrintFileName = @"C:\Output.pdf";

静默打印 Word 文档

在自动化环境中,您可能需要打印文档而无需任何用户交互或可见对话框。以下实现通过使用 StandardPrintController实现静默打印。

using Spire.Doc;
using System.Drawing.Printing;

namespace SilentlyPrintWord
{
    class Program
    {
        static void Main(string[] args)
        {
            // 初始化一个新的 Document 实例
            Document doc = new Document();

            // 从指定路径加载 Word 文件
            doc.LoadFromFile("Input.docx");

            // 访问用于打印操作的 PrintDocument 对象
            PrintDocument printDoc = doc.PrintDocument;

            // 禁用打印对话框
            printDoc.PrintController = new StandardPrintController();

            // 执行打印
            printDoc.Print();
        }
    }
}

静默打印的关键在于将 StandardPrintController 分配给 PrintController 属性,这样可以抑制所有与打印相关的对话框和进度指示器。这种方法非常适合服务器端应用或批处理场景,在这些场景中,用户交互不可行或不希望出现。

在一张纸上打印多页

为了节省纸张使用或创建紧凑的文档版本,Spire.Doc 支持在一张物理纸张上打印多个文档页面。PrintMultipageToOneSheet方法通过预定义的布局选项简化了此过程。

using Spire.Doc;
using Spire.Doc.Printing;
using System.Drawing.Printing;

namespace PrintMultiplePagesOnOneSheet
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 初始化一个新的 Document 实例
            Document doc = new Document();

            // 从指定路径加载 Word 文件
            doc.LoadFromFile("Input.docx");

            // 配置每页打印 2 张并执行打印
            doc.PrintMultipageToOneSheet(PagesPreSheet.TwoPages, false);
        }
    }
}

PagesPreSheet枚举提供多种布局选项(TwoPages、FourPages、SixPages 等),而布尔参数决定是否在打印纸张上包含页面边框。此功能对于创建小册子布局或文档草稿版本特别有价值。

注意 : 此功能仅适用于 .NET Framework 5.0 之前的版本。

结论

本指南展示了 Spire.Doc for .NET 如何为 C# 中的 Word 文档打印提供全面解决方案。它通过以下功能简化了该过程:

  • 基本和静默打印
  • 可定制的打印设置(打印机选择、双面、份数)
  • 每张纸打印多页以减少纸张使用

通过整合这些技术,开发者可以高效地在企业应用中自动化文档打印,提高生产力并减少手动工作。总体而言,Spire.Doc 使开发者能够创建满足多样化业务需求的强大打印解决方案。

常见问题解答

Q1. 我可以打印受密码保护的 Word 文件吗?

A : 可以,Spire.Doc支持在加载受密码保护的文档后打印它们:

doc.LoadFromFile("Protected.docx", FileFormat.Docx, "password");

加载成功后,您可以像其他文档一样打印,所有相同的自定义选项均可用。

Q2. 如何只打印 Word 文档中的选定文本?

A : 您可以通过访问文档的部分和段落提取特定内容:

Section section = doc.Sections;
Paragraph paragraph = section.Paragraphs;
// 创建新文档并包含选定内容
Document newDoc = new Document();
newDoc.Sections.Add(section.Clone());
newDoc.Print();

这种方法让您可以精确控制打印哪些文档部分。

Q3. 可以以横向模式打印文档或以编程方式调整边距吗?

A : 可以!修改 DefaultPageSettings 属性:

printDoc.DefaultPageSettings.Landscape = true;
printDoc.DefaultPageSettings.Margins = new Margins(50, 50, 50, 50);

Q4. 可以使用 Spire.Doc 打印其他文件格式(例如 PDF、Excel)吗?

A : Spire.Doc 设计用于 Word 文件(DOC/DOCX)。对于 PDF,请使用 Spire.PDF;对于 Excel,请使用 Spire.XLS

————————————————————————————————————————

关于慧都科技:

慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询慧都在线客服  ;技术交流Q群(125237868



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP