找回密码
 立即注册

QQ登录

只需一步,快速开始

谢朵

注册会员

10

主题

55

帖子

135

积分

注册会员

积分
135
谢朵
注册会员   /  发表于:2024-4-15 14:41  /   查看:340  /  回复:11
我们所使用的spreadjs一共使用了23种字体,我看了demo中的方法:
  1. 当你使用 PDFFontsManager.registerFont 去注册一个字体之后, 你就可以给单元格的样式设置自定义字体了, 而且当你导出PDF时候,就会用你注册的字体。

  2. var font = {
  3.         normal: fonts['SIMSUN.ttf']
  4.     };
  5.     GC.Spread.Sheets.PDF.PDFFontsManager.registerFont('SimSun', font);
  6. 重写 PDFFontsManger.fallbackFont 方法去提供一个备选的字体。

  7.     var fonts = {
  8.         normal: fontsObj["SimSun.ttf"]
  9.     };
  10.     GC.Spread.Sheets.PDF.PDFFontsManager.fallbackFont = function (font) {
  11.         var fontInfoArray = font.split(' '), fontName = fontInfoArray[fontInfoArray.length - 1];
  12.         if (fontName === 'Calibri') {
  13.             return fonts.normal;
  14.         }
  15.     }
复制代码
这个只是注册一种字体,如果我想一口气注册多个字体,需要一遍一遍的调注册方法吗?还有就是这两个方法是不是可以只是使用上面那个?重写这个方法,我是不是可以更改为如果在我注册的语言中找不到的话,在使用默认的?



11 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-15 18:03:00
沙发
是的,如果使用了多个字体是需要一个一个字体去注册的。

理论上来说,是可以只使用上面的registerFont来注册的,下面的代码只是提供了一个备选字体,当其他的字体找不到自己的字体时,就会使用备选字体。
SpreadJS 17.0.8 | GcExcel 7.1.0 已发布~
回复 使用道具 举报
谢朵
注册会员   /  发表于:2024-4-16 13:08:13
板凳
Joestar.Xu 发表于 2024-4-15 18:03
是的,如果使用了多个字体是需要一个一个字体去注册的。

理论上来说,是可以只使用上面的registerFont来 ...

字体只能是base64吗,这些字体转为base64以后都超级大
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-16 14:20:11
地板
您好,也可以参考一下这篇文章,使用服务器端注册字体的方式:https://demo.grapecity.com.cn/sp ... f/pdf-chinese-error
SpreadJS 17.0.8 | GcExcel 7.1.0 已发布~
回复 使用道具 举报
谢朵
注册会员   /  发表于:2024-4-18 14:37:16
5#
Joestar.Xu 发表于 2024-4-16 14:20
您好,也可以参考一下这篇文章,使用服务器端注册字体的方式:https://demo.grapecity.com.cn/spreadjs/hel ...

你好,我想问一下。如果我一个excel中使用了多种字体。有什么方法我可以获取我这个excel一共使用了哪些字体嘛
回复 使用道具 举报
谢朵
注册会员   /  发表于:2024-4-18 15:44:39
6#
Joestar.Xu 发表于 2024-4-16 14:20
您好,也可以参考一下这篇文章,使用服务器端注册字体的方式:https://demo.grapecity.com.cn/spreadjs/hel ...

我们自己找到字体转为base64,注册以后导出的pdf还是不对。效果如下:
企业微信截图_17134251754428.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-18 17:33:54
7#
您好,SpreadJS没有这样的接口能直接获取使用了哪些字体,GcExcel中您可以使用getUsedFonts来实现。

————————————————————

从您的描述来看无法判断出问题出现的原因,需要您提供一下您具体复现问题的Demo,这边复现后帮您调研看看是什么原因导致的。
SpreadJS 17.0.8 | GcExcel 7.1.0 已发布~
回复 使用道具 举报
谢朵
注册会员   /  发表于:2024-4-19 11:27:51
8#
Joestar.Xu 发表于 2024-4-18 17:33
您好,SpreadJS没有这样的接口能直接获取使用了哪些字体,GcExcel中您可以使用getUsedFonts来实现。

— ...

这个demo不是很好弄,我可以把我注册的字体的base64文件提供给你们,你们在你们的环境中复现一下吗
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-19 13:45:37
9#
可以的,那就麻烦您提供一下相关的base64文件,我们这边验证看看。
SpreadJS 17.0.8 | GcExcel 7.1.0 已发布~
回复 使用道具 举报
谢朵
注册会员   /  发表于:2024-4-19 14:19:30
10#
Joestar.Xu 发表于 2024-4-19 13:45
可以的,那就麻烦您提供一下相关的base64文件,我们这边验证看看。

你好我这个字体原来的otf格式转为base64的

fonts.rar

6.71 MB, 下载次数: 3

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