1. 程式人生 > >解決OpenOffice格式轉換中文亂碼終極解決方案

解決OpenOffice格式轉換中文亂碼終極解決方案

今天遇到個很鬱悶的問題,用openOffice 在windows開發環境下轉換ppt,word到pdf,裡面的文字無論中英文都能正常顯示,但是部署到了生產環境(CentOS 7.3.2)之後,轉換的結果全部是亂碼,於是在網上找了一篇文章,步驟寫得很好,按照他的步驟成功解決了問題,特意轉發過來,希望對大家有幫助。

1、環境

CentOS release 7.3.2
已安裝:openoffice4.1.3, jodconverter.2.2.2。

2、OpenOffice使用

Apache OpenOffice是一款先進的開源 辦公軟體套件,它包含文字文件、電子表格、簡報、繪圖、資料庫等,能夠支援許多語言,可以在多種作業系統上運作,並能夠讀寫其它常用辦公軟體包生成的檔案。同時它也是一個平臺,使用者可以基於其提供的API介面來開發自己的應用程式。

Jodconverter是一個JAVA的OpenDocument**檔案轉換器,利用OpenOffice可以進行多種文件格式之間的轉換,支援的格式包括OpenDocument,PDF,RTF,Word,Excel,PowerPoint,以及Flash。它可以被用做**JAVA庫,命令列工具,或者一個WEB應用。

已驗證過的格式轉換支援如下: 
【1】、ppt/pptx轉為html,轉成的html結果是:文字和圖片分開儲存,每頁PPT對應一個html。 
【2】、ppt/pptx轉pdf; 
【3】、doc/docx轉html。

3、格式轉換出現中文亂碼

java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /opt/test.ppt /opt/test.pdf 
亂碼症狀:所有中文字元都顯示為???

亂碼。 
我遇到的情況是:ppt轉pdf出現亂碼,隨即花了半天的時間找到了解決方案。 
其他型別轉換出現亂碼如:doc轉pdf等的解決方案都類似。

4、亂碼解決方案

步驟1:建立路徑。

在centos的/usr/java/jdk1.8.0_91/jre/lib/fonts下新建路徑:fallback。

[root@780ec6 fallback]# echo $JAVA_HOME
/usr/java/jdk1.8.0_91
  • 1
  • 2

步驟2:上傳字型。

將字型:simhei.ttf 黑體、simsun.ttc 宋體(windows下通過everything找下)上傳至/usr/java/jdk1.8.0_91/jre/lib/fonts/fallback路徑下。

步驟3:檢視系統字型檔案路徑。

檢視方案:

[[email protected] fallback]# cat /etc/fonts/fonts.conf
<!-- Font directory list -->
  <dir>/usr/share/fonts</dir>
  <dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir> <dir>/usr/local/share/fonts</dir>
  <dir>~/.fonts</dir>
  • 1
  • 2
  • 3
  • 4
  • 5

步驟4:字型拷貝。

將 /usr/java/jdk1.8.0_91/jre/lib/fonts的全部內容,拷貝到步驟3檢視的路徑下, 我的字型路徑為:/usr/share/fonts。

步驟5:更新快取

執行命令:fc-cache

步驟6:kill掉openoffice程序。

[root@80ec6 fonts]# ps -ef | grep openoffice
root 3045 3031 0 06:19 pts/1 00:00:03 /opt/openoffice4/program/soffice.bin -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard
執行killkill -9 3045
  • 1
  • 2
  • 3

步驟7:重啟後臺執行openoffice。

[root@a3cf78780ec6 openoffice4]# soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
  • 1

步驟8:完成格式轉換。

java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /opt/test.ppt /opt/test.pdf
  • 1

至此,轉換完畢,亂碼不再存在。

轉至:https://blog.csdn.net/laoyang360/article/details/73555598

相關推薦

解決OpenOffice格式轉換中文亂碼終極解決方案

今天遇到個很鬱悶的問題,用openOffice 在windows開發環境下轉換ppt,word到pdf,裡面的文字無論中英文都能正常顯示,但是部署到了生產環境(CentOS 7.3.2)之後,轉換的結果全部是亂碼,於是在網上找了一篇文章,步驟寫得很好,按照他的步驟成功解決了問

JavaWeb的各種中文亂碼終極解決方法

一、Servlet輸出亂碼 1. 用servlet.getOutStream位元組流輸出中文,假設要輸出的是String str ="釣魚島是中國的,無恥才是日本的"。 1.1 若是本地伺服器與本地客戶端這種就不用說了,直接可以out.write(st

jsp servlet中文亂碼終極解決方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

linux 下navicat 中文亂碼終極解決方案

navicat 也是夠了,直接用了個wine包裝navicat 成了linux版本的了,對此表示無語 此前有很多人說,要更改startnavicat指令碼中的 lang 很明確的說沒有成功,因為 根本不是那的事, 是因為wine的事  解決辦法: 安裝 文泉驛字型

ubtuntu環境下使用matplotlib 繪圖中文亂碼終極解決方案

很多童鞋都喜歡在linux環境下寫程式碼,但是Linux環境下經常會出現如下圖中文亂碼的問題,博主最近在linux下寫python程式時就遇到了matplotlib繪圖時總出現中文變成框框的情況。其他的童鞋也給出了不錯的辦法比如修改全域性環境的方法等,博主

linux裝OpenOffice後傳---中文亂碼解決

上一篇的部落格已經詳細的介紹了linux系統上如何安裝OpenOffice,安裝之後使用發現轉換的pdf出現中文亂碼。後來發現是linux上沒有中文對應的那個字型。 字型準備 在windows上的

django中文亂碼終極解決方案

pyhon的預設編碼是ASCII編碼,可以通過sys.getdefaultencoding(),為了避免比較麻煩的編碼問題應設定系統預設編碼為utf8 import sys default_encoding = 'utf-8' if sys.getdefaultenco

SSH框架中文亂碼終極解決方案

在java專案開發中,容易發生亂碼,在幾個地方設定,避免亂碼: 以eclipse開發環境為例: 1.開發環境設定成utf-8:在window–preferences–General–Workspace下設定; 2.tomcat配置檔案設定成utf-8:在你

JAVA NIO(三):緩衝區的相互轉換中文亂碼解決方案

在Java IO中,Channel(通道)只能直接與ByteBuffer進行通訊,這樣我們可能會用ByteBuffer的檢視來解決資料的轉換問題,如將字串轉換為二進位制緩衝區,整數緩衝區轉換為二進位制緩衝區,示例如下: ByteBuffer buffer

JS中文轉換(UTF-8),中文亂碼解決辦法,url傳遞中文亂碼解決

轉自:http://jun1986.iteye.com/blog/1056732 js合成url時,如果引數是中文,傳到struts2中會亂碼,解決辦法如下: 1.js檔案中使用encodeURI()方法(必須套兩層)。 login_name = encodeURI(e

utf-8編碼的頁面向GBK編碼的頁面提交中文表單亂碼終極解決方案

有關這個問題已經困擾我好多天了,甚至都有點上火,但是最後還是解決了。。 是這樣的,我是做有關讀秀的的請求,但是請求中文無論怎樣都是亂碼,無論是在請求前用js處理,還是用盡各種辦法,就是死活不行,後來到

解決springmvc返回json中文亂碼

jackson ons con handle json 額外 adapter blog 設置 [email protected]/* */,這個問題上網找了很久,發現答案真是人雲亦雲,奉上我的解決方案: 解決方案一:需要導入 jackson-core-asl-1

微信公眾號開發--獲取用戶信息中文亂碼解決方案

其中 utf-8 == font zzu 解決 col class api 在微信開發中我們會經常需要獲取用戶的信息。 微信給我們提供了獲取用戶信息的api, 地址為 https://api.weixin.qq.com/cgi-bin/user/info?access_t

SSH Secure Shell Client中文亂碼解決方法

lan 變量 class -a log ive 解決方法 lang 查看 http://www.cnblogs.com/52linux/archive/2012/03/24/2415082.html方案一:修改linux服務器的環境變量 使用linux,在用戶根目錄下有一個

Ajax中文亂碼解決

text under 方法 uri 字符串 utf spa mssq 服務端 網上有很多解決Ajax中文亂碼的例子,昨晚弄了很久,最終確定一種“確實”有效地方法。首先我有必要說明一下我遇到的情況:有一個註冊頁面,註冊用戶填完信息並提交後,頁面獲得信息並通過java serv

spring mvc中關於url中傳遞中文亂碼解決方法

般的 har rac color nco bytes utf8 int span 在傳值過程中,也是亂碼出現的頻繁地。先不說到底是什麽場景了,通常常用的方案有如下幾個 配置指定的filter <!-- 配置請求過濾器,編碼格式設為UTF-8,避免中文亂碼-->

Jsp頁面中的中文亂碼問題解決

pan 格式 align 編碼格式 聲明 pro tty Coding enter Jsp頁面中的中文亂碼問題解決 在編寫Jsp頁面的時候,發現寫入其中的中文在瀏覽器瀏覽的時候會出現亂碼的情況。 出現亂碼的原因分析: 因為頁面中對自己的編碼格式的聲明和頁面的實

JAVA中文亂碼解決方案

can tco con enc 字符 pos 好的 type nco 1.解決HTML頁面的中文問題:為了使HTML頁面很好的支持中文,在每個HTML頁面的<head>標簽內部增加(創建HTML頁面自帶) <head> <m

ssm框架插入mysql數據庫中文亂碼問題解決

mar word ref def http reat pro xml文件 framework 1. 檢查web.xml <!-- 編碼過濾器 --> <filter> <filter-name>

web項目存數據到數據庫,中文亂碼解決過程

問題 async sql安裝 -s pat character value 127.0.0.1 supported 排查原因: 打斷點,查看到底是在執行存數據庫操作之前就已經亂碼了,還是存數據庫操作後亂碼的。 前者解決方案: 在web.xml裏面加上: <