找回密码
 立即注册

QQ登录

只需一步,快速开始

stwilson123456

金牌服务用户

1

主题

7

帖子

18

积分

金牌服务用户

积分
18
最新发帖
stwilson123456
金牌服务用户   /  发表于:2023-11-2 18:01  /   查看:4832  /  回复:14
1金币
    1. 具体现象:  
    1.1 字体选择Times New Roman:
     

     1.2 在代码运行在window下,pdf导出时,中文是 宋体,英文、数字部分是 Times New Roman



      1.3 在代码运行在linux下,pdf导出时,中文是 乱码,英文、数字部分是 Times New Roman

     2. 希望部署在linux下的程序,pdf导出的实际效果与1.2的效果一致

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,我们这边也做了询问和测试。先说一下问题: 乱码确实是因为 time new roman 不支持中文,所以没有办法显示中文。 其次windows可以显示,我们也做了检索。其实是win系统自己做了一个转化操作,并不是我们操作,win识别time new roman不支持,自动转化成了其他字体显示。 截图中可见,我们设置的是新罗马,但是win自动转化成了MS UI Gothic。 但是linux系统没有检测转化的这个操作,所有显示不出来。 目前解决方法您 ...

14 个回复

倒序浏览
最佳答案
最佳答案
Felix.LiWyn认证
超级版主   /  发表于:2023-11-2 18:01:02
来自 8#
您好,我们这边也做了询问和测试。先说一下问题:

乱码确实是因为 time new roman 不支持中文,所以没有办法显示中文。
其次windows可以显示,我们也做了检索。其实是win系统自己做了一个转化操作,并不是我们操作,win识别time new roman不支持,自动转化成了其他字体显示。

截图中可见,我们设置的是新罗马,但是win自动转化成了MS UI Gothic。
但是linux系统没有检测转化的这个操作,所有显示不出来。

目前解决方法您可以接受这个嘛:
参考这个帖子:
https://gcdn.grapecity.com.cn/showtopic-164040-1-2.html

1.直接控制用户可以使用的字体,只有中文字体,而不是所有字体。

2.用key和values 去控制:
{ label: "我是Arial", value: "Arial" }
也就是用户看到的还是time new roman,但是手动把value,也就是系统最后找的字体自己替换成一个可以支持中文的。
相当于我们自己控制一个映射关系。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-11-2 18:40:49
2#
问题描述:

linux导出字体乱码

问题解决:
这个是因为您的linux没有安装对应的字体,可以参考如下的帖子安装字体即可:
https://www.grapecity.com.cn/sol ... q-about-report/faq6
回复 使用道具 举报
stwilson123456
金牌服务用户   /  发表于:2023-11-3 16:10:48
3#
在linux下我已经安装了 Times New Roman字体, 如图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-11-3 18:08:17
4#
有几个问题,您页面用的是

Times New Roman,但是linux用的是宋体。
其次,linux配置好字体后应该要重启一次。是否重启。
回复 使用道具 举报
stwilson123456
金牌服务用户   /  发表于:2023-11-3 18:26:33
5#
上一个回复中,图片上第一个红框就是Times New Roman的字体,其次linux下fc-list的字体是已安装字体
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2023-11-6 10:23:14
6#
stwilson123456 发表于 2023-11-3 18:26
上一个回复中,图片上第一个红框就是Times New Roman的字体,其次linux下fc-list的字体是已安装字体

您好,Time new Roman,Arial 这两种字体都不支持中文,所以导出后可能是乱码,可以尝试设置中文的字体为宋体看是否能够导出。
回复 使用道具 举报
stwilson123456
金牌服务用户   /  发表于:2023-11-6 10:46:44
7#
设置宋体是我测试的是没问题,但是我还是想解决帖子上的问题,即 同样是设置Times New Roman字体,运行在linux里与运行在window的程序,导出的pdf效果一致;
回复 使用道具 举报
stwilson123456
金牌服务用户   /  发表于:2023-11-6 15:36:18
10#
本帖最后由 stwilson123456 于 2023-11-6 15:47 编辑

这种方式字体还是对于用户来说是不正确的,因为他确实需要这个Time new Roman。我看到Page.Settings有一个FallbackFonts的属性,我测试了一下,乱码的部分会转成FallbackFonts指定的字体
      
我想知道有没有一个全局配置的来控制所有的pdf导出,或者代码也可以。当然如果可以控制某些字体的FallbackFonts,会更好吧。
特别是预览功能里面的pdf导出,那边是否能用代码控制

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-11-6 16:27:26
11#
那您是不是就是用我上面说的第二种方法:

用key和value去做映射操作。您截图的设置,是自己后端代码自定义导出设计的,但是页面上的导出是封装好的。没办法控制。
如果页面上要控制,就是我说的第二种。

页面指定的所谓的映射配置:
类似这种:
  1. fonts: [ 'Arial Black', 'Comic Sans MS', 'Courier New', 'Geneva', 'Georgia', { label: "Times New Roman", value: "SimSun" }, 'Trebuchet MS', 'Verdana', 'Yu Gothic']
复制代码
用户看到的还是Times New Roman,但是实际上请求的是别的字体,我这里只是用宋体举例,咱们可以找一个支持中文的,和新罗马类似的字体。

我们这边也做了测试,我用的宋体测试:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部