文档控件DevExpress Office File API v24.1 - 支持基于Unix系统的打印
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。
可以使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");
相关文章:

文档控件DevExpress Office File API v24.1 - 支持基于Unix系统的打印
DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装Microsoft Office,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CS…...

IP地址封装类(InetAddress类)
文章目录 前言一、IP地址是什么?二、IP地址封装类 1.常用方法2.实操展示总结 前言 当我们想要获取到通信对方的IP地址、主机地址等信息时,我们可以使用InetAddress类。InetAddress类在java的net包中。 一、IP地址是什么? IP地址 (Internet Pr…...
数据库设计规范化
在数据库设计中,尤其是在关系型数据库管理系统中,规范化(Normalization)是一种通过减少数据冗余和依赖关系来优化数据库表结构的过程。规范化可以确保数据的完整性和减少数据更新时的问题。规范化的过程通常遵循一系列标准或范式&…...

预约咨询小程序搭建教程,源码获取,从0到1完成开发并部署上线
目录 一、明确需求与规划功能 二、选择开发工具与模板 三、编辑小程序内容 四、发布与运营 五、部分代码展示 制作一个预约咨询小程序,主要可以分为以下几个步骤: 一、明确需求与规划功能 明确需求: 1.确定小程序的服务对象…...

leetcode217. 存在重复元素,哈希表秒解
leetcode217. 存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 示例 1: 输入:nums [1,2,3,1] 输出:true 示例 2&#x…...
QT:QString 支持 UTF-8 编码吗?
在 Qt 中,字符串的处理主要依赖于 QString 类。QString 内部并不是直接使用 UTF-8 编码来存储数据的。相反,QString 使用 Unicode(特别是 UTF-16)来存储文本,以支持多语言环境的国际化应用。这种设计使得 QString 能够…...

我主编的电子技术实验手册(13)——电磁元件之继电器
本专栏是笔者主编教材(图0所示)的电子版,依托简易的元器件和仪表安排了30多个实验,主要面向经费不太充足的中高职院校。每个实验都安排了必不可少的【预习知识】,精心设计的【实验步骤】,全面丰富的【思考习…...

odoo from样式更新
.xodoo_form {.o_form_sheet {padding-bottom: 0 !important;border-style: solid !important;border-color: white;}.o_inner_group {/* 线框的样式 *//*--line-box-border: 1px solid #666;*//*box-shadow: 0 1px 0 #e6e6e6;*/margin: 0;}.grid {display: grid;gap: 0;}.row …...
Oracle(52)分区表有哪些类型?
分区表在Oracle数据库中主要分为以下几种类型: 范围分区(Range Partitioning)列表分区(List Partitioning)哈希分区(Hash Partitioning)组合分区(Composite Partitioning࿰…...

大黄蜂能飞的起来吗?
Bumblebee argument 虽然早期的空气动力学证明大黄蜂不能飞行——因为体重太重,翅膀太薄,但大黄蜂并不知道,所以照飞不误。 背景 在20世纪初,科学家们通过研究发现,大黄蜂的身体与翼展的比例失调,按照…...

虹科新品 | PDF记录仪新增蓝牙®接口型号HK-LIBERO CL-Y
新品发布!HK-LIBERO CE / CH / CL产品家族新增蓝牙接口型号HK-LIBERO CL-Y! PDF记录仪系列新增蓝牙接口型号 HK-LIBERO CL-Y HK-LIBERO CE、HK-LIBERO CH和HK-LIBERO CL,虹科ELPRO提供了一系列高品质的蓝牙(BLE)多用途…...
Bytebase 2.22.1 - SQL 编辑器展示更丰富的 Schema 信息
🚀 新功能 SQL 编辑器直接展示表,视图,函数,存储过程等各种 Schema 详情。OpenAI 功能进入社区版(免费),现在您可以通过配置自有 OpenAI key 在 SQL 编辑器中启用自然语言转 SQL 功能。支持在 …...

SQL Server Management Studio的使用
之前在 https://blog.csdn.net/fengbingchun/article/details/140961550 介绍了在Windows10上安装SQL Server 2022 Express和SSMS,这里整理下SSMS的简单使用: SQL Server Management Studio(SSMS)是一种集成环境,提供用于配置、监视和管理SQL…...
Python 爬虫项目实战一:抖音视频下载与网易云音乐下载
一、项目背景 随着互联网的发展,爬虫技术在数据采集和资源获取中发挥着重要作用。本文将以实际案例为例,使用Python语言实现两个热门的爬虫项目:抖音视频文件下载和网易云音乐下载。通过这些实例,读者可以了解如何利用Python编写…...
CAMDS=中国汽车MDS
1、定义和缩写 MSDS(材料安全数据表, Material Safety Data Sheets),德语为SDB(Sicherheitsdatenbltter),是一种传达材料和混合物安全相关信息的工具,包括来自供应链和下游用户相关材料安全报告的信息。它们旨在为专业用户提供使用这些物质和制剂的必要信息和处理建议,…...
【Golang 面试 - 进阶题】每日 3 题(十七)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...

ROS 7上实现私网互通方案
一、背景: 第一个私网现状:连接公域网是由tp-link进行拨号链接使用动态公网ip,内部网段是192.168.1.0/24 第二个私网现状:连接公域网是机房的固定公网ip,内部网段为10.0.0.0/16二、目标 安全的打通192.168.1.0/24和10.0.0.0/16的网络, 使得前者局域网中的机器能够安全访…...
iOS企业签名过程中APP频繁出现闪退是什么原因?
企业签名中,我们总会遇到这样或者那样的问题,要么掉签,要么闪退,那在之前的文章,已不止一次跟大家说了掉签的问题,今天就跟大家详细的聊一聊闪退的问题,希望对大家的推广有所帮助。 其实不管是…...
Unity dots IJobParallelFor并行的数据写入问题
Unity dots IJobParallelFor并行的数据写入问题 [BurstCompile] public struct IncrementJob : IJobParallelFor { [ReadOnly] public NativeArray<int> baseValues; public NativeArray<int> resultValues; public void Execute(int index) {resultValu…...

媒体资讯视频数据采集-yt-dlp-python实际使用-下载视频
对于视频二创等一些业务场景,可能要采集youtube等的相关媒体视频资源,使用[yt-dlp](https://github.com/yt-dlp/yt-dlp)是一个不错的选择,提供的命令比较丰富,场景比较全面yt-dlp 是一个用 Python 编写的命令行工具,主…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...