dotnetcore / Magicodes.IE

Import and export general library, support Dto import and export, template export, fancy export and dynamic export, support Excel, Csv, Word, Pdf and Html.
http://docs.dotnet-china.com/Magicodes.IE
MIT License
2.1k stars 480 forks source link

2.7版本在Centos环境下,报"The type initializer for 'SkiaSharp.SKFontStyle' threw an exception."错误 #463

Open zhh2017 opened 1 year ago

zhh2017 commented 1 year ago

使用Magicodes.IE.Excel 2.7.0版本,在Centos7、Centos8,.net 7环境下,生成Excel文件时,提示"The type initializer for 'SkiaSharp.SKFontStyle' threw an exception."错误。

xl-wenqiang commented 1 year ago

在你的Web工程,试试: Install-Package SkiaSharp.NativeAssets.Linux.NoDependencies -Version 2.88.3

zhh2017 commented 1 year ago

在你的Web工程,试试: Install-Package SkiaSharp.NativeAssets.Linux.NoDependencies -Version 2.88.3

@xl-wenqiang 谢谢,该方法测试过了,还是不行呢。

xl-wenqiang commented 1 year ago

@zhh2017 我在Unbuntu子系统下进行了调试,安装了: Install-Package SkiaSharp.NativeAssets.Linux.NoDependencies -Version 2.88.3 问题得到了解决

nivalxer commented 1 year ago

添加SkiaSharp.NativeAssets.Linux.NoDependencies依赖 asp.net core docker官方镜像下,直接可以使用 ubuntu环境下,默认带字体,安装依赖后直接可用 centos7、centos8版本,最小安装,默认不带MS字体,如果安装依赖后还是出错,按以下步骤解决: 需要在/usr/share/fonts下新建一个目录,然后把simfang.ttf、calibri.ttf(Windows的Fonts目录里面可以找到)两个文件放进去,再执行fc-cache,再使用fc-list,查看是否有FangSong、Calibri两个字体

zhh2017 commented 1 year ago

@nivalxer SkiaSharp.NativeAssets.Linux.NoDependencies依赖已添加 centos下已经有宋体、新宋体,必须要求有FangSong、Calibri这两个字体吗?

nivalxer commented 1 year ago

@nivalxer SkiaSharp.NativeAssets.Linux.NoDependencies依赖已添加 centos下已经有宋体、新宋体,必须要求有FangSong、Calibri这两个字体吗?

是的,因为在源代码里面使用到了这两个字体。 NoDependencies这个包不依赖于fontconfig,但是会在/usr/share/fonts目录下寻找字体,因此需要手动添加。

zhh2017 commented 1 year ago

@nivalxer image 目前centos环境已经安装了FangSong、Calibri这两个字体了,但是报错信息还是存在呢

nivalxer commented 1 year ago

@zhh2017 仿宋的字体好像不对。我上传了我们正式环境使用的字体文件,整个文件夹放在/usr/share/fonts(这个目录下可以新建目录,也会被识别)下即可 链接: https://pan.baidu.com/s/1nOdAatoJvv8QsybzCAaeLw?pwd=w932 提取码: w932

zhh2017 commented 1 year ago

@nivalxer image 感谢。下载并更新了字体文件,如上图,但是还是存在该问题,有些崩溃了o(╯□╰)o

nivalxer commented 1 year ago

@zhh2017 试试在fonts下建个目录丢进去,比如/usr/share/fonts/msttcore/ image

zhh2017 commented 1 year ago

@zhh2017 仿宋的字体好像不对。我上传了我们正式环境使用的字体文件,整个文件夹放在/usr/share/fonts(这个目录下可以新建目录,也会被识别)下即可 链接: https://pan.baidu.com/s/1nOdAatoJvv8QsybzCAaeLw?pwd=w932 提取码: w932

这套字体配置后,问题解决了!!需要注意的是,必须得重启下系统才行。 @nivalxer 感谢您的指点!谢谢!!

nivalxer commented 1 year ago

@zhh2017 仿宋的字体好像不对。我上传了我们正式环境使用的字体文件,整个文件夹放在/usr/share/fonts(这个目录下可以新建目录,也会被识别)下即可 链接: https://pan.baidu.com/s/1nOdAatoJvv8QsybzCAaeLw?pwd=w932 提取码: w932

这套字体配置后,问题解决了!!需要注意的是,必须得重启下系统才行。 @nivalxer 感谢您的指点!谢谢!!

我们这边也做了一下测试,是需要重启一下应用就可以了。解决了就好。