开源的方法是用:openoffice+swfTool +jodconverter文件预览;
原理是:将word转成pdf,再转成swf文件通过falsh实现在线预览
⑵ 如何java程序将 word转换成html-CSDN论坛
Dispatch wordfile = Dispatch.invoke(
wordacc,
"Open",
Dispatch.Method,
new Object[] { ls_word, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
Dispatch.invoke(wordfile, "SaveAs", Dispatch.Method, new Object[] {
ls_html, new Variant(8) }, new int[1]);
Variant f = new Variant(false);
// 编写 生成的html
Dispatch.call((Dispatch) wordfile, "Close", (Object) f);
在执行Dispatch.invoke(wordfile, "SaveAs", Dispatch.Method, new Object[] {
ls_html, new Variant(8) }, new int[1]);
jacob.jar
jacob-1.14-x86.dll jacob-1.14-x64.dll 这些的位置有什么要求
抛出异常 路径绝对没有错
com.jacob.com.ComFailException: Invoke of: SaveAs
Source: Microsoft Word
Description: 这不是有效文件名。
请试用下列方法:
* 检查路径,确认键入无误。
* 从文件和文件夹列表中选择文件。
at com.jacob.com.Dispatch.invokev(Native Method)
at com.jacob.com.Dispatch.invokev(Dispatch.java:858)
at com.jacob.com.Dispatch.invoke(Dispatch.java:502)
⑶ 如何通过javaweb实现在浏览器预览word内容
大概可以通过3种方法实现
1、让你的访问界面集成word在线插件,可直接在浏览器中访问专word文件,不过这样的插属件一般都是收费的
2、将word先转换为pdf文件,如果浏览器装了pdf插件可直接预览访问的
3、如果也可将word先转换为pdf文件,然后将pdf文件转换为swf文件,然后项目中集成swf访问插件,浏览器也可预览了
⑷ 用java做一个word和excel的在线预览功能,跪求代码
前提:本人的系统为Ubuntu13.1064位系统。本篇是我在配置好环境后一段时间写的,所以操作上可能会有也错误,因此仅供参考。 搜索在线显示office和pdf,最常见的方法就是把都转为swf,然后通过FlexPaper显示。这个方法有缺点,FlexPaper不支持所有浏览器(我只能在chrome中使用,firefox要进行设置) 我用的系统是Ubuntu13.1064位 一下所提到的软件,我都会在附件中分享 一、openoffice安装 下载附件中的Apache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-rpm_zh-CN,解压,安装RPMS里面的所有deb包,然后按炸ungRPMS/desktop-integration里面的openoffice.org3.4-redhat-menus_3.4-9594_all.deb。假如从网上下载下来的openoffice里面全市rmp包的话需要自己通过alien转换成deb(附件中的是我自己转换过的) 安装完成后就可以运行了 soffice--headless--accept="socket,host=127.0.0.1,port=8100;urp;"--nofirststartwizard 网上提示使用soffice--headless--accept="socket,host=127.0.0.1,port=8100;urp;"--nofirststartwizard&的是后台运行 运行以后可以通过netstat-ano|grep8100查看时候运行,上面的命令是在8100运行oppenoffice 网上还说要安装OpenOfficeSDK3.3这个东东,我没有装也可以转换 二、offie转pdf 下载附件中的jodconverter-2.2.2,通过命令 java-jarjodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jarXXX.docxXXX.pdf 转换office为pdf 三、安装freetype-2.4.6和jpeg-8c 不安装这两个的话是没有办法编译出swftools中的pdf2swf的 安装方法是进入目录,然后 ./configure make makeinstall 四、添加字体 下载附件中的chinese-simplified(里面已经添加了部分字体),解压,放到/usr/local/share/xpdf/中,如果没有xpdf文件夹就新建一个。 五、安装swftools 下载附件中的swftools-2013-04-09-1007,同样 ./configure make makeinstall 就可以了,运行 psf2swf 如果help提示的话表示安装成功 运行命令 pdf2swf-oXXX.swf-T-z-t-fXXX.pdf-slanguagedir=/usr/local/share/xpdf/chinese-simplified-sflashversion=9 可以把pdf转换成swf了。 至此完毕 所有附件附件:
⑸ java 把office word,ppt转化为图片
从一个大神那里学来的,已测试无误
package com;
import java.awt.Dimension;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.usermodel.SlideShow;
public class ExportPPT {
public static void main(String[] args) {
// 读入PPT文件
File file = new File("D:\\UPH.ppt");
doPPTtoImage(file);
}
public static boolean doPPTtoImage(File file) {
boolean isppt = checkFile(file);
if (!isppt) {
System.out.println("The image you specify don't exit!");
return false;
}
try {
FileInputStream is = new FileInputStream(file);
SlideShow ppt = new SlideShow(is);
is.close();
Dimension pgsize = ppt.getPageSize();
org.apache.poi.hslf.model.Slide[] slide = ppt.getSlides();
for (int i = 0; i < slide.length; i++) {
TextRun[] truns = slide[i].getTextRuns();
for (int k = 0; k < truns.length; k++) {
RichTextRun[] rtruns = truns[k].getRichTextRuns();
for (int l = 0; l < rtruns.length; l++) {
rtruns[l].setFontIndex(1);
rtruns[l].setFontName("宋体");
}
}
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setPaint(Color.BLUE);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
// 这里设置图片的存放路径和图片的格式(jpeg,png,bmp等等),注意生成文件路径
File path = new File("D:/images");
if (!path.exists()) {
path.mkdir();
}
FileOutputStream out = new FileOutputStream(path + "/" + (i + 1)
+ ".jpg");
javax.imageio.ImageIO.write(img, "jpeg", out);
out.close();
}
System.out.println("success!!");
return true;
} catch (FileNotFoundException e) {
System.out.println(e);
} catch (IOException e) {
}
return false;
}
// function 检查文件是否为PPT
public static boolean checkFile(File file) {
boolean isppt = false;
String filename = file.getName();
String suffixname = null;
if (filename != null && filename.indexOf(".") != -1) {
suffixname = filename.substring(filename.lastIndexOf("."));
if (suffixname.equals(".ppt")) {
isppt = true;
}
return isppt;
} else {
return isppt;
}
}
}