文档控件DevExpress Office File API v24.1 - 支持基于Unix系统的打印

news2024/9/22 1:36:36

DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装Microsoft Office,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CSV 和 Snap Report等企业级文件。

DevExpress Office File API控件日前正式发布了v24.1,新版本正式官宣支持Unix系统的打印、增强了可访问性等,欢迎下载最新版组件体验!

DevExpress v24.1正式版下载(Q技术交流:532598169)

基于Unix系统的打印

在这个版本(v24.1)中,官方为运行在基于Unix系统上的基于.NET Office File API驱动的应用程序增加了打印支持,现在可以在非Windows环境中打印条码、Word、Excel和PDF文档。

新版本创建了一组新的API,与 DevExpress.Drawing 库中可用的DXPrinterSettings选项一起工作。

使用以下新方法在基于Unix的系统上打印文档和条形码:

C#

// 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选项如下:

C#

using DevExpress.Drawing.Printing;
using DevExpress.Pdf;

// Load a PDF file
PdfDocumentProcessor documentProcessor = new PdfDocumentProcessor();
documentProcessor.LoadDocument(@"..\..\Demo.pdf");

// Declare printer settings
PdfPrinterSettings pdfPrinterSettings = new PdfPrinterSettings();

// Specify CUPS printer settings
DXPrinterSettings dxPrinterSettings = pdfPrinterSettings.DXSettings;
dxPrinterSettings.Duplex = DXDuplexMode.DuplexLongEdge;
dxPrinterSettings.Copies = 3;

// Print the document
documentProcessor.Print(pdfPrinterSettings);

注意:对于基于Unix的系统,您需要单独安装libcups2包。

可访问性增强

在将Word文档导出为可访问的PDF文件时,新版本扩展了对以下元素的可访问性相关支持:

  • 目录标签
  • 元数据字段
  • Alt文本处理
  • 表格
  • 浮动对象

使用Adobe Acrobat Pro和PDF Accessibility Checker 2024进行质量控制,新版本的测试文档成功地通过了PDF/UA兼容性和WCAG 2.1兼容性的验证。

当您PdfUACompatibility选项时,与可访问性相关的导出增强功能可以开箱即用:

C#

using System.IO;
using DevExpress.XtraRichEdit;
// ...
RichEditDocumentServer wordProcessor = new RichEditDocumentServer();
//...
using(FileStream stream =
new FileStream(resultFilePath, FileMode.Create, FileAccess.Write, FileShare.Read)) {
PdfExportOptions exportOptions = new PdfExportOptions();
exportOptions.PdfUACompatibility = PdfUACompatibility.PdfUA1;

wordProcessor.ExportToPdf(stream, exportOptions);
}

此外新版本还为Word Processing Shape和Spreadsheet Shape类添加了一个Decorative属性,以将文档图形(图片、形状和图表)标记为装饰性的。装饰性的形状增加了视觉上的趣味,但它们不能提供信息。因此在生成可访问文档时,不需要为装饰性对象指定Alt Text(有意义的描述)。

将文档导出为SVG

新版本扩展了图像导出引擎,现在在Barcode Generation API、Word Processing Document API和Spreadsheet Document API库中支持SVG图像。使用v24.1,您可以在Windows和非Windows环境中从条形码、Word文档页面和Excel工作表/单元格范围生成SVG图像。

要从条形码生成SVG图像,需要创建BarCode类实例,根据需要修改设置,并使用DXImageFormat.Svg作为参数调用BarCode.Save方法。

C#

using (BarCode barCode = new BarCode()) {
barCode.Symbology = Symbology.QRCode;
barCode.BackColor = Color.White;
barCode.ForeColor = Color.Black;
barCode.RotationAngle = 0;
barCode.CodeBinaryData = Encoding.Default.GetBytes("https://www.devexpress.com/");
barCode.Options.QRCode.CompactionMode = QRCodeCompactionMode.Byte;
barCode.Options.QRCode.ErrorLevel = QRCodeErrorLevel.Q;
barCode.Options.QRCode.ShowCodeText = false;
barCode.DpiX = 72;
barCode.DpiY = 72;
barCode.Module = 2f;

barCode.Save("barcode.svg", DXImageFormat.Svg);
}

对于Word文档,使用全新的Image Export API - 创建一个RichEditImageExportOptions实例,使用RichEditImageExportOptions.Format属性指定目标DXImageFormat.Svg格式,并使用RichEditImageExportOptions对象作为参数调用RichEditDocumentServerExtensions.ExportToImage扩展方法。

C#

using (var wordProcessor = new RichEditDocumentServer()) {
wordProcessor.LoadDocument(@"C:\Documents\Alice.docx");
RichEditImageExportOptions options = new RichEditImageExportOptions();
options.Format = DXImageFormat.Svg;
options.PageRange = "1";

wordProcessor.Document.ExportToImage("first_page_image.svg", options);
}

要将Excel工作表中的单元格区域导出为SVG图像,请使用ImageFileFormat.Svg作为参数调用CellRangeExtensions.ExportToImage方法。

C#

using (Workbook workbook = new Workbook()) {
workbook.LoadDocument("InvestmentPortfolio.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx);
Worksheet worksheet = workbook.Worksheets.ActiveWorksheet;

worksheet.Range["B18:I30"].ExportToImage("cell_range_image.svg", ImageFileFormat.Svg);
}
Spreadsheet Document API
对齐和分布式文本对齐

v24.1增加了对电子表格单元格内的水平对齐类型的支持,使用这些对齐选项的Excel文件可以打印并导出为PDF。

DevExpress Office File API v24.1产品图集

可以使Cell.Alignment.Horizontal 属性在代码中指定水平对齐方式。

下面的代码片段指定了代码中的对齐方式:

C#

var workbook = new Workbook();
var worksheet = workbook.Worksheets[0];

Cell cellA1 = worksheet.Cells["A1"];
cellA1.Value = "Justified and top";
cellA1.Alignment.Horizontal = SpreadsheetHorizontalAlignment.Justify;
cellA1.Alignment.Vertical = SpreadsheetVerticalAlignment.Top;
workbook.ExportToPdf("Result.pdf");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1994331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java实战二 添加lombok使用@Data,编写第一个接口-用户注册并使用postman测试

添加lombok依赖 使用Data注解&#xff0c;省略写getter和setter 创建返回结果Result类 创建三层结构UserController类UserService接口UserServiceImpl实现类UserMapper接口 UserController编写注册接口register UserService定义方法 UserServiceImpl实现方法 UserMapper中编写s…

一款免费、简单、快速的JS打印插件,web 打印组件,基于JavaScript开发,支持数据分组,快速分页批量预览,打印,转pdf,移动端,PC端

前言 在数字化办公时代&#xff0c;打印需求呈现多样化和复杂化的趋势。现有的打印软件往往存在cao作繁琐、兼容性差、功能单一等问题&#xff0c;难以满足现代企业高效、灵活的打印需求。 为了解决这些痛点&#xff0c;一款简单、高效、多功能的打印插件成为了迫切需求。 介…

《MySQL数据库》数据导入、导出、表处理—/—<4>

一、插入数据 1、可使用外部工具navicat导入数据的情况下 因为部分公司不允许使用外部工具去导入数据 对于大批量数据&#xff0c;除了上节课中使用导入向导插入数据&#xff0c;也可在vscode中打开csv文件&#xff0c;然后选中光标&#xff0c;长按shiftctrl&#xff0c;拖动…

基于springboot的小微企业融资征信平台系统的设计与实现-计算机毕业设计源码99083

摘 要 本文详细阐述了一个基于Spring Boot框架的小微企业融资征信平台系统的设计与实现过程。该系统旨在为小微企业、金融机构以及征信机构提供一个高效、安全的融资征信交流平台。系统支持企业用户的登录注册、首页浏览、交流论坛参与、通知公告查看、新闻资讯阅读以及个人账户…

点亮童梦思考之光,神秘伙伴震撼登场!

本文由 ChatMoney团队出品 介绍说明 咱们来聊聊“十万个为什么”机器人&#xff0c;这对小朋友来说&#xff0c;好处可多了去啦&#xff01; 小朋友们天生好奇&#xff0c;满脑子都是问号。 这个机器人就像个啥都懂的知识达人&#xff0c;不管他们问啥&#xff0c;都能给出答…

数据加密-AES数据加密WPF程序

AES&#xff08;Advanced Encryption Standard&#xff09;是一种广泛使用的对称密钥加密算法&#xff0c;由美国国家标准与技术研究院&#xff08;NIST&#xff09;于2001年发布。AES以其高效、安全的特点&#xff0c;在数据加密领域占据了重要地位。 <Grid><Grid.Ro…

定期检查m000是否消耗pga

偶然发现一个库的m000占用pga较高&#xff0c;导致ora-4036问题 sho parameter ga 看看当前参数 好像是bug 需要定期检查 select to_char(sysdate,yyyy-mm-dd hh24:mi:ss)riqi from dual;select round(sum(PGA_ALLOC_MEM)/1024/1024,2) "Total PGA Allocated (Mb)&q…

数据可视化(医疗数据)

目 录 第1章 绪 论 1 1.1 课题背景及研究目的 1.2 课题研究内容 第2章 课题概要及关键技术 2.1 课题概要 2.2 数据说明 2.3 关键技术 第3章 数据分析 3.1 数据统计分析 3.2 可视化分析 第4章 数据建模 4.1 数据预处理 4.2 模型构建 第5章 模型评估与应用 5.1 模型…

App广告投放新选择:Xinstall,让数据监测变得简单又高效

在App推广的战场上&#xff0c;广告投放是夺取用户心智的重要手段。然而&#xff0c;广告主们常常面临一个难题&#xff1a;如何准确衡量广告投放的效果&#xff1f;如何挖掘出有价值的用户来源和优质的投放渠道&#xff1f;这时候&#xff0c;你就需要一款强大的广告效果监测工…

基于Hadoop的超市进货推荐系统设计与实现【springboot案例项目】

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍系统分析系统设计数据表设计表4-1&#xff1a;关于我们表4-2&#xff1a;用户表4-3&#xff1a;管理员表表4-4&#xff1a;token表表4-5&#xff1a;系统简介表4-6&#xff1a;收藏…

大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Ansys Mechanical|如何用好远程点(Remote Points)

一&#xff0e;什么是远程点&#xff1f; 当你定义载荷、约束和接触的作用域时&#xff0c;一般习惯于采用诸如直接选择模型或是通过模型的自定义截面等方法。 实际上&#xff0c;远程点也是一种设置远程边界条件作用域的方法。远程边界条件包括&#xff1a; 结构分析和温度分…

FPGA开发——IP核RAM的调用(双端口)

一、简介 在上一篇文章中我们对于单端口的RAM调用进行了一个简单的介绍和相关应用&#xff0c;在这篇文章当中我们对于双端口的RAM进行介绍和调用&#xff0c;在调用程度上来说&#xff0c;双端口RAM是单端口RAM的一个进阶。 双端口RAM分类 简单双口 RAM:一组读数据和读地址线…

【Linux】系列入门摘抄笔记-1-基本概念

一、基本概念 1. Linux系统 linux系统的发行版:内核+外围软件(文件系统、系统软件、应用软件)。 由于Linux内核是开源的,GUN工程中的软件也是开源的,所以许多组织和企业就嗅到了商机,他们将Linux内核与各种软件以及说明文档包装起来,并提供安装界面和管理工具等,这就…

如何让环保展厅不再沉闷?互动投影技术的创新应用解答!

随着城市化进程的加速&#xff0c;垃圾、污染等问题已成为影响城市环境的重要因素&#xff0c;为了解决这些问题&#xff0c;许多城市开始推行垃圾分类政策&#xff0c;同时完善垃圾分类收集、运输和处理的设施&#xff0c;为垃圾分类处理提供了硬件支持&#xff0c;此外&#…

【漏洞复现】某赛通电子文档安全管理系统 MultiServerAjax SQL注入漏洞

0x01 产品简介 某赛通电子文档安全管理系统&#xff08;简称&#xff1a;CDG&#xff09;是一款电子文档安全加密软件&#xff0c;该系统利用驱动层透明加密技术&#xff0c;通过对电子文档的加密保护&#xff0c;防止内部员工泄密和外部人员非法窃取企业核心重要数据资产&…

理解 Python 的全局解释器锁 (GIL)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…

大数据安全规划总体方案(45页PPT)

方案介绍&#xff1a; 大数据安全规划总体方案的制定&#xff0c;旨在应对当前大数据环境中存在的各类安全风险&#xff0c;包括但不限于数据泄露、数据篡改、非法访问等。通过构建完善的安全防护体系&#xff0c;保障大数据在采集、存储、处理、传输、共享等全生命周期中的安…

书生.浦江大模型实战训练营——(四)书生·浦语大模型全链路开源开放体系

最近在学习书生.浦江大模型实战训练营&#xff0c;所有课程都免费&#xff0c;以关卡的形式学习&#xff0c;也比较有意思&#xff0c;提供免费的算力实战&#xff0c;真的很不错&#xff08;无广&#xff09;&#xff01;欢迎大家一起学习&#xff0c;打开LLM探索大门&#xf…

60、排列序列,61、旋转链表——LeetCode

60、排列序列 题目 给出集合 [1,2,3,...,n]&#xff0c;其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况&#xff0c;并一一标记&#xff0c;当 n 3 时, 所有排列如下&#xff1a; "123" "132" "213" "231" "312…