Text Control 控件教程:在 .NET 中打印 MS Word DOCX 文档

虽然有用于创建 DOCX 文件的库(例如 Open XML SDK),但打印又是另一回事。打印 DOCX 文件的唯一方法是在 Microsoft Word 中打开它并手动打印。对于需要打印大量文档的 Web 应用程序或需要自动打印文档的服务器端应用程序来说,这不是一个好的解决方案。

TX Text Control是一款功能类似于 MS Word 的文字处理控件,包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理,网站内容发布,电子病历中病案模板创建、病历书写、修改历史、连续打印、病案归档等功能的实现。

TX Text Control 最新下载https://www.evget.com/vendor/118

TX Text Control不仅提供了以编程方式创建 DOCX 文件的功能,还提供了无需使用 MS Word 或 Microsoft Office Interop 即可打印这些文件的功能。本文介绍了使用 TX Text Control 打印 DOCX 文件的不同方法:

  • 通过完全打印机访问权限直接打印
  • 创建 PDF 文件
  • 从文档页面创建 SVG 图像
  • 从文档页面创建图像
准备申请

为了本演示的目的,创建了一个.NET 8 控制台应用程序。

  1. 在 Visual Studio 中,使用 .NET 8创建一个新的控制台应用程序。

  2. 解决方案资源管理器 中,选择您创建的项目,然后从项目 主菜单中选择管理 NuGet 包...。

    包源 下拉菜单中选择文本控制离线包。

    安装以下软件包的最新版本:

    • TX文本控制.文本控制.ASP.SDK
直接打印

TX Text Control 提供了一种Print 方法,可用于将当前文档打印到默认打印机。以下代码显示如何在控制台应用程序中将文档打印到默认打印机。

复制代码
using System.Drawing.Printing;

using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl())
{
tx.Create();
tx.Load("test.docx", TXTextControl.StreamType.WordprocessingML);

PrintDocument printDocument = new PrintDocument();
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";
tx.Print(printDocument);

TX Text Control 不仅允许您加载和打印 DOCX 文件,还允许您加载和打印二进制 MS Word 格式 DOC 和 RTF 文件。

您还可以通过将打印机名称传递给 PrinterSettings对象来打印到特定打印机。在这种情况下,打印机名称是Microsoft Print to PDF,输出是 PDF 文件。

复制代码
using System.Drawing.Printing;

using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl())
{
tx.Create();
tx.Load("test.docx", TXTextControl.StreamType.WordprocessingML);

PrintDocument printDocument = new PrintDocument();
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";
printDocument.PrinterSettings.PrintToFile = true;
printDocument.PrinterSettings.PrintFileName = "test.pdf";

tx.Print(printDocument);
}
创建 PDF 文件

TX Text Control 提供了Save 方法,可用于将当前文档保存为 PDF 文件。以下代码显示如何在控制台应用程序中将文档保存为 PDF 文件。

复制代码
using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl())
{
tx.Create();
tx.Load("test.docx", TXTextControl.StreamType.WordprocessingML);
tx.Save("test.pdf", TXTextControl.StreamType.AdobePDF);
}

此代码使用ServerTextControl直接生成二进制 PDF 文档,无需使用打印机驱动程序。PDF 文件存储在文件系统中。Save方法可用于将文档保存为各种格式,包括 DOCX、DOC、RTF 和 PDF。

创建 SVG 图像

TX Text Control 还可用于从文档页面创建 SVG 图像。SVG 的优势在于它是所有浏览器都支持的标准,而且由于它是一种矢量图形格式,因此文本内容的质量不会受到任何损失。

Get Image方法有一个实现, 它将页面作为 SVG 格式的 Base64 编码字符串返回。

复制代码
string svgSources = tx.GetPages()[1].GetImage(TXTextControl.Page.PageContent.All, 300);

第一个参数PageContent定义该方法要返回的内容。第二个参数定义嵌入位图图像的分辨率。

以下方法从文档的所有页面创建 SVG 图像并将其保存到文件系统。

复制代码
public string[] CreateSVG(ServerTextControl TextControl,
bool GlyphOutlines = false,
int FromPage = 1,
int ToPage = -1)
{
// create array for SVGs
string[] svgPages = new string[(ToPage == -1 ? TextControl.Pages : ToPage)];

// set page content
TXTextControl.Page.PageContent pageContent =
GlyphOutlines ? TXTextControl.Page.PageContent.All | TXTextControl.Page.PageContent.GlyphOutlines
: TXTextControl.Page.PageContent.All;

for (int i = FromPage; i <= (ToPage == -1 ? TextControl.Pages : ToPage); i++)
{
// get SVG from page
svgPages[i - 1] = TextControl.GetPages()[i].GetImage(pageContent, 96);
}

return svgPages;
}
创建图像

TX Text Control 还可用于从文档页面创建图像(例如 JPG 或 PNG)。以下代码显示了如何在控制台应用程序中从文档页面创建图像。

复制代码
using System.Collections;
using System.Drawing.Imaging;
using System.Drawing;
using TXTextControl;

using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl())
{
tx.Create();
tx.Load("test.docx", TXTextControl.StreamType.WordprocessingML);

ArrayList inputImages = new ArrayList();

foreach (Page page in tx.GetPages())
{
MemoryStream image = new MemoryStream();
Bitmap mf = page.GetImage(100, TXTextControl.Page.PageContent.All);
mf.Save(image, ImageFormat.Png);
inputImages.Add(image);
}

// save images as files
int i = 0;
foreach (MemoryStream ms in inputImages)
{
FileStream file = new FileStream("image" + i.ToString() + ".png", FileMode.Create, FileAccess.Write);
ms.WriteTo(file);
file.Close();
i++;
}
}

GetImage方法有一个实现,它返回Bitmap存储在对象数组中的页面对象Bitmap。第二部分展示了如何将这些图像保存到文件系统。

结论

TX Text Control提供了以编程方式创建 DOCX 文件的功能,以及无需使用 MS Word 或 Microsoft Office Interop 即可打印这些文件的功能。本文介绍了使用 TX Text Control 打印 DOCX 文件的各种方法。

相关推荐
IT技术分享社区4 小时前
C#实战:使用腾讯云识别服务轻松提取火车票信息
开发语言·c#·云计算·腾讯云·共识算法
WineMonk5 小时前
.NET WPF CommunityToolkit.Mvvm框架
.net·wpf·mvvm
界面开发小八哥5 小时前
界面控件DevExpress WPF中文教程:Data Grid——卡片视图设置
.net·wpf·界面控件·devexpress·ui开发
Jacob程序员7 小时前
java导出word文件(手绘)
java·开发语言·word
q2498596937 小时前
前端预览word、excel、ppt
前端·word·excel
flashman9117 小时前
python在word中插入图片
python·microsoft·自动化·word
△曉風殘月〆10 小时前
WPF MVVM入门系列教程(二、依赖属性)
c#·wpf·mvvm
逐·風12 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
hairenjing112314 小时前
使用 Mac 数据恢复从 iPhoto 图库中恢复照片
windows·stm32·嵌入式硬件·macos·word