stwilson123456 发表于 2023-11-2 18:01:01

ar17.2.0 pdf导出字体问题

    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的效果一致

Felix.Li 发表于 2023-11-2 18:01:02

您好,我们这边也做了询问和测试。先说一下问题:

乱码确实是因为 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,也就是系统最后找的字体自己替换成一个可以支持中文的。
相当于我们自己控制一个映射关系。

Felix.Li 发表于 2023-11-2 18:40:49

问题描述:

linux导出字体乱码

问题解决:
这个是因为您的linux没有安装对应的字体,可以参考如下的帖子安装字体即可:
https://www.grapecity.com.cn/solutions/wyn/help/docs/create-report/faq-about-report/faq6

stwilson123456 发表于 2023-11-3 16:10:48

在linux下我已经安装了 Times New Roman字体, 如图

Felix.Li 发表于 2023-11-3 18:08:17

有几个问题,您页面用的是

Times New Roman,但是linux用的是宋体。
其次,linux配置好字体后应该要重启一次。是否重启。

stwilson123456 发表于 2023-11-3 18:26:33

上一个回复中,图片上第一个红框就是Times New Roman的字体,其次linux下fc-list的字体是已安装字体

Bella.Yuan 发表于 2023-11-6 10:23:14

stwilson123456 发表于 2023-11-3 18:26
上一个回复中,图片上第一个红框就是Times New Roman的字体,其次linux下fc-list的字体是已安装字体

您好,Time new Roman,Arial 这两种字体都不支持中文,所以导出后可能是乱码,可以尝试设置中文的字体为宋体看是否能够导出。

stwilson123456 发表于 2023-11-6 10:46:44

设置宋体是我测试的是没问题,但是我还是想解决帖子上的问题,即 同样是设置Times New Roman字体,运行在linux里与运行在window的程序,导出的pdf效果一致;

stwilson123456 发表于 2023-11-6 15:36:18

本帖最后由 stwilson123456 于 2023-11-6 15:47 编辑

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

Felix.Li 发表于 2023-11-6 16:27:26

那您是不是就是用我上面说的第二种方法:

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

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

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

页: [1] 2
查看完整版本: ar17.2.0 pdf导出字体问题