ASP.NET网页编程之OpenOffice.org开源办公套件将各种文档...
无论谁倒了对双方阵营的粉丝们也是有害无益。</p>比来在项目中碰到一个需求,是要将各种文档转换为PDF。这应当是个很罕见的事情,并且我也只必要撑持MSWord,Excel,PowerPoint等罕见的文档格局就好了。因而有伴侣就倡议了,可使用MSOffice转嘛。固然也能够利用其他办法,比方装一些PDF打印机,把文档打印成pdf文件。不外这些做法在“受权”方面仿佛都有些成绩。固然,我也找了一些贸易办理计划(如Aspose)保底,咋看之下它的受权体例也其实不算贵。不外如今看来,OpenOffice.org已可以满意我的需求了。假如您有更好的做法也请告知我。OpenOffice.org是个开源的办公套件,供应了与MSWord,Excel,PowerPoint等对应的多个软件,在良多时分倒也充足利用。更主要的是,它撑持包含MSOffice2007在内的多种格局,而且可以将其导出为PDF文件,再加上它的受权体例是LGPL,在临盆情况里利用天然也不会有甚么分明的限定了。别的,OOo自己也有相称多的开辟文档,我对完成这个事情仍是很有信念的——但我没想到的是,这历程还真不如设想中那末顺遂。
编译经由过程也不简单
起首,我安装了OpenOffice.org主程序和SDK。SDK随带一些示例代码,个中DocumentHandling部分恰好包括一个我必要的DocumentConverter功效。因而我翻开Eclipse,倒进这个文件,很明显会呈现有数毛病提醒:还没有引进符合的类库嘛。那末我该援用哪些jar包呢?依据其他一些搜刮到的琐屑的材料提醒,我该引进的是一些放在~Basisprogramclasses下的几个jar包,好比unoil.jar、juh.jar……等等,这个包在甚么中央?现实上,我在这么目次下惟独只找到unoil.jar这个独苗。莫名之余,我一股脑的将目次中的30多个jar包全体引进,但是毛病仍旧。
我就蒙了,在搜刮引擎里不休地用juh.jar相干的关头字举行查询,但愿能够找到一些提醒,一无所得。然后我动用了体系中的文件搜刮,在~/Basis目次中查找*.jar,仍是没有发明juh.jar的踪迹。因而我很懊丧,怎样第一步也这么不顺遂。直到约莫过了一个小时后,我才偶然间在~UREjava目次下发明了那几个关头的jar包。引进后我浩叹一口吻:示例代码终究编译经由过程了。归纳综合来讲,假如必要让DocumentConverter.java编译经由过程,必要引进一下三个jar包:
~UREjavajuh.jar
~UREjavajurt.jar
~Basisprogramclassesunoil.jar
真是仇恨文档和实践征象不符的情形,损耗工夫不说,心境也变糟了。
收拾示例代码
不能不说,DocumentConverter.java真不克不及算是段优异的示例代码。起首,它并没有很好地起到树模的感化。我幻想中的示例代码应当可以明晰地申明事情的体例和步骤,而不会增加太多分外的内容。这段示例代码的效果是“转化指定目次中的一切文件”,还用到了递回。再加上它没有import任何范例,每一个范例在利用时都拖着长长的“com.sun.star”,这让底本就非常冗余的Java代码变得更加难以了解。更别说正文与代码自己的抵触,另有过剩的范例强迫转换等成绩。为此,我依据文档申明,从头改写了一下示例代码,将全部历程拆分为多个步骤。
起首,我们翻开并毗连一个OOo程序,这必要创立一个XComponentContext工具:
privatestaticXComponentContextcreateContext()throwsException{
//gettheremoteofficecomponentcontext
returnBootstrap.bootstrap();
}
然后创立一个XComponentLoader工具:
privatestaticXComponentLoadercreateLoader(XComponentContextcontext)throwsException{
//gettheremoteofficeservicemanager
XMultiComponentFactorymcf=context.getServiceManager();
Objectdesktop=mcf.createInstanceWithContext("com.sun.star.frame.Desktop",context);
returnUnoRuntime.queryInterface(XComponentLoader.class,desktop);
}
<p>另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。 逐步缩小出错代码段的范围,最终确定错误代码的位置。 Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。 在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的 主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。 这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
页:
[1]