问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java操作word或者html关键是定位操作对象。

发布网友 发布时间:2022-04-28 21:23

我来回答

1个回答

热心网友 时间:2022-06-23 06:25

package com.cectsims.util;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

/**
* doc docx格式转换
*/
public class DocConverter {
private static final int environment = 1;// 环境 1:windows 2:linux
private String fileString;// (只涉及pdf2swf路径问题)
private String outputPath = "";// 输入路径 ,如果不设置就输出在默认的位置
private String fileName;
private File pdfFile;
private File swfFile;
private File docFile;

public DocConverter(String fileString) {
ini(fileString);
}

/**
* 重新设置file
*
* @param fileString
*/
public void setFile(String fileString) {
ini(fileString);
}

/**
* 初始化
*
* @param fileString
*/
private void ini(String fileString) {
this.fileString = fileString;
fileName = fileString.substring(0, fileString.lastIndexOf("."));
docFile = new File(fileString);
pdfFile = new File(fileName + ".pdf");
swfFile = new File(fileName + ".swf");
}

/**
* 转为PDF
*
* @param file
*/
private void doc2pdf() throws Exception {
if (docFile.exists()) {
if (!pdfFile.exists()) {
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
try {
connection.connect();
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(docFile, pdfFile);
// close the connection
connection.disconnect();
System.out.println("****pdf转换成功,PDF输出:" + pdfFile.getPath()+ "****");
} catch (java.net.ConnectException e) {
e.printStackTrace();
System.out.println("****swf转换器异常,openoffice服务未启动!****");
throw e;
} catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {
e.printStackTrace();
System.out.println("****swf转换器异常,读取转换文件失败****");
throw e;
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} else {
System.out.println("****已经转换为pdf,不需要再进行转化****");
}
} else {
System.out.println("****swf转换器异常,需要转换的文档不存在,无法转换****");
}
}

/**
* 转换成 swf
*/
@SuppressWarnings("unused")
private void pdf2swf() throws Exception {
Runtime r = Runtime.getRuntime();
if (!swfFile.exists()) {
if (pdfFile.exists()) {
if (environment == 1) {// windows环境处理
try {
// Process p = r.exec("D:/Program Files/SWFTools/pdf2swf.exe "+ pdfFile.getPath() + " -o "+ swfFile.getPath() + " -T 9");
Process p = r.exec("C:/Program Files (x86)/SWFTools/pdf2swf.exe "+ pdfFile.getPath() + " -o "+ swfFile.getPath() + " -T 9");
System.out.print(loadStream(p.getInputStream()));
System.err.print(loadStream(p.getErrorStream()));
System.out.print(loadStream(p.getInputStream()));
System.err.println("****swf转换成功,文件输出:"
+ swfFile.getPath() + "****");
if (pdfFile.exists()) {
pdfFile.delete();
}

} catch (IOException e) {
e.printStackTrace();
throw e;
}
} else if (environment == 2) {// linux环境处理
try {
Process p = r.exec("pdf2swf " + pdfFile.getPath()
+ " -o " + swfFile.getPath() + " -T 9");
System.out.print(loadStream(p.getInputStream()));
System.err.print(loadStream(p.getErrorStream()));
System.err.println("****swf转换成功,文件输出:"
+ swfFile.getPath() + "****");
if (pdfFile.exists()) {
pdfFile.delete();
}
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
} else {
System.out.println("****pdf不存在,无法转换****");
}
} else {
System.out.println("****swf已经存在不需要转换****");
}
}

static String loadStream(InputStream in) throws IOException {

int ptr = 0;
in = new BufferedInputStream(in);
StringBuffer buffer = new StringBuffer();

while ((ptr = in.read()) != -1) {
buffer.append((char) ptr);
}

return buffer.toString();
}
/**
* 转换主方法
*/
@SuppressWarnings("unused")
public boolean conver() {

if (swfFile.exists()) {
System.out.println("****swf转换器开始工作,该文件已经转换为swf****");
return true;
}

if (environment == 1) {
System.out.println("****swf转换器开始工作,当前设置运行环境windows****");
} else {
System.out.println("****swf转换器开始工作,当前设置运行环境linux****");
}
try {
doc2pdf();
pdf2swf();
} catch (Exception e) {
e.printStackTrace();
return false;
}

if (swfFile.exists()) {
return true;
} else {
return false;
}
}

/**
* 返回文件路径
*
* @param s
*/
public String getswfPath() {
if (swfFile.exists()) {
String tempString = swfFile.getPath();
tempString = tempString.replaceAll("\\\\", "/");
return tempString;
} else {
return "";
}

}
/**
* 设置输出路径
*/
public void setOutputPath(String outputPath) {
this.outputPath = outputPath;
if (!outputPath.equals("")) {
String realName = fileName.substring(fileName.lastIndexOf("/"),
fileName.lastIndexOf("."));
if (outputPath.charAt(outputPath.length()) == '/') {
swfFile = new File(outputPath + realName + ".swf");
} else {
swfFile = new File(outputPath + realName + ".swf");
}
}
}

}

转换为PDF,然后转换为SWF,网上很多这个过程的代码,你可以看看追问比如我传一个字符,如“对接终端软件列表”这是一个word的目录,原来是要点击才能到下面的文章,但是我要的是直接到下面的内容。不过谢谢你啊,

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
招聘和招募和招收区别 人力资源中招聘与招募的区别 招聘与招募有啥区别 夏日繁星公众号可信吗 关于“红杏出墙”的古诗词描写有哪些 需要考多少分才过雅思 雅思考试多少分才可以算及格 雅思考试多少分算及格 雅思的总分多少分及格 雅思一般考多少分能合格 怎么用java html js以及框架实现点击按钮就打开ppt,word等文件? 金坛的茅山风景区好玩吗? 句容茅山好玩吗?句容茅山有什么特点不? 句容的茅山好玩吗? 十大最好玩的地方 句容哪里好玩 句容好玩的景点推荐 茅山有啥好玩的 茅山宝盛园有哪些好玩的 常州茅山宝盛园和太湖湾露营谷哪个好玩? 江西大茅山好玩吗? 谁有英语角活动方案? 假如你是一名导游,正带领着一些外国孩子游览市植物园。请用英语介绍游园规则 镇江金山 镇江茅山 哪个山更好玩 干洗店可以和什么一起 “游园会”用英文怎么说?自我介绍用 茅山有什么好玩的地方 与英语有关的活动方案 干洗店办理营业执照经营范围怎么写? 如何经营干洗店? 茅山有什么好玩的地方? 巴学园英语节游园活动作文500字 股票中成交量是什么意思? 股票成交量是什么意思,是不是包括当日的买进和卖出的总和? html一个按钮下载后台服务器的word文档。java实现,但是程序没错误,但是没有提示下载 股市成交量是什么意思 java 如何利用ckeditor实现文件(html格式或者word格式)上传并把文件... 股票的交易量是什么意思 股票成交量是什么? 台式电脑接收wifi需要什么设备? 电脑用宽带拨号上网的怎样连接wifi,需要什么设备?? 怎么查看现在电脑wifi被多少设备连接了 清朝宫廷内的“吃”有多讲究,有怎样的“艺术”? ipad怎么关键盘声音 清朝皇帝吃饭有哪些规矩? 清朝宫廷内的“吃”有多讲究? ipad air2打字声音关不了,锁定和键盘关闭都没用,锁定关得掉键盘关不了... 清代后宫的嫔妃都吃什么? pc电脑怎么添加wifi设备怎么连接 用的ipad air2 关闭了设置中的键盘声音,可是在打字时,还是有声音这是什么问题? 清朝皇帝每天吃什么食物 陈村粉怎么做好吃?