aspose工具word转pdf文件,在linux服务器上出现内容乱码问题
1、先看问题的出现:
功能是这样滴:上传一个word文件,然后把word文件转成pdf,保存在服务器上,然后打开服务器上的pdf文件地址,在线查看文件出现内容乱码,如下:
2、解决在Linux上word转pdf时出现乱码问题:
看了其他乱七八糟的博客,就用他的解决了这个问题:https://blog.csdn.net/chengxuxuan/article/details/122827866?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122827866-blog-64905214.pc_relevant_3mothn_strategy_recovery&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122827866-blog-64905214.pc_relevant_3mothn_strategy_recovery&utm_relevant_index=1
主要就是 在linux上要使用windows的字体。
第一步:把windows系统上的fonts文件上传到 linux服务器上的/usr/share/fonts目录里,如果没有/usr/share/fonts目录,就自己创建一个
windows的fonts所在地址:C盘的windows目录的fonts文件夹,480M还真是有点大
(注意:我的是放在了/usr/share/fonts目录里)
上传到linux服务器的/usr/share/fonts目录后,使用以下命令,把字段缓存到linux里
上传之后在liunx系统下更改这些字体库的权限: sudo chmod 755 /usr/share/fonts/*
fc-cache命令用不了的话,安装一下:
然后一步到味,更新一下字段缓存:
最后一步,要在你的aspose转pdf工具类里,放入下面关键代码:
【
//apose在linux服务器上生成pdf,内容乱码问题,解决代码:将windows的字体上传到linux,取linux上的字体列表
FontSettings fontSettings = FontSettings.getDefaultInstance();
fontSettings.setFontsFolder("/usr/share/fonts" + File.separator, true);
】
String os = System.getProperty("os.name"); //获取当前java运行 if(os != null && os.toLowerCase().startsWith("windows")){ // log.info("当前是windows"); }else if(os != null && os.toLowerCase().startsWith("linux")){ //当前环境:linux系统 // log.info("当前是linux系统"); //apose在linux服务器上生成pdf,内容乱码问题,解决代码:将windows的字体上传到linux,取linux上的字体列表 FontSettings fontSettings = FontSettings.getDefaultInstance(); fontSettings.setFontsFolder("/usr/share/fonts" + File.separator, true); }
重新上传一个word文件,成功在linux上转成pdf:
。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
2018-10-17 搭建ELK日志分析系统