加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flexPaper制作在线文库阅读器思路

发布时间:2020-12-15 04:53:25 所属栏目:百科 来源:网络整理
导读:哥在一个制造业上班,图纸管理是老大难。从去年年底开始,就一直在琢磨着FLASHPAPER如何从服务端打

哥在一个制造业上班,图纸管理是老大难。从去年年底开始,就一直在琢磨着FLASHPAPER如何从服务端打印。看到网上许多哥们有同样经历,斗胆拿出来分享经验。?

整体思路:

一) 客户端上传上来文件。

二) 服务端调用flashpaper

实际上进程有:cmd.exe|admimistrator???? 文件默认打开程序|network service???? ?flashprinter.exe|network service。出现顺序亦按此顺序。

首先,打开CMD,执行命令

接着,默认程序解析文件

最后,打印机打印文件

此处关键点详见第1部分

三) 服务端打印出.swf文件。

此处关键点详见第3部分

四) 由于.swf文件生成耗时较长,客户端需不断检查该文件是否生成,若生成,则打开,否则3S后再检查。检查方法详见第4部分。

------------------------------------------------------------------------------------------------------------------------------------------------

关键点:

1、程序的调用:

关键是在服务端生成一个temp文件,从服务端调用CMD执行此文件,此文件内容为命令。避开权限的限制。

请注意:建议用.net环境。

红色代码为关键代码

<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="system.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title><%=request("holeurl")%></title>

<%
dim but as string
dim url,holeurl
holeurl=Request.QueryString(Server.UrlDecode("url"))
url=Right(cstr(holeurl),Len(cstr(holeurl))-InStr(CStr(holeurl),"/"))
holeurl=Replace(holeurl,"/","")
response.write (holeurl)
dim cmdtxt =" E:flashpaperflashprinter.exe?? E:" & holeurl & " -o? E:swf" & url &".swf"

response.write(cmdtxt)
dim tempfile as string=server.MapPath(".") & "" & "test.txt"
shell("cmd.exe /c " & cmdtxt & " > " & tempfile,true,20000)
dim myread as new streamreader(tempfile,encoding.default)
but=replace(myread.readtoend,vbcrlf,"<br>")
but=replace(but," "," ")
myread.close
file.exists(tempfile)
file.delete(tempfile)

%>

2、系统环境的配置

这里可以说是全文的核心了吧,很多人都是在这里卡住壳了。

首先,你下的flashpaper 原版的不如绿色的好用...汗!!

给个网址 :http://down.orsoon.com/%CD%BC%CE%C4%B4%A6%C0%ED/Flash%20%C0%B9/0512/FlashPaper.rar

flashpaper绿色版。安装方法里边有。

曾经装了正版的flashpaper,提示flash.ocx不能注册。

请用360卸载了,删注册表。然后装这个盗版的,呵呵。

其次,关于权限的配置。

估计95%的人郁闷都是在这里了。上边的程序写的再正确,也不能正常调用。

解决办法异常简单,请把network service 账户加入administrators组。

没办法,就是这么恐怖。确实比较危险。

修改后别忘重启IIS。

(我在2003下是network service,但是据说XP的好像是 aspnet 。不过给大家个判断方法,从网页上调用下flashpaper,别给参数,就让他在哪儿吭哧吭哧的卡着,这样才能看清楚任务管理器里账户是谁,那么就把这个账户添加到administrators组。)

3、读取生成的SWF文件。

由于.swf文件生成耗时较长,客户端需不断检查该文件是否生成。

像tXt、图片等,生成比较快,越1s,但是WORD、PDF等就比较慢,曾经有章DWG图,原图60M,我的XEON服务器足足编译了半小时。

这里关键是这红色代码。意思是,判断服务端反馈时间,如果反馈时间太长,说明.swf还没生成。

<div align="center">
请耐心等待<span id="BackSecs" style="color: #FF0000;"></span>
</div>
<div align="center">
<img src="img/wait.gif" width="70"? /></div>
<script?? language="javascript">
//检测URL是否存在,不存在则延迟并处理,生成文件后告警并跳转。
function countDown(Secs) {
??? BackSecs.innerText=Secs;
??? if(Secs>0) {
??????? setTimeout("countDown("+Secs+"-1)",1000);
??
??? }
??? else {
???? getURL("swf/<%= url %>.swf")??
??????? //
??? }
}
function?? getURL(url)
{???
????????? var?? xmlhttp?? =?? new?? ActiveXObject("Microsoft.XMLHTTP");???
????????? xmlhttp.open("GET",url,false);???
????????? xmlhttp.send();???
????????? if?? (xmlhttp.readyState==4){???
???? if(xmlhttp.Status==200){
????????????? alert("解析成功");

???? window.location="flash.asp?url="+escape('<%=url%>');
???? } else
???? countDown(3);
???????????????????????????? }
}
//user?? like?? this:???
getURL("swf/<%= url %>.swf")???
</script>

4、模板问题。

flashpaper好就好在兼容格式多,特别是office系列。但是打印出来的文件都带个flashpaper图标,还有打印的按键。很不爽

但是,这是可以改变的。

flashpaper安装目录下有个Interface文件夹,里边的文件就是模板-DefaultViewer.swf

每当程序从文件获取信息,形成帧后,外边套的就是这个DefaultViewer.swf。

其作用就相当于瓶子,里边的水就是内容。

不想要图标和按键直接改变模板即可

修改方法

1)反编译DefaultViewer.swf。

推荐工具:硕思闪客精灵

2)使用方法网上一大堆,在反编译出来的fla上,直接删,把什么图标的能换就换,不爽的按钮想删就删。

3)生成新的DefaultViewer.swf,替换原来的

这样,我们局可以定制我们自己喜欢的界面了。


http://www.cnblogs.com/tanjunmail/archive/2010/10/18/1855162.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读