文件格式转换,相信很多涉及到office文档在线观看的都会需要,因为浏览器还不能完全支持直接打开office文档,所以很多情况下我们都需要将这些文档转换成flash能够播放的格式,但是另一个问题又来了,有些设备是不支持flash。而笔者经过三个版本的测试,终于有了比较好的一中解决方案。第一种很多人都知道,就是flashpaper但是不幸的是这款软件已经很老了,第二种就是利用office的com,但是缺点非常明显,需要很多代码才能完成很简单的事,并且还要经过很多配置,这其中的痛苦不言而喻。而第三种就是利用openoffice和jodconverter来完成。

一、需要的软件

因为jodconverter是java编写的所以笔者已经将其转换成了c#类库,避免了大家在这方面花费很多事件,而且也没有意义。

1.openoffice软件(http://www.openoffice.org/download/index.html) 直接默认安装即可

2.我封装好的类库(http://files.cnblogs.com/yaozhenfa/jodconverter.net.rar

二、启动openoffice

笔者的openoffice安装到了C:\Program Files (x86)\ 所以需要在DOS(开始-)运行-》CMD)输入如下的指令:

 C:\>"C:/Program Files (x86)/OpenOffice 4/program/soffice.exe" -accept=socket,hos
t=0.0.0.0,port=8080;urp;-headless

其中host表示监听的ip地址,port表示端口。笔者这里设置的是8080

三、测试

我们在vs中新建一个控制台项目,然后将笔者封装好的类库全部引用。

接着写入如下代码:

 using com.artofsolving.jodconverter;
using com.artofsolving.jodconverter.openoffice.connection;
using com.artofsolving.jodconverter.openoffice.converter;
using java.io;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
File inputFile = new File("c://test.doc");
File outputFile = new File("c://test.pdf");
OpenOfficeConnection connection = new SocketOpenOfficeConnection();
connection.connect();
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(inputFile, outputFile);
connection.disconnect();
System.Console.ReadKey();
}
}
}

这里要注意笔者测试的文件在c盘下并且命名为test.doc读者需要根据自己的情况修改,笔者这里将doc转换成了pdf,当然还可以转换成html等等。

相信不久的以后你会需要这个解决方案。

关于java转c#可以到该网站中下载(http://www.ikvm.net/

四、参考

感谢以下博文提供的技术:

http://blog.csdn.net/hnzhangshilong/article/details/7799664(c#调用java类的方法)

http://blog.csdn.net/oldjavaman/article/details/1742666(构建文件格式转换服务器)

http://www.cnblogs.com/shanyou/archive/2007/09/11/890139.html(将OpenOffice.org变成一个文件格式转换工具)

希望喜欢的读者可以支持,这样笔者才能去寻找更好的解决方案。有任何问题可以在评论中询问。

C#下搭建文件格式转换服务器的更多相关文章

  1. Centos下搭建DNS域名解析服务器

    Centos下搭建DNS域名解析服务器 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域 ...

  2. linux下搭建svn本地服务器

    在linux下搭建svn本地服务器可以很好的管理自己的代码,具体过程如下: # mkdir svn_local # cd svn_local  # svnadmin create led_diplay ...

  3. CentOS 7下搭建配置SVN服务器

    CentOS 7下搭建配置SVN服务器 1. 安装 CentOS通过yum安装subversion. $ sudo yum install subversion subversion安装在/bin目录 ...

  4. Windows下搭建本地SVN服务器【转】

    转自:http://www.linuxidc.com/Linux/2015-01/111563.htm 本文介绍Windows下搭建本地SVN服务器的方法,网上资料比较少也比较旧,大都介绍的是旧版本S ...

  5. Windows下搭建Nginx图片服务器

    在项目最开始,上传图片的时候,服务器先保存原图再使用ImageMagick生成上传图片缩略图,这种方法有很多缺点,例如生成的缩略图的大小是固定的,不能动态请求指定大小的缩略图. 虽然有非常多的图片云存 ...

  6. 开源代码Window下搭建rtmp流媒体服务器

    合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综合:有这样需求,将摄像头 ...

  7. cent os下搭建简单的服务器

    作为常和网络打交道的程序员,经常会遇到需要服务器的场合,比如搭建一个web服务器,一个代理服务器,又或者一个小型的游戏服务器. 我时常和朋友一起玩一款叫我的世界的游戏,为了能够长期稳定地联机玩,所以特 ...

  8. Centos下搭建 tomcat https服务器详解(原创)

    一 .安装java jdk配置环境变量 1. 卸载原有openjdk yum -y remove java-1.7.0-openjdk* yum -y remove tzdata-java.noarc ...

  9. Windows下搭建HTTP/HTTPS服务器及测试过程

    1 安装Apache http://www.apachehaus.com/cgi-bin/download.plx 选择合适的版本下载 本次下载的是 Apache 2.4.x VC14 Apache版 ...

随机推荐

  1. PHP时间日期

    PHP常用的几个时间日期函数有:date(),mktime(),strtotime(); 一.string date ( string $format [, int $timestamp ] ) 函数 ...

  2. java学习第9天

    形式参数和返回值的问题 (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的是该类的子类 ...

  3. C++Builder Berlin 编译

    编译工程,一个单元有错误,就停下了, 能不能把所有单元都编译,一次处理所有单元的错误?

  4. Linux_04------Linux权限的设定

    三种权限 */ /** * 修改文件所有者 * chown 用户名 文件名 */

  5. linux C学习笔记03--单链表

    单链表一直是程序员的基础,我也来复习下,下面是link.c中的代码,供main.c 调用,代码很简单,单链表的插入,删除,查找和遍历输出, #include <stdio.h> #incl ...

  6. ABAP-SQL基础知识

    SQL语法 我们在编写ABAP4程序的时候,经常需要从TABLE中根据某些条件读取数据,读取数据最常用的方法就是通过SQL语法实现的.ABAP/4中可以利用SQL语法创建或读取TABLE,SQL语法分 ...

  7. android_开发环境配置

    在学习 Android 之前,需要配置开发环境. 我用的是 eclipse ,简单说下 eclipse 的 Android 的环境配置. 如果没有JDK得先下载:http://www.oracle.c ...

  8. 使用__slots__

    [使用__slots__] 参考: 1.http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a0 ...

  9. EF联合查询的新用法

    用EF很多年了,做联合查询时,只知道linq和lambda两种语法,今天朋友发了一个链接,打开看后发现是EF内置的新的关于联合查询的方法,赶紧抄录下来,以备后用. 现在先把这几种方法,各写一个例子,便 ...

  10. DL4J (DeepLearning for java)

    http://deeplearning4j.org/lstm.html A Beginner’s Guide to Recurrent Networks and LSTMs Contents Feed ...