找回密码
 立即注册

QQ登录

只需一步,快速开始

lishu

注册会员

7

主题

49

帖子

196

积分

注册会员

积分
196
lishu
注册会员   /  发表于:2020-11-26 13:26  /   查看:14497  /  回复:40
1金币
react环境
导入字体
import {fonts} from  './fonts.js'

注册字体
let fonts1 = {
    normal: fonts["simsun.ttf"]
};
GC.Spread.Sheets.PDF.PDFFontsManager.registerFont('simsun', fonts1);

运行到normal: fonts["simsun.ttf"]这行是提示文件格式错误
执行导出PDF格式文件中文乱码
这个问题需要怎么解决
simsun.ttf文件和fonts.js文件都在同级目录下


最佳答案

查看完整内容

您的代码使用的也没问题,导出乱码是因为项目里面没有宋体。 如果一个Excel里有多个字体需要注册多次字体。 这边给您提供了一份带有宋体的font.js的react项目,您可以运行项目,然后导入附件的Excel试一下,或者倒入一份全是宋体的excel文件再导出pdf试一下。 由于文件较大,已上传至网盘 链接: https://pan.baidu.com/s/13yqFxjvO71S8XnC1gjBRUg 密码: vvh2

40 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-26 13:26:59
来自 39#

您的代码使用的也没问题,导出乱码是因为项目里面没有宋体。

如果一个Excel里有多个字体需要注册多次字体。

这边给您提供了一份带有宋体的font.js的react项目,您可以运行项目,然后导入附件的Excel试一下,或者倒入一份全是宋体的excel文件再导出pdf试一下。

由于文件较大,已上传至网盘

链接: https://pan.baidu.com/s/13yqFxjvO71S8XnC1gjBRUg  密码: vvh2
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-26 15:25:47
2#
本帖最后由 DerrickJiao 于 2020-11-26 15:27 编辑

您好,您可以参考这个react的demo,这是学习指南的地址
https://demo.grapecity.com.cn/sp ... nt-export-pdf/react
若未能解决您的问题建议您上传能直接复现问题的demo
回复 使用道具 举报
lishu
注册会员   /  发表于:2020-11-26 15:27:21
3#
DerrickJiao 发表于 2020-11-26 15:25
您好,您可以参考这个react的demo,这是学习指南的地址
https://demo.grapecity.com.cn/spreadjs/SpreadJS ...

我就是参考这个做的
var font = {
        normal: fonts['SIMSUN.ttf']
    };
执行这个就出错
回复 使用道具 举报
lishu
注册会员   /  发表于:2020-11-26 15:53:05
4#
DerrickJiao 发表于 2020-11-26 15:25
您好,您可以参考这个react的demo,这是学习指南的地址
https://demo.grapecity.com.cn/sp ... nt-export- ...

你可以看看我上次的录屏文件
执行到
let fonts1 = {
              normal: fontsObj["simsun.ttf"]
          };

这里就出错
fontsObj是引入的font.js文件

20201126_155053.rar

1.23 MB, 下载次数: 706

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-26 17:07:38
5#
lishu 发表于 2020-11-26 15:53
你可以看看我上次的录屏文件
执行到
let fonts1 = {

请问您的font.js是否有simsun这个字体呢?

从您的代码来看没有什么问题

建议您发一个能直接复现问题的demo,这样有助于快速定位问题
回复 使用道具 举报
lishu
注册会员   /  发表于:2020-11-30 13:30:20
6#
DerrickJiao 发表于 2020-11-26 17:07
请问您的font.js是否有simsun这个字体呢?

从您的代码来看没有什么问题

font.js的制作有没有相关的文档
font.js这个文件不是通用的吗
我是在你们提供的demo里得到的这个文件
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-30 13:50:32
7#
lishu 发表于 2020-11-30 13:30
font.js的制作有没有相关的文档
font.js这个文件不是通用的吗
我是在你们提供的demo里得到的这个文件

font.js并不是通用的,需要单独制作,您需要什么字体就在里面添加您对应的字体。

font.js里面有MTCORSVA.TTF这个字体,您可以试一下是否会报错

如果仍未解决您的问题,建议您上传能复现问题的demo
回复 使用道具 举报
lishu
注册会员   /  发表于:2020-11-30 13:54:43
8#
DerrickJiao 发表于 2020-11-30 13:50
font.js并不是通用的,需要单独制作,您需要什么字体就在里面添加您对应的字体。

font.js里面有MTCORS ...

font.js要怎么制作
比如我想做一个宋体的
这个文件应该怎么写
字体后边那一大堆字符串是怎么得来的
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-30 14:07:38
9#
本帖最后由 DerrickJiao 于 2020-11-30 15:06 编辑
lishu 发表于 2020-11-30 13:54
font.js要怎么制作
比如我想做一个宋体的
这个文件应该怎么写

那个是字体的ttf文件,您需要在网上查找simsun的ttf字体文件,转换为base64格式后,按照
var fonts = {"simsun.ttf":"字体文件的内容的base64"}制作font.js即可,参照下图: image.png462853698.png
回复 使用道具 举报
12345下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部