Java使用Spire.Pdf或Aspose-Words实现Word转换Pdf在Linux服务器上的中文乱码问题

一、问题产生的背景

当Word文档中含有中文字符时,不管是使用Spire.Pdf或Aspose-Words实现Word转换Pdf,代码的执行都需要调用操作系统的本地字体库支持,否则所有中文字符都将乱码

二、问题原因分析

在Windows环境下没有问题但是在Linux环境下有问题,说明不是代码或者输入输出流编码的问题,根本原因是两个平台环境的问题。出现乱码说明Linux环境中没有相应的字体以供使用

如果你的代码想要在Linux服务器上完美运行,就需要给Linux服务器安装中文字体库

三、解决方案

将转换无问题的Windows主机中的字体拷贝到Linux平台下进行安装,重启服务器后转换就不会出现乱码

Windows字体复制到Linux环境并安装

Windows字体库的位置是C:\Windows\fonts,这里面包含所有Windows下可用的字体

Linux字体库的位置是 /usr/share/Fonts
在该目录下新建一个目录,比如目录名叫 windows,然后将 Windows 字体库中你要的字体文件复制到新建的目录下(只需要复制*.ttc,和*.ttf格式的文件)

cp *.ttc /usr/share/fonts/windows/
cp *.ttf /usr/share/fonts/windows/

更改这些字体库的权限

chmod 755 /usr/share/fonts/windows/*

然后进入Linux字体库

cd /usr/share/fonts/windows/

接着根据当前目录下的字体建立scale文件

mkfontscale

PS:如果提示找不到这个命令,使用:yum install mkfontscale
接着建立dir文件

mkfontdir

PS:如果提示找不到这个命令,使用:yum install fontconfig
然后运行

fc-cache

最后需要重启一次服务器

免费Spire.PDF for .NET 是一款由e-iceblue公司开发的专业性的PDF文档创建组件。它能够使用户在不用Adobe Acrobat和其他外部控件的情况下,运用.NET 应用程序阅读,编写和操纵PDF 文档。Spire.PDF for .NET不仅可以运用在服端比如:ASP.NET 者其他环境,还可以应用在Windows Forms 应用程序中。Spire.PDF for .NET 适合应用于所有常见的坏境中,比如:创建好的PDF文档可以存到磁盘中, 还可以在Windows Forms应用程序,ASP.NET 应用程序客户端浏览器中保存为数据流。 Spire.PDF for .NET 功能丰富。 除了基本的功能比如:绘制多种图形,图片,创建窗体字段,插入页眉页脚,输入数据表,自动对大型表格进行分页外,Spire.PDF for .NET还支持PDF数字签名,将HTML转换PDF格式,提取PDF文档中的文本信息和图片,存为文本格式和各种图片格式,甚至可以将PDF中的附件提取出来。 主要功能 支持嵌入式字体,Truetype 字体和CJK字体。 支持绘图。比如:矩形,环形,弧形,椭圆形,也可以自定笔刷将其填充。 可以将图片从数据流,磁盘文件中载入到PDF 文档中。 在PDF 文档中既可以绘制梯状图形和矢量图像,还支持掩模和水印图像。 可以在PDF 文档中载入数据表。可以设置表中的行和列的格式,还可以在表内加入图形元素。 自动对PDF 中的大型表格进行分页。 创建窗体字段。比如在PDF 文档中创建按钮,文本框,列表框,复选框等等。 在PDF 中插入页眉页脚。 通过设置所有者密码和用户密码来加密PDF文档。 通过作者的签名来保护PDF文档。 读取当前PDF文档的表格并且填充表格。 HTML网页在转换PDF文档时会拆分为多个大型页面,这些页面可以原原本本的展现在PDF文档中,而且在PDF文档的分页处没有任何文字的截断。用户还可以将这些网页在不需要临时文件的情况下,直接转换为数据流来创建PDF文档。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值