-
2016-06-15 19:28:15
先安装libreoffice,然后使用命令
soffice --headless --invisible --convert-to pdf /tmp/abc.docx --outdir /tmp/
转换成PDF,几乎所有人都遇到
root@panda-dev:~/bin $ soffice --headless --convert-to txt:text blah.doc /usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display: Set DISPLAY environment variable, use -display option or check permissions of your X-Server (See "man X" resp. "man xhost" for details)
类似的问题,网上的帮助都是说要求启用:
/usr/bin/soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &
然后 export DISPLAY=:0.0,就可以解决问题,但试了N次也完全不行。
其实只需要 yum install libreoffice-headless,即可。
更多相关内容 -
doc文件转换成pdf
2019-01-13 10:32:39可以在Word软件编辑后,直接打印,选择PDF,即可将生成PDF文档,方便快捷 -
Python实现将doc转化pdf格式文档的方法
2020-12-25 15:41:30本文实例讲述了Python实现将doc转化pdf格式文档的方法。分享给大家供大家参考,具体如下: #-*- coding:utf-8 -*- # doc2pdf.py: python script to convert doc to pdf with bookmarks! # Requires Office 2007 SP2... -
java实现doc、xls等格式转换pdf,实现在线浏览
2020-01-03 11:17:40使用poi、itextpdf实现doc、xls、xlsx、txt、图片、txt等等格式转换pdf,实现在线浏览功能 -
java 将doc,ppt,xls,txt,img类型转换成PDF文件
2018-01-19 11:57:13这是用java写的代码,把doc,ppt,xls,txt等一些文件转换成pdf格式 -
DOC转化成PDF
2012-01-12 23:01:32DOC转化成PDF,方便制作PDF的小软件,只需要把内容录到WORD,就可以转化PDF -
doc,docx,.xls,ppt,pptx,txt转换成pdf
2021-01-05 14:29:23doc,docx,.xls,ppt,pptx,txt转换成pdf -
PDF转换成DOC\XLS
2013-03-13 17:05:59PDF转换成WORD、EXCEL(完美输出表格) -
python写的doc转换成pdf文件代码
2013-01-12 23:53:11python写的doc转换成pdf文件代码,很实用的。 -
PDF文件转换成DOC文档.rar
2015-11-10 10:09:31PDF文件转换成DOC文档工具,转换出错率低。非常简单好用! -
Word转换成PDF转换器 v3.0.exe
2019-07-14 00:21:03它支持Word 2010 (Docx转换成PDF), Word 2007 (Docx转换成PDF), Word 2003 (Doc转换成PDF), Word 2000 (Doc转换成PDF)和Word 97(Doc转换成PDF)的文件格式到PDF,它还包括的文件格式如, RTF,文本文件和图像格式PDF... -
java将doc文件转换为pdf文件的三种方法
2021-02-28 07:31:47标签:http://feifei.im/archives/93——————————————————————...做个总结记录,下次要用直接查,省的忘了……方法1.poi读取doc + itext生成pdf (实现最方便,效果最差,跨平台)方法2.jodcon...标签:
http://feifei.im/archives/93
——————————————————————————————————————————————
项目要用到doc转pdf的功能,一番google之后总结出了三种方法(免费方案),于是一一试了一下,做个总结记录,下次要用直接查,省的忘了……
方法1.poi读取doc + itext生成pdf (实现最方便,效果最差,跨平台)
方法2.jodconverter + openOffice (一般格式实现效果还行,复杂格式容易有错位,跨平台)
方法3.jacob + msOfficeWord + SaveAsPDFandXPS (完美保持原doc格式,效率最慢,只能在windows环境下进行)
方法1:使用jdoctopdf来实现,这是一个封装好的包,可以把doc转换成pdf,html,xml等格式,调用很方便
地址:http://www.maxstocker.com/jdoctopdf/downloads.php
需要自己导入poi包与itext包,需要注意的是itext要导入itext-2.1.5版本,新版本由于包名不同,会出错
也可以自己根据网上的其他教程根据需要自己写方法来实现。
用jdoctopdf的实现方法如下:
public void doc2pdf(String docFileName) throws Exception{
String path = this.getSession().getServletContext().getRealPath("/")+"attachment/";
Parser p = new DocParser();// create a new parser instance
FileInputStream fis = new FileInputStream(path+"/doc/"+ docFileName + ".doc");// creating InputStream for use with parser
DocumentElement mydoc = p.parse(fis,true,false);// parse document from input stream
DocWriter w = new PDFWriter();// create PDF writer
w.writeDocument(mydoc,new FileOutputStream(path+"/pdf/"+docFileName + ".pdf"));// write document as pdf using writer
w = new XHTMLWriter();
w.writeDocument(mydoc,new FileOutputStream(path+"/pdf/"+docFileName + ".html"));// write document as xhtml
}
public String materialUpload(){
try {
doc2pdf("ttt");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
}
方法1转化后pdf截图:(itext转中文需要额外配置,所以。。。一片空白,格式也错位了)
方法2:使用jodconverter来调用openOffice的服务来转换,openOffice有个各个平台的版本,所以这种方法跟方法1一样都是跨平台的。
jodconverter的下载地址:http://www.artofsolving.com/opensource/jodconverter
首先要安装openOffice,下载地址:http://www.openoffice.org/download/index.html
安装完后要启动openOffice的服务,具体启动方法请自行google,
mac下的启动方法为终端输入
/Applications/OpenOffice.org.app/Contents/MacOS/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless
准备工作完成后在项目里导入下载下来的包,然后加个方法就OK:
public void createPdf(String docFileName) throws IOException{
String path = this.getSession().getServletContext().getRealPath("/")+"attachment/";
File inputFile = new File(path+"/doc/"+ docFileName + ".doc");
File outputFile = new File(path+"/pdf/"+docFileName + ".pdf");
// connect to an OpenOffice.org instance running on port 8100
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
connection.connect();
// convert
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(inputFile, outputFile);
// close the connection
connection.disconnect();
}
方法2的截图(格式基本一致,有错位)
方法3:效果最好的一种方法,但是需要window环境,而且速度是最慢的需要安装msofficeWord以及SaveAsPDFandXPS.exe(word的一个插件,用来把word转化为pdf)
Office版本是2007,因为SaveAsPDFandXPS是微软为office2007及以上版本开发的插件
SaveAsPDFandXPS下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=7
jacob 包下载地址:http://sourceforge.net/projects/jacob-project/
我下的是jacob-1.17-M2.zip
下载下来的jacob里的jar包导入到项目里,
jacob的dll文件放到到你的jdk/jre/bin下面(不放会报错:java.lang.NoClassDefFoundError: Could not initialize class com.jacob.com.Dispatch)
网上还有一种是把dll放在放在以下代码输出的路径里的任意一个路径目录
System.getProperty("java.library.path");
这个我没试过,应该也是可以的
然后添加方法:
static final int wdFormatPDF = 17;// PDF 格式
public void wordToPDF(String docFileName){
System.out.println("启动Word...");
long start = System.currentTimeMillis();
ActiveXComponent app = null;
Dispatch doc = null;
try {
app = new ActiveXComponent("Word.Application");
app.setProperty("Visible", new Variant(false));
Dispatch docs = app.getProperty("Documents").toDispatch();
String path = this.getSession().getServletContext().getRealPath("/")+"attachment/";
String sfileName = path+"/doc/"+ docFileName + ".doc";
String toFileName = path+"/pdf/"+ docFileName + ".pdf";
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();
}
需要注意的是,如果没有安装SaveAsPDFandXPS.exe的话会提示
========Error:文档转换失败:Invoke of: SaveAs
Source: Microsoft Word
Description:
方法3pdf最终转换效果(格式完全一致):
标签:
-
Python实现将DOC文档转换为PDF的方法
2020-09-21 21:08:06主要介绍了Python实现将DOC文档转换为PDF的方法,涉及Python调用系统win32com组件实现文件格式转换的相关技巧,需要的朋友可以参考下 -
react在线浏览doc_如何把doc文件转换成PDF格式?教你一招秒实现
2020-11-10 18:22:13但有的同学的Word版本不能直接将doc文件转换成PDF格式,比如Word2007。那么doc转PDF怎么转呢?接下来分享一个关于Word2007怎么转换成PDF的小技巧,千万别眨眼! 工具/材料:PDF快转、doc文件方法/步骤:1.如果自带的...有时候老师让交的实验报告文件格式必须为PDF格式,因为PDF与不同的操作系统和软件版本具有很好的兼容性,所以大多数人都喜欢将Word转换成PDF。但有的同学的Word版本不能直接将doc文件转换成PDF格式,比如Word2007。那么doc转PDF怎么转呢?接下来分享一个关于Word2007怎么转换成PDF的小技巧,千万别眨眼!
工具/材料:PDF快转、doc文件
方法/步骤:
1.如果自带的Word无法直接另存为PDF格式,可以提前准备好一份doc文件。
2.然后打开电脑自带的浏览器,输入“PDFKZ”搜索即可。
3.点击如图所示的第二个选项进入PDF在线转换页面。
4.然后点击“Word转PDF”的功能选项将doc转PDF。
5.点击此按钮,将需要转换的doc文件添加进来。
6.添加文件完毕后,页面会自动将doc转PDF。转换完成后,点击下载按钮即可将PDF文件保存到自己的电脑中。
如何把doc文件转换成PDF格式?只需按照上述方法就可以将doc转PDF。这非常简单,即使你是一个新手也可以快速掌握它。如果您想转换为其他格式,也可以选择其他转换功能进行转换。
-
将doc、docx、txt转换为pdf
2019-03-26 01:27:52NULL 博文链接:https://andyy.iteye.com/blog/1149244 -
PDF转换(DOC、DOCX、PPT 、PPTX、ODT)
2017-09-26 10:35:15可将doc、docx、ppt、pptx、odt格式文件转换为pdf。 用法: java -jar doc-converter.jar -type "type" -input "path" -output "path" -verbose java -jar doc-converter.jar -input test.doc java -jar doc-... -
java word(doc,docx,rtf)转为pdf
2019-03-12 15:24:46java word(doc,docx,rtf)转为pdf 包含源码,jar,可以直接运行 -
如何将doc后缀文件转换成pdf,去水印
2022-02-14 13:28:10上一篇有用到freeMaker替换模板生成doc后缀的文件,这一篇即将doc文件转换为pdf 参考这个博客方法 资源提取码:7ga6 引入依赖 (maven仓库是没有的,需要在项目中引用) <dependency> <...上一篇有用到freeMaker替换模板生成doc后缀的文件,这一篇即将doc文件转换为pdf
引入依赖 (maven仓库是没有的,需要在项目中引用)
<dependency> <groupId>com.aspose</groupId> <artifactId>aspose-words</artifactId> <version>15.12.0</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resources/lib/aspose-words-15.12.0-jdk16.jar</systemPath> </dependency>
resource下添加license.xml文件
<License> <Data> <Products> <Product>Aspose.Total for Java</Product> <Product>Aspose.Words for Java</Product> </Products> <EditionType>Enterprise</EditionType> <SubscriptionExpiry>20991231</SubscriptionExpiry> <LicenseExpiry>20991231</LicenseExpiry> <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber> </Data> <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature> </License>
核心代码 :
注意:linux环境下可能会出现中文乱码的情况,我们在转换之前需要linux环境上传字体包,
并在代码上贴上以下代码
//此处处理乱码和小方块,/tmp/officeTemplate是linux环境下.ttc字体包的位置
FontSettings.setFontsFolder("/tmp/officeTemplate" + File.separator, true);import com.aspose.words.Document; import com.aspose.words.SaveFormat; import lombok.SneakyThrows; import org.springframework.core.io.ClassPathResource; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; public class Doc2Pdf { @SneakyThrows public static void main(String[] args) { doc2pdf("D:\\土建小程序用图\\测试doc转pdf\\平面图测试.doc","D:\\土建小程序用图\\测试doc转pdf\\我的测试.pdf"); //第一个参数是要转换的文件,第二个参数是转换后所得的文件 //注意第二参数的文件类型要与下面代码 doc.save(os, SaveFormat.PDF) 的类型保持一致 } private static boolean license = false; public static String doc2pdf(String inPath, String outPath) throws Exception { FileOutputStream os = null; try { //凭证 不然切换后有水印 InputStream is = new ClassPathResource("/ceFile/license.xml").getInputStream(); com.aspose.words.License aposeLic = new com.aspose.words.License(); aposeLic.setLicense(is); license = true; if (!license) { System.out.println("License验证不通过..."); return null; } //生成一个空的PDF文件 File file = new File(outPath); os = new FileOutputStream(file); //此处处理乱码和小方块,/tmp/officeTemplate是linux环境下.ttc字体包的位置 FontSettings.setFontsFolder("/tmp/officeTemplate" + File.separator, true); //要转换的word文件 Document doc = new Document(inPath); doc.save(os, SaveFormat.PDF); } catch (Exception e) { e.printStackTrace(); } finally { if (os != null) { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } } return null; } }
效果如下(无水印):
-
如何手动把PDF文档转换成word.doc
2021-09-27 09:00:27如何手动把PDF文档转换成word.doc -
ppt怎样转换成pdf.doc
2021-09-14 06:17:32ppt怎样转换成pdf.doc -
word转换成pdf软件 万能word转换成pdf转换器 v6.5 免费版
2020-10-17 19:22:27word转换成pdf转换器是一款功能强大好用的word转pdf软件工具,界面简单,功能稳定,支持批量转换,操作起来非常方便,好支持将Microsoft Word (.Doc/.Docx)文档转换为pdf文档,word转换成pdf转 -
doc转换PDF
2013-06-07 14:51:56后台自动搜索某文件夹下的doc文件,并转化成PDF,可设置工作时间 -
java word转换成pdf
2016-09-18 16:17:06word转pdf文件 -
PDF转化成DOC的教程.doc
2021-09-16 11:35:29PDF转化成DOC的教程.doc -
Spire.Pdf 把PDF转成图片
2020-08-26 11:06:54Spire.Pdf.dll,可以把PDF转成图片,实测.net core可以,压缩包里包含Spire.Pdf.dll和Spire.License.dll -
python实现pdf转换成word/txt纯文本文件
2021-01-20 05:16:02本文实例为大家分享了python实现pdf转word/txt,供大家参考,具体内容如下 依赖包:pdfminer3k 可以通过pip安装;也可以到官网下载,解压,进入文件夹,输入命令setup.py install安装软件。 源代码: #!/usr/bin/...