本文描述了界面组件库DevExpress的Office File API(WinForms & WPF)和受Office启发的控件在v24.1中发布的一些功能,并详细介绍了我们当前的抢先体验预览版本v24.1中的内容。
DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。
DevExpress WinForm拥有180+组件和UI库,能为Windows Forms 平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
DevExpress WPF v23.2正式版下载(Q技术交流:532598169)
Office File API
基于Unix系统的打印
在这个版本(v24.1)中,官方技术团队解决了基于.NET的Office File API应用程序的限制,并增加了对非Windows(即支持通过通用UNIX打印系统(CUPS)打印的macOS和基于UNIX的系统)中的条形码、Word、Excel和PDF文档的打印支持。在旧版本中,Word Processing Document API、Spreadsheet Document API、PDF Document API和Barcode Generation API库包括打印方法,这些方法使用非windows环境中不可用的PrinterSettings选项打印文档和条形码。为了解决.NET的限制,我们实现了一组新的API,这些API利用DevExpress.Drawing库中可用的DXPrinterSettings选项。
使用以下新方法在基于Unix的系统中打印文档和条形码:
cs
// DevExpress.XtraRichEdit.RichEditDocumentServer:
public void Print(DXPrinterSettings printerSettings, string printDocumentName);
public void Print(DXPrinterSettings printerSettings);
//DevExpress.Spreadsheet.Workbook:
public void Print(DXPrinterSettings printerSettings);
public void Print(DXPrinterSettings printerSettings, params string[] sheetNames);
public void Print(DXPrinterSettings printerSettings, IEnumerable<string> sheetNames);
//DevExpress.BarCodes.BarCode:
public void Print(DXPrinterSettings printerSettings);
对于DevExpress.Pdf.PdfDocumentProcessor类,您仍然需要调用当前的Print(PdfPrinterSettings printerSettings)方法。要修改打印设置,请使用新的PdfPrinterSettings.DXPrinterSettings选项。
WinForms&WPF的PDF Document API和PDF查看器
Layer API
这个版本更新了PDF Facade API,并添加了新的API来管理代码中的可选内容(层)可见性。
请注意,PDF文档只存储默认的可选内容配置,这意味着在保存文档时不会保留图层可见性。可见性设置仅适用于在PDF Viewer组件中预览文档、打印文档或将其导出为图像时,新的API可以通过PdfDocumentFacade.OptionalContentVisibility属性获得,使用PdfOptionalContentVisibility.Groups集合访问可选内容组。要更改组可见性,请修改PdfOptionalContentGroupVisibility.Visible属性值。
以下代码片段调整存储在文档中的可选内容组的可见性,并生成打印/图像输出以预览结果:
cs
PdfDocumentProcessor processor = new PdfDocumentProcessor();
processor.LoadDocument("layers.pdf");
// Set the visibility for each Layer
processor.DocumentFacade.OptionalContentVisibility.Groups[0].Visible = false;
processor.DocumentFacade.OptionalContentVisibility.Groups[1].Visible = false;
processor.DocumentFacade.OptionalContentVisibility.Groups[2].Visible = true;
// Print the document or export its page to an image to check the result
DXBitmap bitmap = processor.CreateDXBitmap(1, 1000);
processor.Print();
WinForms&WPF的Word Processing API和富文本编辑器
跨平台图像导出API
v24.1将包括新的跨平API用于将Word文档导出为图像,这个新功能可以在Windows和非Windows环境中生成文档预览。使用我们的新API,您可以将文档页面转换为光栅和/或矢量图像(PNG, JPEG, BMP,多页Tiff, emf, wmf),将它们保存为磁盘上的物理文件,或获取图像流列表以便在代码中进行进一步处理,还可以设置图像背景颜色、修改输出图像分辨率或生成具有指定大小的缩略图图像。
新的API可以通过Document对象的RichEditDocumentServerExtensions.ExportToImage扩展方法获得,您可以在Word Processing Document API库和桌面富文本编辑器(WinForms & WPF)中使用它。
注意:RichEditDocumentServerExtensions类是在DevExpress.Docs.v24.1.dll程序集中定义的。将此程序集添加到您的项目中,或者从离线包源中安装DevExpress.Document.Processor Nuget包来使用RichEditDocumentServerExtensions成员。
下面的代码片段将第一个文档页面导出为具有指定分辨率/JPEG格式的图像:
cs
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.Export.Image;
using DevExpress.Drawing;
using (var wordProcessor = new RichEditDocumentServer()) {
wordProcessor.LoadDocument(@"C:\Documents\Alice.docx");
RichEditImageExportOptions options = new RichEditImageExportOptions();
options.Format = DXImageFormat.Jpeg;
options.PageRange = "1";
options.LargestEdgeLength = 1080;
wordProcessor.Document.ExportToImage(@"C:\Documents\Image.jpeg", options);
}