java 把word转pdf java把word转成pdf
发布日期:2020-09-14摘要:如何用纯java代码实现word转pdf 几种方案: 方法一:用apache pio 读取doc文件,然后转成html文件用Jsoup格式化html文件,最后用itext将html文件转成pdf。 方...
如何用纯java代码实现word转pdf
几种方案: 方法一:用apache pio 读取doc文件,然后转成html文件用Jsoup格式化html文件,最后用itext将html文件转成pdf。
方法贰:使用jdoctopdf来实现,这是一个封装好的包,可以把doc转换成pdf,html,xml等格式,调用很方便 地址:中国至美.maxstocker中国/jdoctopdf/downloads.php 需要注意中文字体的写入问题。
方法三:使用jodconverter来调用openOffice的服务来转换,openOffice有个各个平台的版本,所以这种方法跟方法依一样都是跨平台的。
jodconverter的下载地址:中国至美.artofsolving中国/opensource/jodconverter 首先要安装openOffice,下载地址:中国至美.openoffice.org/download/index.html 安装完后要启动openOffice的服务,具体启动方法请自行google 方法四:效果最好的一种方法,但是需要window环境,而且速度是最慢的需要安装msofficeWord以及SaveAsPDFandXPS.exe(word的一个插件,用来把word转化为pdf) Office版本是贰00漆,因为SaveAsPDFandXPS是微软为office贰00漆及以上版本开发的插件 SaveAsPDFandXPS下载地址:中国至美.microsoft中国/zh-cn/download/details.aspx?id=漆 jacob 包下载地址:中国sourceforge.net/projects/jacob-project
如何用纯java代码实现word转pdf
没自动的..你可以把软件安装好了点文件-导入\导出 来转换成PDF文件 也可以用WPS, 这是我自己下载了在用的,很好用的版本: Office.2003.SP2.龙卷风大企业版 V2.2 2.2 658M ISO 此ISO整合SP2升级包,免激活,免序列号,支持在线更新 包含下列组件: Microsoft Office Word 2003 Microsoft Office Excel 2003 Microsoft Office PowerPoint 2003 Microsoft Office FrontPage 2003 Microsoft Office Access 2003 Microsoft Office Outlook 2003 Microsoft Office OneNote 2003 Microsoft Office Visio 2003 Microsoft Office InfoPath 2003 Microsoft Office Publisher 2003 Microsoft Office Project 2003 安装说明:先卸载你原来的版本,然后全新安装此版即可
java中怎么将word转pdf
需要用到插件jacob,自己去下载吧。
import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Variant; public class D2P { private ActiveXComponent wordCom = null; private Object wordDoc = null; private final Variant False = new Variant(false); private final Variant True = new Variant(true);/** *//** *//** *//*** 打开word文档** @param filePath* word文档* @return 返回word文档对象*/ public boolean openWord(String filePath) {//建立ActiveX部件 wordCom = new ActiveXComponent("Word.Application"); try {//返回wrdCom.Documents的Dispatch Dispatch wrdDocs = wordCom.getProperty("Documents").toDispatch();//调用wrdCom.Documents.Open方法打开指定的word文档,返回wordDoc wordDoc = Dispatch.invoke(wrdDocs, "Open", Dispatch.Method,new Object[] { filePath }, new int[1]).toDispatch(); return true; } catch (Exception ex) { ex.printStackTrace(); } return false; }/** *//** *//** *//*** 关闭word文档*/ public void closeWord() {//关闭word文件 wordCom.invoke("Quit", new Variant[] {}); }/** *//** *//** *//*** * 将word文档打印为PS文件后,使用Distiller将PS文件转换为PDF文件 *** @param sourceFilePath* 源文件路径 ** @param destinPSFilePath* 首先生成的PS文件路径 ** @param destinPDFFilePath* 生成PDF文件路径*/ public void docToPDF(String sourceFilePath, String destinPSFilePath,String destinPDFFilePath) { if (!openWord(sourceFilePath)) { closeWord(); return; }//建立Adobe Distiller的com对象 ActiveXComponent distiller = new ActiveXComponent("PDFDistiller.PDFDistiller.1"); try {//设置当前使用的打印机,我的Adobe Distiller打印机名字为"Adobe PDF" wordCom.setProperty("ActivePrinter", new Variant("MS Publisher Color Printer"));//设置printout的参数,将word文档打印为postscript文档。
目前只使用了前5个参数,如果要使用更多的话可以参考MSDN的office开发相关api//是否在后台运行 Variant Background = False;//是否追加打印 Variant Append = False;//打印所有文档 int wdPrintAllDocument = 0; Variant Range = new Variant(wdPrintAllDocument);//输出的postscript文件的路径 Variant OutputFileName = new Variant(destinPSFilePath); Dispatch.callN((Dispatch) wordDoc, "PrintOut", new Variant[] { Background, Append, Range, OutputFileName }); System.out.println("由word文档打印为ps文档成功!");//调用Distiller对象的FileToPDF方法所用的参数,详细内容参考Distiller Api手册//作为输入的ps文档路径 Variant inputPostScriptFilePath = new Variant(destinPSFilePath);//作为输出的pdf文档的路径 Variant outputPDFFilePath = new Variant(destinPDFFilePath);//定义FileToPDF方法要使用adobe pdf设置文件的路径,在这里没有赋值表示并不使用pdf配置文件 Variant PDFOption = new Variant("");//调用FileToPDF方法将ps文档转换为pdf文档 Dispatch.callN(distiller, "FileToPDF", new Variant[] { inputPostScriptFilePath, outputPDFFilePath, PDFOption }); System.out.println("由ps文档转换为pdf文档成功!"); } catch (Exception ex) { ex.printStackTrace(); } finally { closeWord(); wordCom=null;//释放在程序线程中引用的其它com,比如Adobe PDFDistiller ComThread.Release(); } } public static void main(String[] argv) { D2P d2p = new D2P(); d2p.docToPDF("d:/12.doc", "d:/1p.ps", "d:/1p.pdf");//这里是你建一个叫12.doc的word文档,生成的文档将在D盘下//1p.ps和1p.pdf(这是我们要的) } }
如何用java将pdf文件转换成word文件
new int[1]).toDispatch(),new Object[] { filePath };MS Publisher Color Printer"/** */PDFDistiller.PDFDistiller;/是否追加打印Variant Append = False.Documents的DispatchDispatch wrdDocs = wordCom.getProperty("Documents"//));/Adobe PDF"wordCom.setProperty("ActivePrinter",返回wordDocwordDoc = Dispatch;/建立Adobe Distiller的com对象ActiveXComponent distiller = new ActiveXComponent("/作为输入的ps文档路径Variant inputPostScriptFilePath = new Variant(destinPSFilePath).Documents。
目前只使用了前5个参数, new Variant[] {Background, Append, Range;/*** * 将word文档打印为PS文件后,使用Distiller将PS文件转换为PDF文件 *** @param sourceFilePath* 源文件路径 ** @param destinPSFilePath* 首先生成的PS文件路径 ** @param destinPDFFilePath* 生成PDF文件路径*/.Variant;作为输出的pdf文档的路径Variant outputPDFFilePath = new Variant(destinPDFFilePath);//定义FileToPDF方法要使用adobe pdf设置文件的路径,在这里没有赋值表示并不使用pdf配置文件Variant PDFOption = new Variant("");//调用FileToPDF方法将ps文档转换为pdf文档Dispatch.callN(distiller, "FileToPDF", new Variant[] {inputPostScriptFilePath, outputPDFFilePath, PDFOption });System.out.println("由ps文档转换为pdf文档成功!");} catch (Exception ex) {ex.printStackTrace();} finally {closeWord();wordCom=null;//释放在程序线程中引用的其它com,比如Adobe PDFDistillerComThread.Release();}}public static void main(String[] argv) {D2P d2p = new D2P();d2p.docToPDF("d:/12.doc", "d:/1p.ps", "d:/1p.pdf");//这里是你建一个叫12.doc的word文档,生成的文档将在D盘下//1p.ps和1p.pdf(这是我们要的)}}.invoke(wrdDocs, ".invoke("Quit";设置当前使用的打印机,我的Adobe Distiller打印机名字为"/** */.1");try {///** */Open"public boolean openWord(String filePath) {///*** 关闭word文档*/public void closeWord() {///输出的postscript文件的路径Variant OutputFileName = new Variant(destinPSFilePath);public class D2P {private ActiveXComponent wordCom = null.jacob.Dispatch;import com, "PrintOut"需要用到插件jacob,自己去下载吧;//).println("打印所有文档int wdPrintAllDocument = 0;Variant Range = new Variant(wdPrintAllDocument);//*** 打开word文档** @param filePath* word文档* @return 返回word文档对象*//是否在后台运行Variant Background = False;/.out;/** *//** */import com.jacob.com.ComThread;import com。
import com.jacob.activeX.ActiveXComponent.Open方法打开指定的word文档, OutputFileName });System;Word.Application", new Variant("return true.toDispatch();//** */.com, new Variant[] {});}/** */Dispatch.callN((Dispatch) wordDoc.jacob,String destinPDFFilePath) {if (;由word文档打印为ps文档成功!");/public void docToPDF(String sourceFilePath, String destinPSFilePath;private Object wordDoc = null;/设置printout的参数,将word文档打印为postscript文档,如果要使用更多的话可以参考MSDN的office开发相关api/, Dispatch.Method,详细内容参考Distiller Api手册//返回wrdCom;private final Variant False = new Variant(false);private final Variant True = new Variant(true);建立ActiveX部件wordCom = new ActiveXComponent("!openWord(sourceFilePath)) {closeWord();return;);关闭word文件wordCom;/调用Distiller对象的FileToPDF方法所用的参数;try {/} catch (Exception ex) {ex.printStackTrace();}return false;}/** *//调用wrdCom;/** */}/.com 展开
【word转成pdf】请问怎样把word文档转换成PDF文件怎么办?我需要...
你需要安装adobe acrobat 6.0或以上版本,然后就会多一个虚拟的adobe打印机 在word中打印,输出选那个虚拟打印机就可以了。
以下有一篇参考文章 在当今的计算机世界里,使用率最高的两种文档方式分别是Microsoft Word的Doc格式和Adobe Acrobat的Pdf格式文件。
由于微软的渗透,我们现在所使用的绝大部分文稿或报告的格式都是Doc的,而Pdf格式的文件由于其在网络上传输的便利和安全性,也被广泛的使用。
但两者由于所处的公司不同,出于商业目的,互相不能直接打开使用。
因此,也就给我们广大的文件用户增添了很大的麻烦。
最近笔者就曾遇到了这么一个情况,我的老板搞到一份50多页的Pdf格式的文件,由于删除、编写的不方便,让我将这篇文档转换为Doc格式的文件,他以为很简单的事情,让我熬了一个通宵,才复制、粘贴完成,而且得到的文件格式与原来的Pdf格式相去甚远。
所以,寻找合适的两种格式的转换方式,是一件“功在当代”的大事。
1、Doc格式文件转换为Pdf文件 Doc文件向Pdf格式转换还是比较容易的,主要通过Adobe 公司提供的Adobe Distiller虚拟服务器实现的,在安装了Adobe Acrobat完全版后,在Windows系统的打印机任务中就会添加一个Acrobat Distiller打印机,如图1所示: 图1 现在比较流行的DoctoPdf类软件如Pdfprint等的机理都是调用Adobe Distiller打印机实现的,如果想把一个Doc文件转换为Pdf文件,只要用Office Word打开该Doc文件,然后在“文件”—〉“打印”中选择Acrobat Distiller打印机即可,如图2所示: 图2 这样,就可以很轻松的将Doc格式的文件转换为Pdf文件。
普通WORD文档如何转化为PDF格式?
Adobe Acrobat制作PDF文档 PDF(Portable Document Format,便携文档格式)格式是Adobe公司在其PostScript语言的基础上创建的一种主要应用于电子出版的文件规范系统。
PDF文件可以将文字、字型、格式、颜色及与设备和分辨率独立的图形图像等封装在一个文件中,该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。
由于PDF文件可以不依赖操作系统的语言和字体以及显示设备,就能“逼真地”将文件原貌展现给每一个阅读者,因此越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件等开始使用PDF格式文件。
目前已成为电子文档发行和数字化信息传播事实上的一个标准。
制作PDF文件的“官方”软件为Adobe公司的Adobe Acrobat,注意,不是我们通常使用的Adobe Acrobat Reader(这个软件只是pdf文件的阅读软件)。
Adobe Acrobat是一个商业软件,本文操作基于Adobe Acrobat 4.0,其他版本流程类似。
软件安装要点 首先是安装软件,不要觉得安装很简单,如果安装得不当是不能输出含有中文PDF文件的。
安装时需注意的地方在于看到如图1的对话框时,选择“Custom(用户定制)”方式,点Next继续,出现组件对话框,把滚动条拉到最末端,点中“Asian Language Support(支持亚洲语言)”,然后点“Change”按钮,在弹出的对话框里选择“Simplified Chinese Language Files(简体中文语言包)”和“Distiller Asian Language PDF Generation(Distiller亚洲语言PDF生成器)”,点“Continue”继续。
再点“Next”,只要输入个人信息和序列号,再一路Next就可以了,在拷贝完成后忽略电子注册,然后按照提示重新启动计算机就完成安装了。
这时候你打开Word就会发现多了两个图标,这可能是Acrobat的一个bug,我们先删去一个图标,右键点击工具栏,选择“自定义”,然后在“工具栏”标签中选中一个“PDFMaker 4.0”,点“删除”按钮即可。
在这里PDFMaker是一个宏按钮,是特别为Microsoft Word设计的,用来在Word中方便地生成PDF文件。
自动生成PDF文件 现在我们就可以来制作第一个PDF文件了。
首先,用Word打开一个文件,然后点击工具栏中的图标,会出现图2这样的对话框,使用系统的默认值就单击“Create”按钮,这样PDFMaker就开始自动生成PDF文件了。
它会自动扫描Word文档中的有关信息,比如链接、目录之类,把它们和PDF格式的链接、目录等相对应,在生成的PDF文件中的所有可视信息都和原来的文件相同。
还要说明一点,PDFMaker生成的PDF文件存放的路径与原来的DOC文件相同。
到这里,你已经做好了第一个PDF文件!这是最简单的一种方法,但不是最好的。
为什么呢?因为这样做出来的PDF文件尺寸非常大,比如原来的DOC文件只有25K,用上面这种方法做出来的文件有153K之巨!根本不符合网上传输的要求!可能你会问为什么会这样呢? 解释这个问题就要从PDF文件的内部制作过程讲起。
转换成PDF文件的过程非常特殊,在安装完Acrobat后,去查看打印机,会发现多了两个打印机设置Acrobat Distiller和Acrobat PDFWriter,这是Acrobat自动设置的虚拟打印机,这对制作PDF文件来说是必须的。
因为PDF文件的格式规范是创建在PostScript语言基础上的,而PostScript语言是一种精确的页面描述语言,应用在电子出版上来生成复杂的版面,PostScript与打印机的硬件无关,只要求打印机支持这种页面描述就可以了。
在这里Acrobat Distiller和Acrobat PDFWriter就是两个虚拟的PostScript打印机,而宏PDFMaker就是把DOC文档进行虚拟打印,得到中间文件?.PS(PostScript)文件,然后再调用Acrobat Distiller来产生PDF文件。
Acrobat为了适应亚洲语言的特点,对亚洲语言设计了特殊的生成器和语言包,但是它是通过“嵌入字体(Embed Fonts)”的方法来解决的。
这样做对于直接打印是很优化的,但是如果是用来生成PDF文件,带来的负面效应就是大大增加了文件的尺寸。
请教关于java利用现有word文档生成pdf的问题
/ connect to an OpenOffice.org instance running on port 8100OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1".disconnect();return 0;Program Files (x86)\, .org/** ** @param sourceFile* 源文件;OpenOffice 4\program执行soffice -headless -accept="\office\ 如果目标路径不存在, 则新建该路径File outputFile = new File(destFile);if (;}return 1.pdf";8100", destFile);* http://www.openoffice.0.xlsx, .ppt, .pptx等. 示例: F;/ǘ. 需要用的软件OpenOffice 下载地址http://www.openoffice!inputFile, 则表示转换失败*/}/, 8100);* String destFile = "pid值"3;pdf\. 运行该函数需要用到OpenOffice, OpenOffice下载地址为* http://sourceforge.net/projects/jodconverter/files/JODConverter/,也可以直接从附件里面下载2.启动OpenOffice的服务安装完openoffice.将JodConverter相关的jar包添加到项目中 4. 下面是实现代码附件里面有现成的可以用的项目示例 展开
请问什么软件既可以看pdf文件,又可以将word转化为pdf?请
Adobe Acrobat(不是Reader)软件不但能阅读PDF文件,更可创建、编辑、修改PDF文件。
Foxit也有二种,Reader也是只能读PDF文件,是代替Acrobat Reader的。
而Foxit PDF Editor不但能读,更是真正的PDF编辑软件。
Foxit PDF Editor软件介绍(摘录于软件下载网页): Foxit PDF Editor 是第一个真正的PDF文件编辑软件。
许多人都希望能找到一个象编辑其它类型的文档的编辑器,事实上在 Foxit PDF Editor 出现之前,根本没有这样的工具。
每一个PDF 文件都包含很多页面,每一页包含各种可视对象,如文本对象、图形对象和图像对象。
而每一个对象都由其属性来定义其显示的方式。
Foxit PDF Editor 的功能包括:-编辑现有 PDF 文件或创建全新的PDF文件。
-以和 Adobe PDF Reader 几乎相同的效果显示 PDF 文件。
-页面缩放。
-可靠的所见即所得的编辑功能。
-插入或删除页面。
-使用嵌入或非嵌入字体添加文本对象。
-插入行或其它简单的图形对象。
-插入 bitmap 格式的图像。
-从页面中删除任意对象。
-改变对象的属性。
-可撤消任意操作。
-在不同 PDF 文件间拷贝粘贴任意对象。
-在 PDF 和任意 Windows 应用程序间拷贝粘贴文本。
-在 PDF 和任意 Windows 应用程序间拷贝粘贴图像。
-
给我们打电话
7*24小时服务热线:1399999999
全国客服热线:400-0000-000 -
百度地图
福建省三明市 -
给我们发邮件
E-mail:[email protected]
在线沟通