如何在jsp页面显示word文档内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在jsp页面显示word文档内容相关的知识,希望对你有一定的参考价值。
1、利用jacob包将用户上传的word文件转换成htm格式,必须是“筛选过的网页”,不然显示不了图片;2、将转换好的htm格式文档路径存入数据库,读的时候就在数据库里读。
jacob1.8包下载地址:http://sourceforge.net/projects/jacob-project/
可能会抛出no jacob in java.library.path异常,解决办法如下:
1、 把jacob.dll在 C:/Program Files/Java/jdk1.5.0_08/bin、C:/Program Files/Java/jdk1.5.0_08/jre/bin、 C:/WINDOWS/system32 目录下各.放一份
2、把jacob.jar放入 项目的lib包下
将word文档转换为htm格式的java代码如下:
import com.jacob.com.*;
import com.jacob.activeX.*;
import java.io.*;
public class WordTohtml
//将指定目录下面的指定doc文件转化为HTML并存储在savepaths目录下
public static void change(String filepaths, String savepaths)
File f = new File(filepaths);
String filename = f.getName();
String filetype = filename.substring((filename.length() - 3), filename.length());// 取得文件类型
if (filetype.equals("doc")) // 判断是否为doc文件
System.out.println("当前正在转换......");
// 打印当前目录路径
System.out.println(filepaths);
ActiveXComponent app = new ActiveXComponent("Word.Application");// 启动word
String docpath = filepaths;
String htmlpath = savepaths + filename.substring(0, (filename.length() - 4));
String inFile = docpath;
// 要转换的word文件
String tpFile = htmlpath;
// HTML文件
boolean flag = false;
try
app.setProperty("Visible", new Variant(false));// 设置word不可见
Object docs = app.getProperty("Documents").toDispatch();
Object doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] inFile, new Variant(false),new Variant(true) ,
new int[1]).toDispatch();// 打开word文件
/*
* new Variant(10)筛选过的网页
* new Variant(9) 单个文件网页
* new Variant(8) 另存为网页
* new Variant(7) 另存为txt格式
* new Variant(6) 另存为rtf格式
* new Variant(0) 另存为doc格式
*/
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] tpFile, new Variant(10) , new int[1]);// 作为html格式保存到临时文件
Variant fl = new Variant(false);
Dispatch.call(doc, "Close", fl);
flag = true;
catch (Exception e)
e.printStackTrace();
finally
app.invoke("Quit", new Variant[] );
System.out.println("转化完毕!");
public static void main(String[] args)
//转换目录下的所有doc文件
// String paths = new String("D://test//");
String savepaths = new String("D://test//");
// changeAll(paths, savepaths);
//
//转换指定doc文件
String filepaths = "D://test.doc";
change(filepaths, savepaths);
参考技术A
把word另存为.pdf
<iframe src="xxx.pdf"></iframe>
asp.net页面读取word文档内容显示
各位大神们,用asp.net实现对指定word文档内容的读取显示该如何实现?比如左边读取指定文件夹中所有的word文档,以文档的标题作为链接,点击文档标题则在右边某位置显示出该word文档中的内容(包括字体样式,图片显示等),举个类似的例子也行,谢谢啦!!
操作WORD配置说明引入:Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB)
1.运行Dcomcnfg.exe
2.组件服务――计算机――我的电脑――DCOM配置――找到microsoft word 文档
3.点击属性
4.选择“安全性”
5.选定“使用自定义访问权限”和“使用自定义启动权限”
6.分别编辑权限,添加Everyone(ASPNET,VS Developers,Debugger User)
7.选择“身份标识”,在选定“交互式用户” 即可
8.在Web.config里加 identity impersonate="true"/
C#:
ASP.NET操作Word文档一直是一个大家比较关心的话题,其实在ASP.NET里操作Word文档一点也不难,大家只需按本文提示,就能轻轻松松操作Word文档!
一、准备工作
首先请确认服务端已经安装了Office Word(以下将以Office XP为例),操作系统为win2000或XP,并且已配置好.NET的运行环境及安装VS.NET C#开发环境后,我们就可以打开VS.NET,并新建一个Visual C#项目ASP.NET Web应用程序,位置为“”。(如图一)
二、引用Word对象库文件
要操作Word,我们就需要Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB),通常安装了Office Word后,你就可以在office安装目录的Office10文件夹下面找到这个文件,当我们将这个文件引入到项目后,我们就可以在源码中使用各种操作函数来操作Word。具体做法是打开菜单栏中的项目添加引用浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的!
答案补充
三、Webform1.aspx.cs代码
完成添加引用后,MSWORD.OLB已经转化为相关DLL文件并放置于项目的BIN目录下了,这样我们只需在源码中创建该对象,并使用word库文件内置的操作函数即可轻松实现操作Word,Webform1.aspx.cs源码请参见
五、web.config设置
web.config文件还需添加一句 identity impersonate="true"/以启用模拟身份,因为默认ASPNET这个用户是没有权限访问Word.ApplicationClass(),当启用模拟身份后所有页面将会使用匿名Internet用户帐户(IUSR_machinename)这个用户名的权限执行,这样我们就能成功访问Word.ApplicationClass()并在ASP.NET中操作Word!
//传文档所在路径 返回文档内容
public string Doc2Text(string docFileName)
//实例化COM
Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
object fileobj = docFileName;
object nullobj = System.Reflection.Missing.Value;
//打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了)
Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref fileobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj
);
//取得doc文件中的文本
string outText = doc.Content.Text;
//关闭文件
doc.Close(ref nullobj, ref nullobj, ref nullobj);
//关闭COM
wordApp.Quit(ref nullobj, ref nullobj, ref nullobj);
//返回
return outText;
当然 在读取的时候会有损坏的文件 和被加密的文件等问题 总之C#和office的兼容性不太好
别忘了要引用word的dll
引用文件夹 右键添加引用 在组件里找Microsoft.Office.Interop.Word追问
找不到“属性”选项?
参考技术A 读取Word内容时,使用包含图片和表格的编辑器,将内容转换为可用的HTML格式,然后再显示。参考技术B 读取Word内容时,使用包含图片和表格的编辑器,将内容转换为可用的HTML格式,然后再显示。 添加 引用: Microsoft.Office.Interop.Word ///追问
求步骤或关键代码-
以上是关于如何在jsp页面显示word文档内容的主要内容,如果未能解决你的问题,请参考以下文章