找回密码
 立即注册

QQ登录

只需一步,快速开始

俊123

初级会员

29

主题

83

帖子

234

积分

初级会员

积分
234
俊123
初级会员   /  发表于:2023-4-18 17:09  /   查看:2890  /  回复:12
5金币
gcexcle 代码指定了字体文件夹, 导出pdf
Workbook.FontsFolderPath = "D://fonts"; //EUDC.TTF 字体文件存放目录
workbook.save(outputStream, SaveFileFormat.Pdf);
导出后字体是乱码

test1.rar

10.67 KB, 下载次数: 397

最佳答案

查看完整内容

好的,我用你的demo看一下

12 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-18 17:09:58
来自 11#
好的,我用你的demo看一下
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-18 18:48:13
2#
因为你这个文件夹里面只有EUDC.TTF这一种字体,而EUDC.TTF字体库中没有这些中文对应的字符,所以导出就乱码了。
你用下面这个网站把你的EUDC.TTF这个字体上传上去解析一下就明白了了。
http://blog.luckly-mjw.cn/tool-show/iconfont-preview/index.html
image.png563340148.png
回复 使用道具 举报
俊123
初级会员   /  发表于:2023-4-18 19:08:17
3#
本帖最后由 俊123 于 2023-4-18 19:10 编辑

第一行是存的特殊符号 没有中文,  转换pdf取出来也不对
感觉是没有加载到EUDC.TTF这个字体

类似图中这种
image.png365599974.png
回复 使用道具 举报
俊123
初级会员   /  发表于:2023-4-19 16:58:44
4#
请问有人知道怎么解决吗,  EUDC.TTF 字体文件已经在 "D://fonts" , 并不生效,  这个 U 字符是EUDC字体,  转换pdf后 显示出来是几条横线
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-19 19:22:12
5#
我这边安装了你给的这个EDUC字体,显示效果跟你这边完全不一样
image.png962657470.png
那么为什么装了同样的字体,显示效果不一样呢,只可能是因为U和K字符根本不是EDUC字体。
浏览器为了能够正常显示虽然设置的EDUC字体,但因为EDUC字体中没有该字体库,浏览器就会适配一个能够显示的字体进行显示。而我这边没有能够适配出的字体,所以浏览器适配了也无法正确显示。
所以从侧面也映证了这个字体可能不是EDUC字体。那么猜测后端D://FONTS中只有EDUC这一个字体库,想适配也适配不了, 于是出现乱码
回复 使用道具 举报
俊123
初级会员   /  发表于:2023-4-19 19:44:13
6#
本帖最后由 俊123 于 2023-4-19 19:47 编辑

不是, 这个EDUC字体已经应用在前端SpreadJS了, 可以正常显示配置的特殊字体U,   转换pdf才显示不正确.  


EDUC字体在前端是正确的, 证明字体文件无问题.   EDUC字体在旧系统也应用了多年.
image.png875464477.png

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-20 19:14:46
7#
我之前给你说了啊,前端网页之所以能正常显示,是因为浏览器自身会自适应匹配字体。
举个例子calibri这个字体没有中文字形,那么为什么在网页中可以给一个中文设置calibri字体并且还能正常显示呢?
回复 使用道具 举报
俊123
初级会员   /  发表于:2023-4-21 14:17:59
8#
你是说这个字体库文件是错误的, 并没有U k这样的特殊字体吗
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-21 18:40:52
9#
我猜测是的,因为会出现乱码就是字体库中找不到匹配字体。
比如SpreadJS在中文导出PDF的时候如果没有注册对应的中文字体就会出现乱码。
GcExcel虽然不用注册字体,但是它在字体库中读取字体。所以如果所有可读取字体中都没有U k对应的字体的话,就会出现乱码了。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部