首页 > 系统相关 >关于在linux-centos7下部署 .net core程序绘图(PDF等)丢失中文字体的解决方案

关于在linux-centos7下部署 .net core程序绘图(PDF等)丢失中文字体的解决方案

时间:2023-04-26 10:48:03浏览次数:52  
标签:core repo fonts devel centos7 中文字体 yum install 安装

关于在linux-centos7下部署 .net core程序绘图(PDF等)丢失中文字体的解决方案
说明:
1:以下操作基于新系统, 如果步骤一,二已经安装则不需要额外安装. 需要注意的是,在使用(yum install 包)的时候 如果提示包不存在;需要运行 步骤 (一:5 安装epel,企业版Linux额外包)
2:以下()内代表可以执行的linux命令行;

一、配置网络yum源仓库;替换官方的yum仓库,解决软件下载速度慢的问题
  1:进入到/etc/yum.repos.d/目录
    (cd /etc/yum.repos.d/)
  2:下载repo文件
    2.1:用wget,输入命令 (wget http://mirrors.aliyun.com/repo/Centos-7.repo)。注意:如果wget命令不生效,说明还没有安装wget工具,输入 (yum -y install wget) 回车进行安装。
      当前目录是/etc/yum.repos.d/,刚刚下载的Centos-7.repo也在这个目录上;也可以选择手动下载 地址:http://mirrors.aliyun.com/repo/; 选择centos-7.repo并下载到本地.然后将文件传到文件夹(/etc/yum.repos.d/)下;
  3:备份系统原来的repo文件
    3.1: (ls) 查看当前目录下的文件
    3.2: (mv CentOS-Base.repo CentOs-Base.repo.bak) 备份; (如果找不到文件,就查看文件名是否正确,注意大小写)
    3.3:(mv Centos-7.repo CentOs-Base.repo) 把刚刚下载的repo文件替换系统原来的repo文件
  4:更新yum源
    (yum clean all && yum makecache)
  5:安装epel,企业版Linux额外包
    (yum install -y epel-release)
  6:参考链接:https://blog.csdn.net/lpl_lpl_lpl/article/details/85621740

 

二、安装.NET环境
  1:检查 SDK 版本 (dotnet --list-sdks) 存在将获得类似于下面的输出 -- 3.1.100 [/home/user/dotnet/sdk]
  2:检查运行时版本 (dotnet --list-runtimes) 存在将获得类似于下面的输出 -- Microsoft.NETCore.App 3.1.0 [/home/user/dotnet/shared/Microsoft.NETCore.App]
  3:详细信息 (dotnet --info)查看 SDK 版本和运行时版本。 你还将获得其他环境相关信息,如操作系统版本和运行时标识符 (RID)。
  4:安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。 打开终端并运行以下命令:
    (sudo rpm -Uvh https://packages.microsoft.com/c ... -microsoft-prod.rpm)
  5:安装 SDK
    .NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。运行以下命令: 安装完成以后可以再执行以上检查版本命令查看.
    (sudo yum install dotnet-sdk-3.1) 安装过程中 y 表示同意安装 ,也可以在安装命令后指定-y参数全自动选择.(sudo yum install -y dotnet-sdk-3.1);
  6:参考链接:https://docs.microsoft.com/zh-cn ... tos#install-the-sdk


三、安装字体
  1:安装字体库配置工具
    (yum -y install fontconfig)
  2:查看是否有中文字体 / 所有字体
    (fc-list :lang=zh) / (fc-list)
  3:创建中文字体目录
    (mkdir /usr/share/fonts/chinese)
  4:添加中文字体
    4.1:进入windows字体文件的位置:C:\Windows\Fonts,复制选择(宋体 常规)(因为PDF需要用到该字体);
    4.2:上传字体文件到/usr/share/fonts/chinese文件夹中;上传到centos以后,文件名称叫 SIMSUN.TTC,
    4.3:修改chinese目录的权限:
      (chmod -R 755 /usr/share/fonts/chinese)
  5:安装ttmkfdir来搜索目录中所有的字体信息,并汇总生成fonts.scale文件
    5.1: (yum -y install ttmkfdir)
    5.2: (ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir)
  6:最后一步就是修改字体配置文件了
    6.1:通过xftp找到路径 /etc/fonts/;右键用记事本编辑 fonts.conf文件; (没有xftp就用vi编辑(vi /etc/fonts/fonts.conf) (i 编辑模式,Esc 退出编辑模式), (退出编辑模式之后(:wq)保存退出))
    6.2:fonts.conf是一个xml文件,找到 <!-- Font directory list --> 下的节点,下面的节点指向了字体所在的文件夹的位置.
    6.3:添加一个节点,把刚刚创建的字体文件路径 (<dir>/usr/share/fonts/chinese</dir>) 添加进去; 保存关闭

  7:刷新字体缓存
    (fc-cache);
    执行第二步查看字体列表;
  8:参考链接:https://blog.csdn.net/wlwlwlwl015/article/details/51482065

四、安装 libgdiplus; libgdiplus是一个开源的GDP+ API,用于绘制图形。
  1:安装依赖
    1.1:安装libgdiplus依赖
      (yum install -y autoconf automake libtool)
      (yum install -y freetype-devel fontconfig libXft-devel)
      (yum install -y libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel)
      (yum install -y glib2-devel cairo-devel)
      (yum install -y pango-devel) //中文丢失的原因 就是这个依赖包没有安装;
    1.2:安装libgdiplus
      (yum install -y libgdiplus-devel) //libgdiplus-devel 会自动下载依赖 libgdiplus

  2:参考链接:https://www.cnblogs.com/quan01994/p/9340355.html
    https://centos.pkgs.org/7/epel-aarch64/libgdiplus-2.10-10.el7.aarch64.rpm.html;
    https://github.com/mono/libgdiplus/tree/release/6.0#libgdiplus-an-open-source-implementation-of-the-gdi-api;
    https://github.com/CoreCompat/System.Drawing/issues/8;


最后启动运行.net core 程序
  dotnet ****.dll --urls="http://*:20999" &;

 

标签:core,repo,fonts,devel,centos7,中文字体,yum,install,安装
From: https://www.cnblogs.com/liuxiaoji/p/17354934.html

相关文章

  • Sitecore XP 10.3(latest) Docker一键部署
    本文演示通过PowerShell+DockerDesktopforWindows一键部署Sitecore10.3(即Sitecore最新版)Docker开发/测试/演示环境。官方参考 SitecoreXP10.3.0DeveloperWorkstationDeploymentWithDocker演示配置为XPSingle(XP0) 环境准备1,windows10+/WindowsServer2019(Windows......
  • Winform使用EFCore的CodeFirst(注入方式)
    1、新建项目使用vs创建一个winform的项目,这里就不演示了。2、拉取nuget包获取配置:Microsoft.Extensions.Configuration.Json注入:Microsoft.Extensions.DependencyInjectionmysqlEF:MySql.EntityFrameworkCore3、创建appsettings.json配置文件在项目......
  • CentOS7再次探讨修改系统的启动模式(运行级别)
    1.查看当前运行级别:systemctlget-default或者runlevel或者who-r2.查看文件夹/lib/systemd/system/ll/lib/systemd/system|grepmulti-user.target ll/lib/systemd/system|grepgraphical.target ll/lib/systemd/system/default.target可以看到当前默认的runle......
  • CentOS7修改开机启动模式:命令行模式(runlevel=3)
    1.打开文件/etc/inittab: sudo/etc/inittab显示当前的runlevel:systemctlget-default设置默认的运行级别:systemcltset-defaultXX.target。XX可以是multi-user或者graphical按照提示在终端中执行命令:systemctlset-defaultmulti-user.target注意:按照inittab文件中的提......
  • centos7下安装ifconfig 命令
    1,查找安装包 [root@localhostnetwork-scripts]#yumsearchifconfig已加载插件:fastestmirrorLoadingmirrorspeedsfromcachedhostfile*base:centos.ustc.edu.cn*extras:centos.ustc.edu.cn*updates:centos.ustc.edu.cn===================================......
  • [问题记录]k8s集群中coredns解析失败
    目录[问题记录]k8s集群中coredns解析失败故障现象问题排查问题解析举例说明:解决方案修改ndots参数参考文档[问题记录]k8s集群中coredns解析失败故障现象在k8s集群,使用coredns提供集群内部dns服务但是在使用过程中,偶现解析公网域名失败的情况,应用内日志记录显示UnknownHost问......
  • Centos7.9安装JDK1.8
    卸载Centos自带JDK卸载系统自带的JDK;通过以下命令查看是否已经安装JDKyumlistinstalled|grepjava或者如下命令都可以查看到是否安装了JDKwhereisjavafind/-namejava如图:  如果安装了则通过以下命令进行删除:yum-yremovejava安装JDK下面通过两种方......
  • 【HMS Core】Health Kit取消授权接口怎么辨识是哪个用户取消授权呢?
    【问题描述1】取消授权接口怎么辨识是哪个用户取消授权呢? 【解决方案】取消授权时,请求头中需要传入access_token,此access_token对应某个用户。详情请查看取消授权接口:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/cancel-scpoes-00000010......
  • Sitecore10 Demo演示环境Azure一键部署(Step By Step Guide to installing Sitecore10
    本文演示SitecoreXPSingle(XP0)在Azure上的一键部署,即“30分钟生成Sitecore演示环境”的一环。关于XP(即SitecoreExperiencePlatform)roles的相关介绍移步XPSingle配置主要用来开发和测试:FourSitecoreroles:ContentDelivery,ContentManagement,Processing,andRepo......
  • Linux(CentOS7)安装与卸载MySQL8.0图文详解
    Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的难题,而且很多时候按照教程也没有能够安装成功,安装过程出现各种各样的错误。下面......