跨平台美学!使用DevExpress Reports Office File API时如何管理字体?

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

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。

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

在不同的平台上处理文档可能具有挑战性,特别是在处理并非在所有机器/操作系统中普遍可用的字体时。不用说,当用户通过电子邮件或应用程序本身创建和交换文档时,缺少字体可能会导致不一致(影响报表、Word文档和PDF文件)。

为了获得最佳的用户体验,在Blazor WebAssembly和.NET MAUI应用程序中解决与字体相关的问题是至关重要的。潜在的挑战是众所周知的:Blazor WebAssembly不提供对系统字体的直接访问,.NET MAUI在iOS平台上的系统字体方面存在挑战。当然,问题也延伸到部署在Azure或AWS等云平台上的web应用程序,在这些平台上只有一小部分字体可用。

DevExpress.Drawing图形库的DXFontRepository类提供了一个全面的解决方案来解决这些问题——这个解决方案几乎与PrivateFontCollection类相同。正如我们很快将演示的那样,DXFontRepository有助于确保跨文档类型的一致视觉外观。有了它,即使底层系统中缺少或不可用字体(根据需要动态下载字体),也可以保持视觉元素的一致性。我们实现的优点是DXFontRepository可以在任何目标操作系统和针对.NET 6及以上版本的应用程序中使用。

使用DXFontRepository与DevExpress Reports & Office File API驱动的应用程序

我们创建了两个示例来帮助说明DXFontRepository的好处,这两个应用程序都是dockerized的,因此您可以轻松地构建和运行映像。

DevExpress Office File API

下面的链接将所需的字体加载到文字处理应用程序中:Word Processing Document API – Detect and Download Fonts

这个Blazor WebAssembly应用程序使用Iterator-Visitor模式从上传的Word文档中检索/显示字体列表,检索后,您可以单独或同时下载它们。

在我们的示例中,字体是从Google Fonts加载的,但是您可以根据业务需求修改字体源。将字体加载并添加到字体存储库集合后,可以将示例文档导出为PDF来查看结果。

跨平台美学!使用DevExpress Reports & Office File API时如何管理字体?

注意:Google Fonts是开源的,但请务必阅读相关的许可协议,以确定您的特定用例的使用权。

DevExpress Reports

为了帮助说明DXFontRepository的好处,我们创建了一个ASP. NET Core应用程序使来使用DevExpress Document Viewer(文档查看器)。这个应用程序加载一个带有自定义字体的示例报表,该服务使用DXFontRepository从Google资源中查找和加载这些字体。当您打开报告时,将看到指定的字体被自动应用。

跨平台美学!使用DevExpress Reports & Office File API时如何管理字体?

如果您准备使用DXFontRepository,请参考以下GitHub链接了解实现细节:Reporting for ASP.NET Core — Detect and Load Custom Fonts with Ease (DXFontRepository)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鲁大师4月电动两轮车榜:RideyFUN Air智驾系统上线,九号F2z 110智能化再升级

鲁大师4月电动两轮车排行榜数据来源于鲁大师智慧实验室,测评的车型均为市面上主流品牌的主流车型。截止目前,鲁大师智能化电动车测评的车型高达160余台,且还在不断增加和丰富中。 鲁大师电动车智能化测评体系包含车辆的状态采集与管理硬件系统…

android基础-通知

基于第一行android 使用PendingIntent来实现点击通知跳转到另一个活动。 notificationcompat.builder后面可以跟很多的方法,不同方法不同效果,比如加一个音频.setSound(uri) 内置网页 解析json

Spring IoCDI(1)—入门

目录 一、IoC & DI入门 1、Spring是什么 (1)什么是容器? (2)什么是IoC? 二、IoC介绍 1、传统程序开发 2、解决方案 3、IoC程序开发 4、IoC优势 三、DI介绍 通过前面的学习,我们知…

开源即时通讯IM框架 MobileIMSDK v6.5 发布

一、更新内容简介 本次更新为次要版本更新,进行了bug修复和优化升级(更新历史详见:码云 Release Notes、Github Release Notes)。 MobileIMSDK 可能是市面上唯一同时支持 UDPTCPWebSocket 三种协议的同类开源IM框架。轻量级、高…

OpenGVLab/InternVL-Chat-V1-5-Int8

openedai-vision 代码仓库 OpenGVLab/InternVL-Chat-V1-5-Int8 模型文件地址 示 算力平台AutoDL df -h /root/autodl-tmp tar -xvf FileName.tartar -xvf 安装 克隆我们的仓库并跳转到相应目录 2. 创建 conda 环境 cond…

解决Vue devtools插件数据变化不会自动刷新

我们使用devtools插件在监测vuex中表单或自定义组件的数据,发现页面数据发生变化后,但是devtools中还是老数据,必须手动点击devtools刷新才能拿到最新的数据。很烦! 解决方案: 打开chrome的设置,向下翻&…

安服仔养成篇——基线检查

基线检查概念理解 先放白嫖来的解释: “安全基线是保持信息系统安全的机密性、完整性、可用性的最小安全控制,是系统的最小安全保证,最基本的安全要求。” 啥意思呢,基线检查其实就是对操作系统、中间件、数据库、网络设备等多…

2024挂耳式耳机怎么选?5款高性价比开放式耳机推荐榜

近年来,开放式耳机受到了越来越多人的关注,特别是对于运动爱好者来说,在运动的过程中,传统的有线耳机不适合户外运动,不仅佩戴不稳,线还容易缠绕,而普通的蓝牙耳机长时间佩戴会感觉耳朵不适。在…

武汉星起航:亚马逊五大促销类型全面解析,打造销售狂欢新篇章

在全球电商领域,亚马逊以其卓越的平台优势和创新的促销策略,为卖家和消费者搭建了一座互通的桥梁。今天,武汉星起航在这里解析亚马逊的五大促销类型,帮助卖家和消费者更好地把握商机,享受购物的乐趣。 一.…

sql 注入 1

当前在email表 security库 查到user表 1、第一步,知道对方goods表有几列(email 2 列 good 三列,查的时候列必须得一样才可以查,所以创建个临时表,select 123 ) 但是你无法知道对方goods表有多少列 用order …

如何在六个月内学会任何一门外语(ted转述)

/仅作学习和参考,勿作他用/ a question : how can you speed up learning? 学得快,减少在学校时间 结果去研究心理学惹 spend less time at school. if you learn really fast , you donot need to go to school at all. school got in the way of …

邮箱Webhook API发送邮件的性能怎么优化?

邮箱Webhook API发送邮件的步骤?如何用邮箱API发信? 随着业务规模的扩大,如何高效地通过邮箱Webhook API发送邮件,成为了许多企业面临的关键问题。下面,AokSend将探讨一些优化邮箱Webhook API发送邮件性能的方法。 邮…

Tomcat端口占用解决方案

Windows操作系统 出现这种情况: Error was Port already in use :40001;nested exception is :java.net.BindException: Address already in use : JVM_Bind; 步骤1:按下winR键,输入cmd 步骤2:输入以下命令 netstat …

基于D1开发板和腾讯云nginx服务器构建家庭视频监控方案

腾讯云服务器使用nginx搭建rtmp服务器 什么是nginx? nginx是一款优秀的反向代理工具,通过nginx可以实现搭建高可用的轻量级web服务器,除此之外,通过Nginx自带的rtmp模块,也可以实现rtmp服务器的搭建。 安装nginx 安装编…

ESD静电问题 | 摄像头空气放电重启

【转自微信公众号:必学大课堂】

【Android Studio】开启真机调试

1 打开手机的开发者模式 各种款式的手机进入开发者模式的情况不同,但大致是在 【关于手机】中多次点击系统版本即可进入。这里以小米8为例,记录下流程。 1.1 进入手机开发者模式 【设置】->【我的设备】->【全部参数】->【MIUI版本】连续点击3…

【go项目01_学习记录02】

学习记录 1 新建项目2 自动重载安装air安装完成,查看版本:air -v使用air: air 3 设置标头4 如何知道 http 包有哪些接口呢?5 Web 数据响应6 小结 1 新建项目 windows系统,cmd: cd %GOPATH%/src //%GOPATH%表示取环境变…

一套C语言VC + MSSQL开发PACS系统源码 带三维重建和还原的PACS医学影像全套系统源码

一套C语言VC MSSQL开发PACS系统源码 带三维重建和还原的PACS医学影像全套系统源码 本套PACS系统成品源码,自主版权。集成三维影像后处理功能,包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功…

如何将jsp项目转成springboot项目

昨天说过,springboot推荐使用Thymeleaf作为前后端渲染的模板引擎,为什么推荐用Thymeleaf呢,有以下几个原因: 动静结合:Thymeleaf支持HTML原型,允许在HTML标签中增加额外的属性来实现模板与数据的结合。这样…

【投稿资讯】区块链会议CCF C -- CoopIS 2024 截止7.10 附录用率

会议名称:CoopIS CCF等级:CCF C类学术会议 类别:人机交互与普适计算 录用率:2023年接收率21% (21 regular 10 work-in-progress papers/100) AREA 5: HUMAN-CENTRIC SECURITY AND PRIVACY IN INFORMATION SYSTEMS Access Con…