-
2021-06-05 15:50:01
1、下载安装
linux 下载rpm包
# wget https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/7.0.6/rpm/x86_64/LibreOffice_7.0.6_Linux_x86-64_rpm.tar.gz # wget https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/7.0.6/rpm/x86_64/LibreOffice_7.0.6_Linux_x86-64_rpm_langpack_zh-CN.tar.gz # wget https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/7.0.6/rpm/x86_64/LibreOffice_7.0.6_Linux_x86-64_rpm_helppack_zh-CN.tar.gz
2、安装
# yum install ./LibreOffice_7.0.6.2_Linux_x86-64_rpm/RPMS/*.rpm # yum install ./LibreOffice_7.0.6.2_Linux_x86-64_rpm_langpack_zh-CN/RPMS/*.rpm # yum install ./LibreOffice_7.0.6.2_Linux_x86-64_rpm_helppack_zh-CN/RPMS/*.rpm
3、安装中文字体(由于linux默认没有安装中文字体 所以导出有中文的文件会导致中文乱码 )
这里安装微软雅黑
3.1查看是否安装中文字体
# fc-list :lang=zh //显示为空表示没有安装中文字体 3.2 将字体上传到服务器中 /usr/share/fonts目录 # cp MSYH.TTF /usr/share/fonts/ # cd /usr/share/fonts/ # mkfontscale # mkfontdir # fc-cache # fc-list :lang=zh //查看是否安装成功 /usr/share/fonts/MSYH.TTF: Microsoft YaHei:style=Regular,Normal
4、将docx文件转化为pdf
libreoffice7.0 --invisible --language=zh-CN --convert-to pdf test.docx --outdir /home/data/libreOffice/
更多相关内容 -
如何将word转化为pdf?.docx
2021-09-27 07:02:00如何将word转化为pdf?.docx -
java如何将word转化为pdf文件
2019-01-22 09:43:25相信大家对于java应该都不陌生了,毕竟作为一款计算机语言它的使用频率...java如何将word转化为pdf文件 背景:日常开发ERP系统,会有一些工单或者合同之类需要填写打印。我们就会将其word模板来通过系统自动化填写...相信大家对于java应该都不陌生了,毕竟作为一款计算机语言它的使用频率还是非常高的。很多朋友知道java能进行程序编写,今天小编就给大家介绍一下如何使用java里的jacob来进行word转成pdf格式文件的具体操作,有需要的朋友赶紧一起来看看吧!
java如何将word转化为pdf文件
背景:日常开发ERP系统,会有一些工单或者合同之类需要填写打印。我们就会将其word模板来通过系统自动化填写并转换为PDF格式(PDF文件打印可保证文件质量,是一种通用的格式。文件不易去修改,比较稳定)。所以我们将通过jacob来实现这些功能。准备工作:
1.服务器需要安装office2007,因为我们就是调用这个来实现转换。
2.需要安装插件jacob,安装jacob-1.14.3-x86.dll到jdkjdk1.7.0jrein(你自己电脑安装的jdk)
3.需要使用jacob-1.14.3.jar包
maven代码如下:
<dependency> <groupId>net.sf.jacob-project</groupId> <artifactId>jacob</artifactId> <version>1.14.3</version> </dependency>
4.假如通过以上准备工作未成功转换,就下载一个SaveAsPDFandXPS.exe组件(office2007里的)。我就是通过这个组件才完成转换。
5.上面的在系统为windows7中就可以了,假如你的项目需要发布到服务器(服务器系统一般都是windows2008)。则还需要一步。在上面的基础上再安装安装jacob-1.14.3-x64.dll到jdkjdk1.7.0jrein(你自己电脑安装的jdk)中。很多人在win7下都能成功转换,但在win2008就是出问题。我就是通过磨了一天的时间,看了各种日志才发现问题。
一、工具类(OperationIo.java),这里面可以不做任何修改,复制粘贴就可以了。
package com.repair.util.pub; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import javax.imageio.ImageIO; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Variant; public class OperationIO { static final int wdFormatPDF = 17;// PDF 格式 /** * WORD转换PDF * @param sfileName WORD文件存在位置 * @param toFileName PDF文件存放位置 */ public static void wordToPDF(String sfileName,String toFileName){ System.out.println("启动Word..."); long start = System.currentTimeMillis(); ActiveXComponent app = null; Dispatch doc = null; try { //调用office word app = new ActiveXComponent("Word.Application"); app.setProperty("Visible", new Variant(false)); Dispatch docs = app.getProperty("Documents").toDispatch(); doc = Dispatch.call(docs, "Open" , sfileName).toDispatch(); System.out.println("打开文档..." + sfileName); System.out.println("转换文档到PDF..." + toFileName); File tofile = new File(toFileName); if (tofile.exists()) { tofile.delete(); } Dispatch.call(doc, "SaveAs", toFileName, // FileName wdFormatPDF); long end = System.currentTimeMillis(); System.out.println("转换完成..用时:" + (end - start) + "ms."); } catch (Exception e) { System.out.println("========Error:文档转换失败:" + e.getMessage()); } finally { Dispatch.call(doc,"Close",false); System.out.println("关闭文档"); if (app != null) app.invoke("Quit", new Variant[] {}); } //如果没有这句话,winword.exe进程将不会关闭 ComThread.Release(); } /** * 递归删除目录下的所有文件及子目录下所有文件 * @param dir 将要删除的文件目录 * @return boolean Returns "true" if all deletions were successful. * If a deletion fails, the method stops attempting to * delete and returns "false". */ public static boolean deleteDir(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); for (int i=0; i<children.length; i++) { boolean success = deleteDir(new File(dir, children[i])); if (!success) { return false; } } } // 目录此时为空,可以删除 return dir.delete(); } /** * 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 * @param imgFilePath 图片地址路径 */ public static String GetImageStr(String imgFilePath) {// byte[] data = null; // 读取图片字节数组 try { InputStream in = new FileInputStream(imgFilePath); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data);// 返回Base64编码过的字节数组字符串 } /** * 将二进制转换为图片 * * @param base64String */ public static void base64StringToImage(String base64String,String imageoutpath) { try { BASE64Decoder decoder = new sun.misc.BASE64Decoder(); byte[] bytes1 = decoder.decodeBuffer(base64String); ByteArrayInputStream bais = new ByteArrayInputStream(bytes1); BufferedImage bi1 = ImageIO.read(bais); File w2 = new File(imageoutpath);// 可以是jpg,png,gif格式 ImageIO.write(bi1, "jpg", w2);// 不管输出什么格式图片,此处不需改动 } catch (IOException e) { e.printStackTrace(); } } }
二、业务类(PrintWordToPdf.java) ,这里:package com.hjm.Test; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.io.Writer; import java.util.HashMap; import java.util.Map; import com.engineering.pojos.pub.gcRecordArchive; import com.repair.util.pub.OperationIO; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class PrintWordToPdf { public static void main(String[] args) { //创建一个Configuration的实例 Configuration configuration = new Configuration(); //设置编码 configuration.setDefaultEncoding("utf-8"); //创建Map对象,来保存要填写的数据 Map<String, Object> paraMap = new HashMap<String, Object>(); //下面这些是我测试的一些数据 paraMap.put("ReceivingParty", "中国民航"); paraMap.put("PackingListNo", 10087); paraMap.put("ConNo", 10088); try { //调用模板的文件夹,new File("D:\\测试")是一个绝对路径,你可以自己设置为服务器路径。 configuration.setDirectoryForTemplateLoading(new File("D:\\测试")); } catch (IOException e) { e.printStackTrace(); } Template t = null; try { //获取模板文件 t = configuration.getTemplate("FMO-08 Packing List.ftl"); // 获取模板文件 } catch (IOException e) { e.printStackTrace(); } //生成一个文件保存的文件夹 File file =new File("D:\\最终"); //判断文件夹是否存在,存在删除并重创 if (!file .exists() && !file .isDirectory()) { file.mkdir(); } else { boolean b = OperationIO.deleteDir(file); if(b){ file.mkdir(); } } //填写数据后生成的word文件。 String outfilepath = "D:/最终\\结果"+".doc"; File outFile = new File(outfilepath); // 导出文件 Writer out = null; try { try { out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(outFile),"utf-8")); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e1) { e1.printStackTrace(); } try { t.process(paraMap,out); // 将填充数据填入模板文件并输出到目标文件 out.flush(); out.close(); //转换PDF的文件 OperationIO.wordToPDF(outfilepath,"D:/最终\\结果"+".pdf"); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
总结:通过以上代码,就可以在模板中填写好数据,并将其生成word文件与其pdf文件。
上面给大家介绍的使用jacob实现word转换为pdf格式文件主要还是通过调用模板文件来达成的。文章中都给大家列出了详细的示范代码,大家可以直接将代码填入来进行操作。如果大家对于上述内容还有什么不明白的地方也可以给小编留言,大家一起交流探讨一番。
-
如何将Word转化为PDF?
2021-06-05 04:01:30今天,我就来跟大家分享一下如何顺利完成Word转PDF,如果你想get这个技能,不妨继续往下看吧~方法一:利用office软件中的Word来实现Word转PDF步骤一:找到相关文件夹,双击打开需要转化为PDF的Wo...电脑怎么把Word转成PDF?大家在学习办公的过程中经常需要将Word文档转为PDF文件,但是网上相关的软件和工具的质量不一而足,我们该如何正确的选择工具来实现Word转PDF的目标呢?今天,我就来跟大家分享一下如何顺利完成Word转PDF,如果你想get这个技能,不妨继续往下看吧~
方法一:利用office软件中的Word来实现Word转PDF
步骤一:找到相关文件夹,双击打开需要转化为PDF的Word文档,进入文档编辑界面。
小提示:如果您电脑中文件的默认打开方式不是Word2010,那么在打开文件之前,需要鼠标右键单击相关Word,然后再选择用Word2010打开此文档
步骤二:进入文档编辑界面之后,先单击选项框中的文件,然后进入相关界面,再单击另存为。
步骤三:单击另存为之后,就可以选择文档的保存方式了,选择以PDF格式保存,这样就转化成PDF了。
方法二:用万兴PDF对Word进行一站式转化
步骤一:打开万兴PDF,选择主界面上的PDF创建功能,然后就会出现弹框,找到需要转化成PDF文档的文件
步骤二:单击打开,然后Word就直接转化为PDF了,是很方便的。
目前PDF文档使用越来越多,但由于转化和编辑相对比较复杂,我们经常先用Word文档编辑好之后再转换成PDF格式,但这样只适合与单个文件的使用,如果多个文件需要转化为PDF的话,操作上就会比较麻烦,那么是否有快速批量处理的方法呢?
当然方法是存在的,就是使用我们的万兴PDF进行一站式操作。
Word转PDF的批量处理
步骤一:打开万兴PDF,进入PDF创建面板之后,利用键盘上的ctrl键连续单击,选择你所想要转化的Word文档
步骤二:然后单击打开,马上就可以看见由Word批量转化的PDF文档了
当然了,如果您把Word转化为PDF之后还想对PDF进行编辑等一系列操作,那么,万兴PDF您值得拥有。
它可以针对 PDF文档的全功能编辑工具,它能够进行 PDF 编辑、PDF 格式转换、文档中图片 OCR 文字识别、批注、签名、密码保护、数字签名等功能,并且可以实现非常受欢迎的 PDF 转 Word功能。拥有 WindoWs、macOS、iOS、Android 四大平台客户端。关键是容易上手,便于操作。
-
python批量将word转化为pdf(python办公)
2021-12-04 17:09:48直接将 下列文件地址 修改为目的文件夹即可 from win32com import client as wc import glob import re word = wc.Dispatch('Word.Application') #glob批量获取指定目录下指定的所有文件的路径,返回路径列表。 ...安装 win32com 包后
直接将 下列文件地址 修改为目的文件夹即可from win32com import client as wc import glob import re word = wc.Dispatch('Word.Application') #glob批量获取指定目录下指定的所有文件的路径,返回路径列表。 files = glob.glob("D:\\毛概\\*.doc") print(files) for file_path in files: names = re.findall(r'毛概\\(.*?).doc',file_path)[0] print(names) doc = word.Documents.Open(file_path) doc.SaveAs('D:\\毛概\\pdf\\%s.pdf'%names,17) doc.Close() word.Quit() print("It has been finished")
-
Java实现将word转化为PDF
2020-06-17 14:49:12转化时需要的jar包和pom: jar包地址如下:链接:https://pan.baidu.com/s/1w1aMvTYqMKRhrRtum88HbQ提取码:y1qg <!-- https://mvnrepository.com/artifact/com.aspose/aspose-words --> <dependency>... -
Python 批量将Word转化为PDF
2019-02-25 22:13:19这不,就遇到一个需要批量将word转化为PDF的任务,在网上查找了一些资料,最终以十来行代码解决了问题。 此处只是使用python解决了该问题,并没有去深入python控制word的操作。 运行环境为:windos、python3... -
如何将word转化为pdf(Java版)
2018-12-14 22:30:24前言:最近做一个项目,需要一个word转化为pdf的功能,于是自己通过在网上找各种资料。测试了好几个方法,最后决定使用jacob(Java COM Bridge)操作office的方式,主要的原因是这边word文件涉及到的内容和样式比较... -
使用jacob将word转化为pdf
2017-12-29 15:21:084.将下载好的jacob-1.18中的jacob-1.18-x64.dll文件复制到jdk的bin目录下,以及jre的bin目录下 5、方法调用完美实现 public static void main(String[] args) { Test d = new Test(); d.... -
怎样将word转化为pdf
2011-05-29 10:44:52只是一个小技术,希望大家可以看看。希望有帮助。 -
推荐一个高效率的将Word转化为Pdf的通用接口,开发者免费可用
2019-10-13 22:44:41同时对于很多商用的项目来说,可能每天需要大量的进行Word到Pdf的转化,今天就给大家提供一个高速接口,只需要将Word文件通过HTTP上传,就可以快速转化Pdf,下载即可。 接口对接文档如下 产品名称: Word2Pdf 接口... -
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2020-10-22 09:17:38主要介绍了LINUX下PHP程序实现WORD文件转化为PDF文件的方法,涉及php针对Word文档与pdf格式文件的相关操作技巧,需要的朋友可以参考下 -
Word转化为PDF插件
2018-07-20 15:37:55可以将word转化为PDF文档,高效清晰 可以将word转化为PDF文档,高效清晰 -
关于用java将word转化为pdf(网上流行的方案,比较)
2019-12-28 17:55:57(下面的使用方法百度一搜一堆,我就不再重复造轮子了...缺点:免费版只能转化最多3页的word文档 Spire.Doc for Java插件使用的时候我的运行报了异常,关于jvm的,后来发现是内存问题,在idea启动添加参数完美解决... -
java无水印将word文件转化为pdf文件
2020-04-01 23:54:29java无水印将word文件转化为pdf文件 -
使用aspose-word将word转化为pdf,循环添加表格、数据、图片
2019-01-08 10:46:561.因为我是springboot项目,所以新建如下目录,并将aspose-word jar包放在目录下 2.在pom文件中添加显示依赖(添加显示依赖的方法有多种,可自行选择) <dependency> <groupId>... -
将pdf转化为word,修改合并pdf
2019-03-22 17:53:51将pdf转化为word,修改pdf,创建合并pdf . -
VS2015下采用office的API将Word文档转化为PDF文档的实现源码
2020-01-09 18:28:551.电脑已经安装了office软件; 2.利用MSWORD.OLB生成相应的头文件; 3.利用API将word转换为pdf。 -
python批量将word、ppt转化为pdf(极简版)
2020-08-24 17:42:07日将将PPT和word批量转成pdf的需求还是比较普遍的。下列两段代码中,word转pdf的有时候会出现莫名奇妙的报错,跑了两次由于顺利将工作完成了,也没继续研究原因,有需要的使用时得注意下。 -
java代码实现word转换为pdf
2018-10-30 15:18:39可以实现doc和docx文档转成pdf,不含水印,转换后的pdf文件比较清晰,感兴趣的朋友可以尝试一下 -
word转化为PDF
2010-06-30 22:42:02这是本人收集到的word 转化为pdf 工具和pdf转化为word文档工具挺好用的,而且是免费的生成pdf后不在页面上显示试用版本的字样,非常不错的欢迎大家使用。 -
批量转化word为pdf
2022-05-07 18:17:54转化批量word文档为pdf文档,非常好用,不喜勿喷 -
如何将word转化为pdf
2018-06-23 14:13:30http://blog.csdn.net/m0_37568521/article/details/78545887 -
使用jacob将word转化为pdf时出现的问题
2020-07-21 17:15:31同一个项目包,在不同机子上出现不同的情况,为什么一台机子上能正常转换,另一台机子上转换的时候路径会多个斜杆? 异常的机子 [img=https://img-bbs.csdn.net/upload/202007/21/1595322588_795308.png][/img] ... -
将word转化为swf 如同百度文库般阅读实现思路及代码
2020-10-27 00:11:18一般流程想将word转化为pdf格式,再将pdf格式转化为swf格式。在网页上显示其实都是swf格式内容,具体实现如下,有此需求的朋友可以参考下,希望对大家有所帮助 -
怎么实现批量把Word转化为PDF
2021-01-31 15:17:42怎么实现批量把Word转化为PDF 1、首先在市面上有很多现成的小工具可以转化不过它们大多数都有限制,或者免费次数,超过这个次数之后就要收钱了,很是麻烦 比如: 谷歌插件著名的这款转PDF的 好用是好用,但是... -
java将Word转换成PDF三种方法
2022-06-16 15:55:19POI、jacob、aspose、aspose-words、word转成pdf、java poi word转pdf -
如何用Python将word文档转换为pdf进行文件输出
2021-11-05 14:34:25def createPdf(wordpath,pdfpath): '''word转pdf :param wordpath:word文件路径 ... #打开程序应用 如果是wps则把word替换为wps word =gencache.EnsureDispatch('Word.Application') #固定写法 打开.