libreoffice word转pdf时中文乱码问题解决
项目中有一个在线上传并预览实验报告的需求,因为项目部署在ubuntu上面,所以借助libreoffice实现word转pdf,然后使用pdf.js在线预览pdf文档.
Python里面调用libreoffice转换Word->pdf的方法:
subprocess.call(
'export HOME=/home/luces; timeout 120s lowriter --headless --convert-to pdf "{}"'.format(self.src) + ' --outdir "{}"'.format(
self.dest), shell=True)
timeout 120s是转换超时时间,设置原因是libreoffice转换失败并不会主动退出,而是卡住,导致系统很慢.
export HOME=/home/luces;这句话是因为项目部署在容器里面的时候,默认的系统操作用户时root,而我们的项目的用户并不是,会导致转换失败.
--outdir的作用是指定转换出来的pdf存放目录.
在转换文档格式的时候遇到错误,转换中文格式乱码,linux下缺乏中文字体.我的解决办法如下:
我们把Windows下的字体C:\Windows\Fonts下的宋体,即simsun.ttc复制到当前用户的主文件下。
以打开终端:
sudo cp simsun.ttc /usr/share/fonts
cd /usr/share/fonts
修改权限
sudo chmod 644 simsun.ttc
更新字体缓存:
sudo fc-cache -fv
但是,这样会破坏系统的默认字体设置,特别是Ubuntu,由于宋体的优先级高于文泉驿,系统会优先抓取宋体,默认漂亮的光滑矢量字体会变成点矩阵的宋体。怎么办?
2.最完美的方案:
Linux是多用户的,但是我们自己的电脑通常只用一个普通用户,so,我们只需让字体对自己生效就行了,这样不会破坏系统字体设置。
打开主文件夹
按Ctrl+H显示隐藏文件夹,打开.libreoffice (也有的在.confing/libreoffice,比如ubuntu 12.04)
依次进入到3/user,新建文件夹fonts
然后把字体复制到fonts这个文件夹下即可.(这一部分来自https://blog.csdn.net/frylion/article/details/8207259)
在线预览pdf,能够使用pdf.js,但是最简单的办法时使用pdf文件夹自带的viewers.html.使用方法如下:
<iframe name="myframe" src="/site_media/static/expt_report/js/pdf/generic/web/viewer.html?file={{pdf_path}}" width="100%" height="800"></iframe>
这样就实现在线预览pdf了,并且效果也很好.
还有一点,libreoffice不支持并发,所以当两个文件同时转换的时候会出问题,因此在对文件转换时需要加锁.我现在是对某个文件进行加锁.处理完成释放锁
libreoffice word转pdf时中文乱码问题解决相关推荐
- linux中安装openoffice,及解决转pdf时中文乱码或者中文不显示问题【离线】
linux中安装openoffice[离线] 目录安装openoffice启动openoffice查看openoffice运行状态启动时可能出现的问题openoffice在转pdf时,中文乱码或者中文 ...
- EBS 报表输出PDF时中文乱码
运行请求输出报表,查看输出文件,打开PDF文件 中文都是 ? 符号. 原因:JVM运行时缺少了True Type字体(.ttf)文件导致的. 解决方法:只要将字体拷贝相应的字体文件到JRE环境下即可. ...
- 关于JAVA导出word或者excel文件中文乱码问题解决
搜了一下,发现网上都是解决文件名乱码的问题,这里记录一下从数据库查询出的数据写入文件中文乱码的问题 个人采用的是对象查询出来以后转为json字符串,然后字符串进行转码,再转成jsonObject格式 ...
- bootstrap使用tableExport导出pdf时中文乱码问题
前言 最近拿到了一个任务,让处理一下公司的系统平台问题.问题就是页面导出PDF文件,有中文的话显示的都是乱码.因为公司的项目都是给国外客户使用的,所以我估计从设计到测试都没有考虑中文的问题.但是为啥现 ...
- docx4j word转pdf解决中文乱码问题(包括宋体(正文))
docx4j 是个非常好用的docx操作包,我主要用来做docx转pdf,但是发现中文会有乱码,原因是因为word里面的中文字体名也是中文的,但是从本地字体库里面拿到的字体名是英文的,所以需要做个映射 ...
- FastReport 导出pdf时中文乱码的解决办法
2019独角兽企业重金招聘Python工程师标准>>> 我使用的FastReport的版本为5.4.6.在导出pdf的时候,中文全是乱码,在网上查找资料,都是很老的资料,各种改源码. ...
- python读写csv时中文乱码问题解决办法
参考1 参考2 参考3 CSV是英文Comma Separate Values(逗号分隔值)的缩写,顾名思义,文档的内容是由 "," 分隔的一列列的数据构成的,可以使用excel和 ...
- python csv 中文乱码_python读写csv时中文乱码问题解决办法
CSV是英文Comma Separate Values(逗号分隔值)的缩写,顾名思义,文档的内容是由 "," 分隔的一列列的数据构成的,可以使用excel和文本编辑器等打开.CSV ...
- WORD另存为PDF时出现乱码的解决方案
问题描述:在服务器上用WORD2007打开文档,另存为PDF,PDF中的部分内容会出现乱码:而在本地电脑上进行同样的操作却不会出现乱码. 原因:这是由于服务器上的OFFICE2007没有安装SP3补丁 ...
- Mac下使用SecureCRT时中文乱码问题解决
MAC自带终端在本地没有乱码问题,使用SecureCRT会乱码:则可以通过如下方式解决. 1.Mac本地设置 nisjdeMacBook-Pro:~ nisj$sudo vim /etc/profil ...
最新文章
- poj3686(最小权值完美匹配)
- RocketMQ-什么是死信队列?怎么解决
- linux命令详解——top
- shell脚本自动备份MySQL数据库
- Python min() 方法
- java excel条件格式_Java 使用条件格式高亮Excel单元格
- 进程间通信方式_第四十九期-Linux内核中的进程概述(4)
- sql语句 isnull(列名,'')='' /STUFF的意思
- 【数据分析师-数据分析项目案例一】600w+条短租房数据案例分析
- 全网唯一, MATLAB绘制好看的弦图
- Python入门学习二:列表
- 计算机毕业论文个人小结2500字,毕业论文个人小结
- win8dns服务器没响应,win8笔记本dns服务器未响应怎么办
- 瑞吉外卖项目学习笔记:P1-项目介绍
- 物联网开发 7 旗点云物联网云平台
- 解决ausu MT7630 linux(ubuntu)下 wifi无法使用
- 页面报错:无法设置未定义或 null 引用的属性“*****”
- 解决由于找不到amd_ags_x64.dll,无法继续执行代码。重新安装程序可能会解决此问题,地平线(Forza Horizon 5)
- POJ 3009 Curling 2.0 {深度优先搜索}
- ADS学习:电磁仿真设计
热门文章
- Spring使用json转换工具
- MacOS Big Sur 11.2.2 (20D80) With and OC 0.6.7 原版DMG黑苹果镜像
- 近3年微软与谷歌的发展对比分析
- 基于Android的健康打卡系统,基于Android平台的个人健康管理系统
- 现代操作系统 第十章 UNIX、Linux 和 Android 下
- 智能制造与大数据——数据采集实现数字化
- 搜狗拼音输入法下载|搜狗拼音输入法下载
- 结合eXeScope打造个性flash发布后的应用程序exe文件
- u3d商业级开心消消乐源码开发总结
- Linux内核启动内核解压过程分析