OpenOffice.org开源办公套件将各类文档转为PDF

最近在项目中遇到一个需求,是要将各类文档转换为PDF。这应该是个很常见的工作,而且我也只需要支持MS Word,Excel,PowerPoint等常见的文档格式就行了。于是有朋友就建议了,可以使用MS Office转嘛。当然也可以使用其他方法,例如装一些PDF打印机,把文档打印成pdf文件。不过这些做法在“授权”方面似乎都有些问题。当然,我也找了一些商业解决方案(如Aspose)保底,咋看之下它的授权方式也并不算贵。不过现在看来,OpenOffice.org已经能够满足我的需求了。如果您有更好的做法也请告诉我。

OpenOffice.org是个开源的办公套件,提供了与MS Word,Excel,PowerPoint等对应的多个软件,在很多时候倒也足够使用。更重要的是,它支持包括MS Office 2007在内的多种格式,并且能够将其导出为PDF文件,再加上它的授权方式是LGPL,在生产环境里使用自然也不会有什么明显的限制了。此外,OOo本身也有相当多的开发文档,我对完成这个工作还是很有信心的——但我没想到的是,这过程还真不如想象中那么顺利。

编译通过也不容易

首先,我安装了OpenOffice.org主程序以及SDK。SDK随带一些示例代码,其中DocumentHandling部分正好包含一个我需要的DocumentConverter功能。于是我打开Eclipse,倒入这个文件,很显然会出现无数错误提示:还没有引入合适的类库嘛。那么我该引用哪些jar包呢?根据其他一些搜索到的零碎的资料提示,我该引入的是一些放在~\Basis\program\classes下的几个jar包,比如unoil.jar、juh.jar……等等,这个包在什么地方?事实上,我在这么目录下唯独只找到unoil.jar这个独苗。莫名之余,我一股脑的将目录中的30多个jar包全部引入,可是错误依旧。

我就蒙了,在搜索引擎里不断地用juh.jar相关的关键字进行查询,希望可以找到一些提示,一无所获。然后我动用了系统中的文件搜索,在~/Basis目录中查找*.jar,还是没有发现juh.jar的踪影。于是我很沮丧,怎么第一步也这么不顺利。直到大约过了一个小时后,我才无意间在~\URE\java目录下发现了那几个关键的jar包。引入后我长吁一口气:示例代码终于编译通过了。概括来说,如果需要让DocumentConverter.java编译通过,需要引入一下三个jar包:

~\URE\java\juh.jar

~\URE\java\jurt.jar

~\Basis\program\classes\unoil.jar

真是痛恨文档和实际现象不符的情况,消耗时间不说,心情也变糟糕了。

整理示例代码

不得不说,DocumentConverter.java真不能算是段优秀的示例代码。首先,它并没有很好地起到示范的作用。我理想中的示例代码应该能够清晰地说明工作的方式和步骤,而不会添加太多额外的内容。这段示例代码的效果是“转化指定目录中的所有文件”,还用到了递归。再加上它没有import任何类型,每个类型在使用时都拖着长长的“com.sun.star”,这让原本就十分冗余的Java代码变得更为难以理解。更别说注释与代码本身的冲突,还有多余的类型强制转换等问题。为此,我根据文档说明,重新改写了一下示例代码,将整个过程拆分为多个步骤。

首先,我们打开并连接一个OOo程序,这需要创建一个XComponentContext对象:

private static XComponentContext createContext() throws Exception {
    // get the remote office component context
    return Bootstrap.bootstrap();
}

然后创建一个XComponentLoader对象:

private static XComponentLoader createLoader(XComponentContext context) throws Exception {
    // get the remote office service manager
    XMultiComponentFactory mcf = context.getServiceManager();
    Object desktop = mcf.createInstanceWithContext("com.sun.star.frame.Desktop", context);
    return UnoRuntime.queryInterface(XComponentLoader.class, desktop);
}

时间: 2024-09-16 09:05:55

OpenOffice.org开源办公套件将各类文档转为PDF的相关文章

C#如何将txt文档转为pdf

问题描述 C#如何将txt文档转为pdf 在前台上传一片txt文档,后台怎样将它转为一片pdf文档,然后显示到前台页面 解决方案 http://www.cnblogs.com/haocool/archive/2013/03/16/2962547.html 解决方案二: C#创建PDF文档

Java实现web在线预览office文档与pdf文档实例

1.首先我们需要找到可以把office转换成pdf的方法,查找资料发现有openoffice这一软件可以把office转换成pdf,这一软件先下载下来,然后记住自己安装的在那个位置.然后在cmd环境下进入安装目录的program目录,输入打开openoffice的命令:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard 输入完成之后在任务管理器可以看见soffice.b

word2pdf-用JAVA如何将MS Word文档转换为PDF文档

问题描述 用JAVA如何将MS Word文档转换为PDF文档 我现在需要在项目中实现将word转换为pdf文档的功能. 之前在网上查过一些资料,主要就是通过调用openoffice服务的方式实现, 而我需要在不借助系统软件或服务的情况下,就能将word文档转换为pdf格式, 我希望这个转换功能能作为一个独立的组件,在任何系统环境下都能使用. 网上推荐使用 POI + iText 的方法,这个方法也许可行,但是要达到完美效果可能工作量很大. 在这里请教大家,希望有经验的人能给我一点建议!

word文档-仿百度文库 如何才能把WORD文档、PPT文档和PDF文档转成HTML?

问题描述 仿百度文库 如何才能把WORD文档.PPT文档和PDF文档转成HTML? 开发语言:php 具体项目是做一个文档在线阅读 和百度文库一样 参考了下网上 大部分做法是用openoffice+swftools+flexPaper 这样转出来的是flash 如何才能把WORD文档.PPT文档和PDF文档转成HTML? 解决方案 可以尝试一下用POI.

总结了几种常用的Word文档转PDF方法

在日常办公中,我们接触的大多都是要将PDF文件转换为Word文件,那么怎么将Word文档转换为PDF文件呢?电脑爱好者就针对已安装 Microsoft Office 环境的情况,介绍一些相对简便的Word转PDF思路,当然如果你正在使用 Adobe Acrobat 的话,以下的方法就可以无视了. 1.安装有Microsoft Office 2003环境 Office 2003需要 PDF 虚拟打印机的支持,安装虚拟打印机后,选择文件->打印,在打印机列表中选择 PDF 虚拟打印机,即可输出为 P

用Word 2010轻松将word文档转换为PDF文档

用Word2010可以轻松的将Word文档转换为PDF格式文档.方法如下: 1.运行Word2010,打开所要转换的文档. 2.点击文件--共享--文件类型,选择"创建文档,进行转换即可.         注:更多请关注电脑教程栏目,三联电脑办公群:189034526欢迎你的加入

Word文档打印PDF文件方法

  很多朋友可能对PDF还是束手无策,不知道怎么使用.其实,因为Word文档的使用几率比PDF文档还要高些,所以大家对Word比较熟悉.想要将PDF的文档放在Word文档中,并将其打印,这个方法可行吗?小编肯定地告诉大家可以的.下面就来看看Word文档打印PDF文档的方法. 1.双击Acrobat9pro.exe文件,安装Acrobat9pro软件,进入下一步. Acrobat9pro 2.打开控制面板->硬件和声音->设备和打印机,出现Adobe PDF打印机,进入下一步. 打印机 3.选择

将word文档转换为pdf文档方法图解

  pdf文档相对word文档有很多好处,比如跨平台,阅读效果好等.但如何将word文档转换为pdf文档呢?方法有很多,如果你经常需要将word文档转换为pdf,那么可以看看哦~ 工具/原料 AdobeAcrobat9 Microsoft Office Word 方法/步骤 1.首先安装AdobeAcrobat9这款软件,该软件带有word等程序的转换插件. 安装过程中会提示你关闭word文档,否则需要重启后安装. 2.AdobeAcrobat9安装完成后,打开一个word文档.可以看到工具栏多

如何将word文档转换PDF?

  方法1 准备你需要转换的word文档,然后点击图中红色箭头指示的图标 弹出保存对话框,选择保存路径,点击保存 等待一下,就完成转换过程 方法/步骤2 准备你需要转换的word文档:然后点击:文件,选择打印 在弹出的对话框中,选择打印机Adobe PDF, 点击确定 选择保存路径,点击保存 转换完成 方法/步骤3 如果是高版本office的话,如office2010,可以直接将文档另存为PDF格式的