找回密码
 立即注册

QQ登录

只需一步,快速开始

兴达李俊

注册会员

8

主题

64

帖子

162

积分

注册会员

积分
162
兴达李俊
注册会员   /  发表于:2023-9-25 17:32  /   查看:4718  /  回复:32
本帖最后由 Ellia.Duan 于 2023-10-30 16:05 编辑


产品:GcExcel
版本:6.2.2
问题编号:【DOCXLS-9037】

workbook.fromJson(json)加载的json数据,数据里有些没设置字体,有些字体不统一,想统一设置字体?


32 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-10-12 11:41:55
推荐
本帖最后由 Ellia.Duan 于 2023-10-12 11:49 编辑

您好,经过开发调研,此问题是因为pdfbox处理simsunbd.ttf时造成的问题。为此我们已向pdfbox这个第三方插件报告了此问题。
在此问题中给出了两个建议,一个是升级pdfbox版本;一个是删除simsunbd.ttf字体文件,并且使用Windows自带的simsun.ttc。GcExcel会模拟粗体宋体效果,不需要专门的粗体宋体。
关于第一个建议,由于当前GcExcel 依赖的pdfbx是v2版本,所以建议您先使用第二个方案解决此问题。

评分

参与人数 1满意度 +5 收起 理由
兴达李俊 + 5

查看全部评分

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-9-26 10:34:53
沙发
本帖最后由 Ellia.Duan 于 2023-9-26 10:36 编辑

您好,一般来说,可以通过设置默认样式来达到字体一致的效果,但是在样式上,存在一个优先级。单元格>行>列> 表单样式。如果在某个单元格设置了字体样式,那么设置的defaultStyle 将不起作用。这样子需要遍历每一个单元格重新设置字体。
还有一个方案您可以参考下,就是清除格式。但是此操作不仅格式化了字体大小,其他样式如字体背景色,字体颜色都将变化。
如果上述方案还是不能满足您的需求,建议将您的json文件上传上来,具体看一下如何解决。
回复 使用道具 举报
兴达李俊
注册会员   /  发表于:2023-9-26 10:41:52
板凳
Ellia.Duan 发表于 2023-9-26 10:34
您好,一般来说,可以通过设置默认样式来达到字体一致的效果,但是在样式上,存在一个优先级。单元格>行>列 ...

这里面的字体有点乱,有些甚至没有设置,我想统一下,用gcexcel可以吗?

导出pdf问题1(2).txt

743.73 KB, 下载次数: 272

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-9-26 11:36:20
地板
兴达李俊 发表于 2023-9-26 10:41
这里面的字体有点乱,有些甚至没有设置,我想统一下,用gcexcel可以吗?

您好,可以参考这篇文章修改样式:

https://demo.grapecity.com.cn/do ... s/createstylebaseon
修改后效果如下:
image.png685821227.png
  1.         Workbook workbook = new Workbook();
  2.         workbook.open("E:\\download\\新建文本文档.json");
  3.         IWorksheet worksheet = workbook.getActiveSheet();
  4.         IStyle myGood = workbook.getStyles().add("MyGood", workbook.getStyles().get("Good"));
  5.         myGood.getFont().setBold(true);
  6.         myGood.getFont().setItalic(true);

  7.         worksheet.getUsedRange().setStyle(workbook.getStyles().get("MyGood"));
  8.         workbook.save("E:\\download\\新建文本文档.pdf");
复制代码


可以发现字体大小,字体,背景色都发生了变化。
另外,帮您查了下没有生效的文字是富文本。
image.png703314208.png
富文本不在这个范围中,您需要手动修改,或者取消富文本。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-9-27 16:58:23
5#
您好,使用上述方案是否可以解决您的问题呢?
回复 使用道具 举报
兴达李俊
注册会员   /  发表于:2023-10-10 15:46:42
6#
Ellia.Duan 发表于 2023-9-27 16:58
您好,使用上述方案是否可以解决您的问题呢?

谢谢
回复 使用道具 举报
兴达李俊
注册会员   /  发表于:2023-10-10 15:47:48
7#
本帖最后由 兴达李俊 于 2023-10-10 15:52 编辑
Ellia.Duan 发表于 2023-9-27 16:58
您好,使用上述方案是否可以解决您的问题呢?

我想问下
1.字体下载,你们可以提供个网址吗?,网上太乱了!
2.Linux部署后,设置字体库,里面填的路径,是根路径吗,放在系统文件下的不是jar包中的?
3.Linux部署后,workbook加载json数据,若是json中设置的字体,在字体库中没有,可以统一设置成默认字体吗?

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-10-10 16:28:17
8#
本帖最后由 Ellia.Duan 于 2023-10-10 16:35 编辑

1、您好可以访问这个链接来提取字体文件,但是此文件仅包含一部分字体文件。
链接:https://pan.baidu.com/s/1Cw33CHC-aE9YmGyhLBlYlw 密码:sq4v
2、关于第二个问题,字体文件可以放在根路径下,您可以参考windows下的字体配置
https://www.grapecity.com.cn/dev ... ureFontsandSetStyle
3、关于第三个问题,上述文章也解释了,导出为PDF文件时,GcExcel Java使用工作簿. Workbook.FontsFolderPath以呈现PDF。但是,如果使用的字体不存在,它将使用一些备份字体。如果文件中不存在备份字体, GcExcel Java将抛出异常:“没有可用字体。请为工作簿的FontsFolderPath方法设置有效路径!“
回复 使用道具 举报
兴达李俊
注册会员   /  发表于:2023-10-10 16:29:28
9#
Ellia.Duan 发表于 2023-10-10 16:28
1、您好可以访问这个链接来提取字体文件,但是此文件仅包含一部分字体文件。
链接:https://pan.baidu.com ...

回退字体可以指定吗
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-10-10 16:41:28
10#
兴达李俊 发表于 2023-10-10 16:29
回退字体可以指定吗

您好,这里将备份字体更合适一点,已更新楼上回复。
备份字体不能指定。
如果指定字体不存在,比如说单元格是中文,字体是雅黑,但是字体目录里没有,就会找一个能画中文的字体,比如说等线。等线就是备份字体。
同时,楼上给出统一字体的方案,您这边没有效果吗?或者说不能达到您的需求吗?
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部