接手的第一个小项目,请教各位达人。。。

JsonJu 2011-11-11 10:26:00
刚从学校出来工作,现在头儿给我分配一个任务,大概是这样的:
可以在web页面生成word文档,上传到数据库
然后还可以从数据库读取word文档生成html在web页面上显示
用Java或PHP实现
越详细越好,如果有人愿意教我感激不尽

可能对于大家不算什么,但对于我还是蛮困难的,第一个小项目力争做好
没多少分,但已经是我全部的家当了
...全文
351 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
owo_lee 2011-11-14
  • 打赏
  • 举报
回复

过几天再做做!
JsonJu 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tianshi1017 的回复:]

引用楼主 feeling450 的回复:
刚从学校出来工作,现在头儿给我分配一个任务,大概是这样的:
可以在web页面生成word文档,上传到数据库
然后还可以从数据库读取word文档生成html在web页面上显示
用Java或PHP实现
越详细越好,如果有人愿意教我感激不尽

可能对于大家不算什么,但对于我还是蛮困难的,第一个小项目力争做好
没多少分,但已经是我全部的家当了
……
[/Quote]
好吧,我再说清楚一点
我们头是这样跟我们说的,想在web页面生成类似word的编辑页面,生成word上传到数据库,不管用什么方式上传,只要别人在web页面显示上传的word文档就可以了(类似于百度文库形式的)
我嘞个去 2011-11-11
  • 打赏
  • 举报
回复
1,web页面生成word文档: 用Itext插件吧 现成的 直接用 如果不会用 去网上看个例子 照猫画虎总会吧
2,上传到数据库: 有个疑问,是将word文档中的数据保存到数据库,还是将整个文档上传到数据库?
如果是前者,那把数据读出来,直接用个insert 语句将数据插入 数据库就行 如果是后者 用个SimpleUpLoad插件吧 同上!
3,从数据库读取word文档生成html在web页面上显示 将数据读出来 select 显示到页面上 应该不难吧~


good luck~


tianshi1017 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 feeling450 的回复:]
刚从学校出来工作,现在头儿给我分配一个任务,大概是这样的:
可以在web页面生成word文档,上传到数据库
然后还可以从数据库读取word文档生成html在web页面上显示
用Java或PHP实现
越详细越好,如果有人愿意教我感激不尽

可能对于大家不算什么,但对于我还是蛮困难的,第一个小项目力争做好
没多少分,但已经是我全部的家当了
[/Quote]

需求不太明确:
是将 web页面数据导出为word存放起来么,还是将什么内容变为word文档,整个web页面,含不含什么数据等等?
是将存放起来的word文档上传,还是????
读取是什么意思?读取文档生成一个新的html页面存放在某个地方,然后再手动打开该html文档,还是怎么滴???
楼主多想想需求是啥样的,然后在描述出来吧,要不然太笼统了
JsonJu 2011-11-11
  • 打赏
  • 举报
回复
还有人吗!!
难道都去过节了吗
help help help
wanglun_wl 2011-11-11
  • 打赏
  • 举报
回复
不知道如何实现,支持楼主
liweilance 2011-11-11
  • 打赏
  • 举报
回复
12楼说的很详细了
你可以这样理解
首先读取word文件

FileInputStream is = new FileInputStream(file);
然后用到org.apache.poi.hslf.usermodel.SlideShow;这个jar包
就是把word转换到一个对象里面,这时候你可以做的操作时把word里面的东西保存到某处
比如word里面有一个图片,你可以把图片放在你想要的路径下重新命名,
然后把这个路径保存到db中,html显示的时候去db取路径信息显示就可以了
思路有了实现就不难了吧
tianshi1017 2011-11-11
  • 打赏
  • 举报
回复
流程很简单:
上传文件-------将上传的文件转换为swf格式的文件,使用flexpager对这个swf格式的文件进行播放。

当然,实现的方式应该有很多,我知道也只是其中的一种。
tianshi1017 2011-11-11
  • 打赏
  • 举报
回复
贴了这些代码估计也没太大的用,
搜搜上传文件,搜搜pfdbox,搜搜flexpager
估计看过这些后就差不多了
tianshi1017 2011-11-11
  • 打赏
  • 举报
回复
公司封QQ,
给你贴一部分代码吧

使用的插件是:flexpaper

1.上传pdf文档,并转换为swf格式的(转换为了swf格式的在查看的时候才可以直接类似于豆丁啊,百度文库之类的播放)

private String finishAttachment(Attachment attachment,
Institution institution){
String info = "";
File[] files = attachment.getFile();
String path = ServletActionContext.getServletContext().getRealPath(
"data/regulations");
File desc = new File(path);
if (!desc.exists()) {
desc.mkdir();
}
for (int i = 0; i < files.length; i++) {
File file = files[i];
long now = System.currentTimeMillis();
String fileName = attachment.getFileFileName()[i];
path += File.separator + now + "_" + fileName;
institution.setUrl(now + "_" + fileName);
saveFile(file, path);
try {
PDF2SWFUtil.pdf2swf(path, Const.EXE_PATH);
} catch (IOException e) {
e.printStackTrace();
}

}
return info;
}


2.工具类:
package com.eimone.institution.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class PDF2SWFUtil {
/**
* 利用SWFTools工具将pdf转换成swf,转换完后的swf文件与pdf同名
*
* @author iori
* @param fileDir
* PDF文件存放路径(包括文件名)
* @param exePath
* 转换器安装路径
* @throws IOException
*/
public static synchronized void pdf2swf(String fileDir, String exePath)
throws IOException {
// 文件路径
String filePath = fileDir.substring(0, fileDir.lastIndexOf(File.separator));
// 文件名,不带后缀
String fileName = fileDir.substring((filePath.length() + 1), fileDir
.lastIndexOf("."));
String fileNewName = fileName.substring(0, fileName.indexOf("_"));
Process pro = null;
if (isWindowsSystem()) {
// 如果是windows系统
// 命令行命令
String cmd = exePath + " \"" + fileDir + "\" -o \"" + filePath
+ File.separator + fileNewName + ".swf\"" + " -T 9";
// Runtime执行后返回创建的进程对象
pro = Runtime.getRuntime().exec(cmd);
} else {
// 如果是linux系统,路径不能有空格,而且一定不能用双引号,否则无法创建进程
String[] cmd = new String[3];
cmd[0] = exePath;
cmd[1] = fileDir;
cmd[2] = filePath + File.separator + fileNewName + ".swf";
// Runtime执行后返回创建的进程对象
pro = Runtime.getRuntime().exec(cmd);
}
// 非要读取一遍cmd的输出,要不不会flush生成文件(多线程)
new DoOutput(pro.getInputStream()).start();
new DoOutput(pro.getErrorStream()).start();
try {
// 调用waitFor方法,是为了阻塞当前进程,直到cmd执行完
pro.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

/**
* 判断是否是windows操作系统
*
* @author iori
* @return
*/
private static boolean isWindowsSystem() {
String p = System.getProperty("os.name");
return p.toLowerCase().indexOf("windows") >= 0 ? true : false;
}

/**
* 多线程内部类 读取转换时cmd进程的标准输出流和错误输出流,这样做是因为如果不读取流,进程将死锁
*
* @author iori
*/
private static class DoOutput extends Thread {
public InputStream is;

// 构造方法
public DoOutput(InputStream is) {
this.is = is;
}

public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(
this.is));
String str = null;
try {
// 这里并没有对流的内容进行处理,只是读了一遍
while ((str = br.readLine()) != null)
;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

/**
* 测试main方法
*
* @param args
*/
public static void main(String[] args) {
// 转换器安装路径
String exePath = "C:\\Program Files\\SWFTools\\pdf2swf.exe";
try {
PDF2SWFUtil.pdf2swf("D:\\Angelo\\操作指南.pdf", exePath);
} catch (IOException e) {
System.err.println("转换出错!");
e.printStackTrace();
}
}

}
3.点击查看:

action中获得转换后的该swf文件的名称以及这个文件对象传递到jsp页面

public String readInstitution() {
Institution ins = institutionService.getInstitution(institution.getId());
request = (Map)ActionContext.getContext().get("request");
String path = ins.getUrl();
String swfPath = path.substring(0, path.indexOf("_")) + ".swf";
request.put("institution", ins);
request.put("swfPath", swfPath);
return "readInstitution";
}

4.显示该swf的jsp页面

<script type="text/javascript" src="<%=basePath%>flexpaper/js/swfobject/swfobject.js"></script>
<script type="text/javascript" src="<%=basePath%>flexpaper/js/flexpaper_flash.js"></script>
<script type="text/javascript">
var swfVersionStr = "10.0.0";
var xiSwfUrlStr = "playerProductInstall.swf";

var flashvars = {
SwfFile : escape("<%=basePath%>data/regulations/${swfPath}"),
Scale : 0.6,
ZoomTransition : "easeOut",
ZoomTime : 0.5,
ZoomInterval : 0.1,
FitPageOnLoad : false,
FitWidthOnLoad : true,
PrintEnabled : true,
FullScreenAsMaxWindow : false,
ProgressiveLoading : true,

PrintToolsVisible : true,
ViewModeToolsVisible : true,
ZoomToolsVisible : true,
FullScreenVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,

localeChain: "zh_CN"
};

var params = {

}
params.quality = "high";
params.bgcolor = "#ffffff";
params.allowscriptaccess = "sameDomain";
params.allowfullscreen = "true";
var attributes = {};
attributes.id = "FlexPaperViewer";
attributes.name = "FlexPaperViewer";
swfobject.embedSWF(
"<%=basePath%>flexpaper/FlexPaperViewer.swf", "flashContent",
$("#header").width(), "520",
swfVersionStr, xiSwfUrlStr,
flashvars, params, attributes);
swfobject.createCSS("#flashContent", "display:block;text-align:left;");
</script>
<style type="text/css">
.aa{-moz-user-select:none;}
textarea
{
width:100%;
height:100%;
}
#flashContent { display:none; }
</style>
<script type="text/javascript">


$().ready(function(){
document.oncontextmenu=function(){return false;}
document.onselectstart=function(){return false;}

});

</script>
</head>


<div id="flashContent">
<p>
To view this page ensure that Adobe Flash Player version
10.0.0 or greater is installed.
</p>
<script type="text/javascript">
var pageHost = ((document.location.protocol == "https:") ? "https://" : "http://");
document.write("<a href='http://www.adobe.com/go/getflashplayer'><img src='"
+ pageHost + "www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player' /></a>" );
</script>
</div>

JsonJu 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tianshi1017 的回复:]

晕倒,楼主
类似于百度文库的,你确定???
那不就只有一个文件上传功能,和文件播放功能以及文档下载功能
文件上传,网上一大堆的代码,COPY着用,文件播放,同样用SWF那啥的插件很好搞定,下载更不用说了
但是
怎么会有word编辑器呢???
[/Quote]
能不能说的详细一点,我是菜鸟,或者留个Q什么的
zhu6100441 2011-11-11
  • 打赏
  • 举报
回复
类似word的网页文本编辑器不算小项目了,孩子,你们头真器重你,加油。
如果只是想在web页面编辑文本然后上传服务器存数据库,可以试试文本编辑的插件。我现在的项目使用的kindeditor,感觉。。。没什么感觉,不是我做这块,不过你可以试试。
JsonJu 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yanmushi 的回复:]

编辑器,找个FCK文本编辑器就差不多吧?

跟CSDN这个回复的小工具似的,可以调整自己写的内容~
[/Quote]
不是这个,感谢你的回复
slio2008 2011-11-11
  • 打赏
  • 举报
回复


word在网页里打开-编辑-保存等操作 有dsoframer.ocx
我只用过这个 不知道是否是最优方法 他只能用于IE 是一个VC做的active控件 网上有源码和控件下载。
下载这个控件 用Regsvr32.exe注册后 在页面里 就能使用了 具体使用方法 你google一下 JSP+dsoframer.ocx
艳沐石 2011-11-11
  • 打赏
  • 举报
回复
编辑器,找个FCK文本编辑器就差不多吧?

跟CSDN这个回复的小工具似的,可以调整自己写的内容~
tianshi1017 2011-11-11
  • 打赏
  • 举报
回复
晕倒,楼主
类似于百度文库的,你确定???
那不就只有一个文件上传功能,和文件播放功能以及文档下载功能
文件上传,网上一大堆的代码,COPY着用,文件播放,同样用SWF那啥的插件很好搞定,下载更不用说了
但是
怎么会有word编辑器呢???

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧