套打.常见问题.私有云自定义字体

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

套打.常见问题.私有云自定义字体

【场景】私有云自定义字体 【方案一】无脚本方案:字体注册表方案(适用老版本客户,仅针对部分常用字体) 由于产品使用.net 4.0技术,不能简单直接使用服务器的字体安装逻辑,安装时写入的字体的注册表与蟾片访问的不一致 提供一个大部分场景下的字体安装逻辑 (1)HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts 其中字体文件在 C:\Windwos\Fonts 中,配置一个映射项 ![image.webp](/download/0100abb69c66dfb14b88b7ffaa1ce925aea9.webp) (2)字体服务重启FontCache ![image.webp](/download/01000672dbbb87ce4484867a6484a7738222.webp) (3)IIS缓存目录删除c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\ (4)服务器电脑重启一次 【方案二】脚本方案 利用脚本引擎把字体文件替换,其中字体支持访问服务器上的任一自定义目录(自行配置权限) (1)服务器将需要的ttf文件放在一个指定目录 ![image.webp](/download/0100a15f2bebec0c40f69135bff273c1f2c5.webp) 说明:仅支持ttf文件 (2)利用套打脚本把文件替换掉 ![image.webp](/download/010011d8ee9500e743bdbf04200092fdb01f.webp) ```python import clr clr.AddReference("System.Drawing") clr.AddReference("Kingdee.BOS.Core") clr.AddReference("Kingdee.BOS") from System.Drawing import * from System.Drawing.Text import * from Kingdee.BOS.Core import * from Kingdee.BOS.Util import * def OutputElement(e): fontStyleId1 = ['cell4','cell1'];##使用自定义字体的控件ID if(e.ControlInfo.ControlID in fontStyleId1): fontFile = 'D:\\TD\\20230607\\a.ttf';##这里填入字体文件在服务器的全路径 e.ControlInfo.DevBrick.Font = LoadFontFromCacheFontCollection(e.ControlInfo.DevBrick.Font, fontFile); return; fontStyleId2 = ['cell7'];##使用自定义字体的控件ID2 if(e.ControlInfo.ControlID in fontStyleId2): fontFile = 'D:\\TD\\20230607\\b.ttf';##这里填入字体文件在服务器的全路径 e.ControlInfo.DevBrick.Font = LoadFontFromCacheFontCollection(e.ControlInfo.DevBrick.Font, fontFile); return; def LoadFontFromCacheFontCollection(srcFont, filePath): dbid = 'dbid';##这里填入账套ID,做账套隔离比较好,当然不隔离也行 fontColl = CacheUtil.GetCache(dbid, "Custom_FontFileCache", filePath); if fontColl == None: fontColl = PrivateFontCollection(); fontColl.AddFontFile(filePath); CacheUtil.SetCache(dbid, "Custom_FontFileCache", filePath, fontColl); font = Font(fontColl.Families[0], srcFont.Size, srcFont.Style); return font; ``` 把需要使用自定义字体的控件放在fontStyleId1 里面,而后传入自定义的文件地址fontFile (3)最终效果 ![image.webp](/download/0100bcd2b05f6a1f48ad83ac3353fd358403.webp) (4)补充说明 ttf文件转换可百度搜索字体转换工具进行转换 字体的样式、大小需要在模板上设置,仅是在最终渲染时使用自定义字体 字体文件和样式一一对应,部分文件字体会将常规和加粗分成两个字体文件,避免使用常规字体文件生成加粗字体 【说明】产品层面目前暂时不会对字体做其他优化计划,建议私有云客户使用方案二处理
这个解决方法真的是脱kz放p哦。【emoji】
客户端打印的时候为什么不直接调用本机电脑的字体进行打印呢?搞得这么复杂。

套打.常见问题.私有云自定义字体

【场景】私有云自定义字体【方案一】无脚本方案:字体注册表方案(适用老版本客户,仅针对部分常用字体)由于产品使用.net 4.0技术,不能...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息