分享

仿豆丁flashpaper 网页flash文档播放调用文档资料收集

 航风个人图书馆 2011-08-21

配置要求:
1、服务器必须是windows系统
因为本插件必须能将doc、xls、docx、ppt、txt、pdf等等文档打开才可以,因为这些文档只支持windows系统,所有必须服务器是 windows系统,而且必须安装office和pdf阅读器。
2、php必须支持exe函数调用(因为首先要将文档打开然后打印成flash格式)
3、服务器必须支持虚拟打印功能
4、服务内存需要足够大,因为打印的时候要占用原有的内存(建议最低为2-4G);
满足上述服务器配置条件,才能支持在线文档插件。豆丁网几乎和上述配置一样。
这里为啥要征求大家意见

1、一方面目前本插件在本服务器上测试OK,因为他只是在编辑器上添加一个调用按钮,尚未与论坛程序完全整合,也就是说他的原理为,在编辑器上添加一个在线文档按钮,然后跳出一个单文件上传系统,上传完成后,自动调用打印程序,打印完成后将flash的地址通过媒体标签的形式传递到输入框,编辑帖子完成后即显示文档flash
2、由于上述原理,如果真正的想和论坛程序深度整合的话,必须重写代码(与论坛的附件上传整合到一起)
3、由于服务器配置的局限性,可能需求的不多,所以,想征求大家意见

 

有谁知道FlashPaper?word to htm有问题要请教高手们
http://bbs./thread-2781866-1-1.html
我有一些DOC文档要放在网上,但有特殊的格式,不能直接转换成HTML,用FlashPaper转换成SWF后,由于有Macromedia的LOGO及打印,放大,文本选择等一些工具,不能很好的保护文档,因此,想去掉LOGO及打印,放大,文本选择等工具,也知道FlashPaper的控制函数,但由于小可实在太菜,也不知道怎么用,请DX多指教。


另,有没有好的办法,将SWF嵌入HTML后,通过编辑HTML来调用FlashPaper的控制函数来实现打印,放大,文本选择等按钮的打开和关闭?
万分感谢。
现在我用的是FlashPaper2.0,有一个插件可以控制,但是就是不知道怎么用。
FlashPaper2.0:http://www.onlinedown.net/soft/35842.htm
插件:http://www./a ... ashpaper_comp_4.php
请高手回答,在此谢过。
这里有一篇文章好像也能实现,有4页,但我还是没有弄明白,有谁能译一下就好了
http://www.adobe.com/devnet/flas ... mport_flpaper2.html
基本能实现控制按的打开和关闭了,引用http://www.adobe.com/devnet/flas ... mport_flpaper2.html上面的方面。但是新的问题出来了,由于只是生成一个新的SWF,引用以前的SWF,新的SWF不能单独运行,如果单独运行就只能是一个空白文档。所以,有没有好的办法能直接对原始的SWF进行控制,或者能否实现新生成的新的SWF中本身就包含原始的SWF,而不仅仅是引用,有没有办法实现?请DX们指教。
举个例子:
我有一个原始的用FLASFHPAPER生成的SWF:FLASHPAPER.swf,按http://www.adobe.com/devnet/flas ... mport_flpaper2.html的方法处理后,去掉打印,文本选择等按钮后,生成一个新的SWF文件:FLASHPAPER-1.swf,但新生成的文件很小,没有包含原始的FLASHPAPER.swf,而仅仅只是引用。因此新生成的FLASHPAPER-1.swf不能独立运行,必须是 FLASHPAPER.swf和FLASHPAPER-1.swf在一起时才能运行FLASHPAPER-1.swf。现在的问题是怎么实现新生成的 FLASHPAPER-1.swf能独立的运行,就是说新生产的FLASHPAPER-1.swf文档要包含原始的FLASHPAPER.swf,而不仅仅是引用。
求助各位DX了。
这个问题已经彻底解决,现在可以对SWF进行修改,就是对FLASHPAPER的默认转换模板进行修改,然后控制打印,文本复制等功能。对SWF进行反编译,处理后解决。
现在用FLASHPAPER处理出来的DOC文档,不再会有打印,文本复制,等功能,只可看,只可浏览。利用在网页中的禁止保存、禁止打印、禁止右键等代码,较好的实现了文档的保护。
FlashPaper修改很容易,我这里都有现成修改好的 去logo 去工具条,部分工具屏蔽等模版,需要的站内PM

 

asp.net 调用 FlashPaper如何实现 有权限问题吗
http://topic.csdn.net/u/20081015/12/ef971788-d3e1-45e2-95a4-03565c917f05.html
ASP 调用 flashpaper 失败
1、CMD里执行 I:/I:/FlashPaper/FlashPrinter.exe I:/1.doc -o I:/1.swf 。I盘根目录下成功生成1.swf
期间进程出现了 winword.exe、FlashPrinter.exe 、还有一个macromedia的lisence进程。用户名为ADMINISTRATOR。命令执行完,均自动关闭。
2、而ASP里执行 WshShell.Run("I:/I:/FlashPaper/FlashPrinter.exe I:/1.doc -o I:/1.swf " ,0,true) 网页开始出现反应慢。查看进程只有FlashPrinter.exe和macromedia的lisence进程(用户名均为iwam),未见 winword.exe进程。也没有文件生成。
3、用另一款转换工具pdf2swf,通过ASP,生成目标文件成功。
4、怀疑ASP访问时IWAN用户权限不够,于是采用CPAU账户替换工具,把IWAN替换成ADMINISTRATOR。 FlashPrinter.exe和macromedia的lisence进程出现,且用户名均为ADMINISTRATOR,但IE报错“应用程序初始化错误”。
5、期间尝试无数次办法:把IWAN、IUSR加入管理组;虚拟打印机加入IWAN、IUSR所有权限,修改组策略等等等...均失败。
请高手解读.......
问题补充:WshShell.Run("I:/FlashPaper/FlashPrinter.exe I:/1.doc -o I:/1.swf " ,0,true),刚才写错了。
另外第四条时,没有文件生成。
命令行调用FlashPaper Command Line Conversion
FlashPrinter.exe 2008年数据业务中心IT系统现状以及规划汇报080508.ppt -o 200808.swf
Unable to use sample code in php of sdk folder
http:///forum/viewtopic.php?f=4&t=58
Unable to use sample code in php of sdk folder
by jai on Fri Feb 29, 2008 12:39 am
when I use the sample code index.php on my server, then i get an error "Error writing file /hsphere/local/home/akashnig/clickmydocs.com/PHP/uploadedfiles/investm.rtf".
how can I use this sample code in my project on server to convert files. ???
I want to use print2flash in my project, please provide the code for this.............
If any help regarding this....please provide.jai
Posts: 1
Joined: Wed Feb 27, 2008 6:19 am Top
--------------------------------------------------------------------------------
Re: Unable to use sample code in php of sdk folder
by staff on Wed Mar 05, 2008 4:21 am
You need to grant Read and Write permissions to the uploadedfiles and convertedfiles folders for the user under which your web server runs (for IIS it is usually IUSR_xxx) and for the user which credentials you specified in the Print2Flash Service Configuration window.
No, command line does not support URLs. The solution may be writing a program for downloading and saving a page to disk, and then you can convert that page to Flash using Print2Flash command line.
Command Line failed in ASP
http:///forum/viewtopic.php?f=4&t=86
http://www./blog/index.cfm/2007/2/22/Batch-Convert-PDF-files-to-Flash-Paper
asp如何在服务器端调用winzip命令行对上传的多个文件打包--asp编程技术
http://www./cweb/2006516174722.asp
写了2个小时的东东想了两天!PHP上传文件类
http://farflight.blog.sohu.com/53196006.html
js调用可执行性(exe)文件
http://blog.sina.com.cn/s/blog_5ca9fdd80100bdh1.html
liujunpeng的个人空间_列表_PHPChina 开源社区门户 - powered by ..
http://www./html/23/6123_type_blog_view_track.html
FlashPaper类库
http:///downloads/flash/components/FlashPaper_doc.html
FlashPaper组件中文说明
http://www./item/item-1006687373/
If it's any help this is the code from my site which opens a document (newsletter).

This is a Flash document. You can see some controls just above the document. The control just left of the double arrow will open a new window or tab for full size viewing.

找人开发
http://forums.adobe.com/thread/170010?tstart=330
http:///
http://space./space/?376578/viewspace-308332.html
php exec FlashPrinter有问题
http://zhidao.baidu.com/question/58766588.html
CMD 运行带参数的程序 WEB调用
http://zhidao.baidu.com/question/129685919.html?si=8
于老師教室討論版:: 觀看文章- FlashPaper 轉換的檔案,如何嵌入於
http://203.208.37.132/search?q=cache:JM280Bxa4moJ:yunol.stes.tc.edu.tw/phpBB2/viewtopic.php%3Fp%3D27422%26sid%3D19c50e3736c5d28bc26ff188850fed12+php+flashpaper+%E4%BB%A3%E7%A0%81&cd=30&hl=zh-CN&ct=clnk&gl=cn&st_usg=ALhdy2_zM4XAz6LykBkw9PqDMznZSy_DYA
如何给Flash Paper生成的SWF文件添加一个弹出窗口按钮? 看这里
直接在URL后面加参数:
http://www./temp/tiger_book.swf?POPUP_ENABLED=true
PHP code
$exstr = "D://FlashPaper//FlashPrinter.exe D://11.doc -o D://output1.swf";
exec($exstr);
在Flash中用FlashPaper API
http://www./docs/959266665903@hc09/154235/
.語法如下:
代碼:

height是文件高度
width是文件寬度
src是文件來源,就是網址路徑
以上三個參數,請根據自己的資料修改。

 

类库
http:///downloads/flash/components/FlashPaper_doc.html
FlashPaper and ASP.NETIs there any way of using FlashPaper in ASP.NET in order to:
1) convert documents (DOC, RTF, etc) into FlashPaper files
2) publish FlashPaper documents in ASPX pages
Thanks in advance.
JK, Chennai
Hi!
i need to convert my docs into .swf file through flashpaper2 by calling .aspx file i.e. i need to know aspx code for flashparer for convert any docs into .swf file. My requirment is that i need to create a webpage through which i can upload any document and it will convert into swf file by flashpaper.
So if any one have solution then plz reply me.

 

 


模仿百度文库——FLASHPAPER 服务端打印之终极解决(转)

http://www./article/htmls/201010/MzE0MTUz.html


整体思路:
一) 客户端上传上来文件。
二) 服务端调用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./TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns="http://www./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:/flashpaper/flashprinter.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./%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还没生成。
请耐心等待

//检测URL是否存在,不存在则延迟并处理,生成文件后告警并跳转。
function countDown(Secs) {
BackSecs.innerText=Secs;
if(Secs>0) {
setTimeout("countDown("+Secs+"-1)",1000);
}
else {
getURL("swf/.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('');
} else
countDown(3);
}
}
//user like this:
getURL("swf/.swf")

4、模板问题。
flashpaper好就好在兼容格式多,特别是office系列。但是打印出来的文件都带个flashpaper图标,还有打印的按键。很不爽
但是,这是可以改变的。
flashpaper安装目录下有个Interface文件夹,里边的文件就是模板-DefaultViewer.swf
每当程序从文件获取信息,形成帧后,外边套的就是这个DefaultViewer.swf。
其作用就相当于瓶子,里边的水就是内容。
不想要图标和按键直接改变模板即可
修改方法
1)反编译DefaultViewer.swf。
推荐工具:硕思闪客精灵
2)使用方法网上一大堆,在反编译出来的fla上,直接删,把什么图标的能换就换,不爽的按钮想删就删。
3)生成新的DefaultViewer.swf,替换原来的
这样,我们局可以定制我们自己喜欢的界面了。
—————————————————————————————————————————————————

进阶讨论:
1、DefaultViewer.swf里边没有旋转按钮,不爽。哪位达人帮忙做个
2、DefaultViewer.swf全屏只是网页全屏,不爽。哪位达人帮忙做个像土豆网那样的。
3、不知道有没有能播放swf的SWF。这样看的人只能下下来外边播放的swf,里边的却下不下来。
4、哥不喜欢VS,麻烦。但是羡慕net的速度。麻烦哪位达人全部实现后共享下源码。谢谢
5、哥的球球:290804452。

 


 

如何实现百度文库(转)

http://www./index.php/archives/439

一、 引子
2003年开始玩Flash,完了两年就戒掉了;长时间不用不完慢慢就生疏了。最近应客户的需要,希望能在文档系统中实现类似百度文库的效果。考查一番,咋看起来百度用的是FlashPaper技术,也看了看FlexPaper,在GoogleCode上还看到了一个超大文件的示例,可惜链接打不开,无法去详细分析他们了。
在能看到的应用中,FlashPaper、FlexPaper都不能达到在互联网上动态加载大文档的用户体验需求;唯独百度文库有这样的用户体验,因此就只能拿百度文库开刀了,希望李彦宏同志不要见怪。
姑且拿《六十八个经典小故事》作为示例,该文档页数足够多,能够展示动态加载的效果。
二、 百度文库浏览器原理分析步骤
找到《六十八个经典小故事》对应的链接;
清空IE缓存,在IE中浏览该页面;
使用导航将文档浏览至最后;
抓取IE缓存中的内容;
材料已取好,分析开始。
三、 百度文库浏览器代码分析
一进来,刘姥姥进了大观园了,这个JavaScript脚本看得人脑袋那个大啊,这条路走起来挺艰难,换个思路吧;找个Flash反编译工具,反编译一下,取出来ActionScript,这个好歹还有个分行短句啊,总算还是个代码。
整理整理代码的层次结构,按照包组织一下,大致能确认应该在baidu这个文件夹吧;再看看,lib大致是用于json处理的;ui是用于用户自定义控件;iknow就应该是程序入口吧,按照一般程序要的思路先找一找main吧,果然还真有一个main类,有意思。
下面这几句代码大概就是与外部进行参数交换的吧:
var _loc_2:* = _loc_1["docurl"] || “http://jx-iknow-test15.jx.baidu.com:8960/play”;
var _loc_3:* = _loc_1["docid"] || “c881e53a580216fc700afd05″;
var _loc_4:* = int(_loc_1["fpn"]) || 2;
var _loc_5:* = int(_loc_1["npn"]) || 5;
this._reader.fpn = _loc_4;
this._reader.npn = _loc_5;
this._reader.docURL = _loc_2.replace(/(//)+$/, “”) + “/” + _loc_3 + “?”;
如此以来就可以查找docurl、docid、fpn、npn这几个参数了,在JavaScript或者json中应该有体现的。
在看一看Reader类,再看看DocViewer类大致就知道了百度的FlashPaper的Reader的原理了。
if (this._firstPagesNum == -1)
{
tmpURL = this._docURL + “pn=” + (this._pagesLoaded + 1) + “&rn=” + this._normalPageNum;
}
else
{
tmpURL = this._docURL + “pn=1&rn=” + this._firstPagesNum;
this._firstPagesNum = -1;
}
var binaryRequest:* = new URLRequest(tmpURL);
binaryLoader.load(binaryRequest);
这就是Reader获取FlashPaper资源文件了;
binaryLoader.addEventListener(ProgressEvent.PROGRESS, this.binaryLoading);
binaryLoader.addEventListener(Event.COMPLETE, this.binaryLoadComplete);
binaryLoader.addEventListener(IOErrorEvent.IO_ERROR, this.binaryLoadError);
这个就是定义的装载进度、装载完成、装载失败的几个事件响应了;
this._delayPreLoadID = setInterval(this.preLoad, 1000, _loc_3);
这个是用于预装载的动作,实现边查看边下载其他片段的。
四、 百度文库浏览器参数分析
根据以上代码片段就可以知道百度FlashPaper Reader的工作原理了,在初始化时根据JavaScript的参数装载FlashPaper片段,使用docurl指定路径(可以是相对路径,可以是绝对路径),使用docid指定文档的GUID,fpn指定文档起始序号,rn指定文档片段的页数;根据百度文档内部的定义应该是将文档以5页或者10页进行组织,所以fpn=5*X+1;rn=5||10。
五、 百度文库浏览器外部调用分析
回过头在看客户端调用的JavaScript代码就有针对性了,不用头大了;先看一看html页的代码吧,打开 “9daa5522aaea998fcc220e73.html”页面,看一看里面的代码,看看有不有对应的参数,您别说还真就有,不管咋说吧,代码有点阅读困难,好在只定位于使用这段代码,咱改改参数用用,其他的就不深入研究了。
function Reader(){
function B(){
if(baidu.swf.getVersion()){
return true
}else{
_id.innerHTML=’
文档预览需要最新版本的Flash Player支持。
您尚未安装或版本过低,建议您:

’; return false
}
}
this.create=function(D,C){
baidu.swf.create({
id:”reader”,
width:”717″,
height:”700″,
ver:”9.0.0″,
errorMessage:”Please download the newest flash player.”,
url:”/static/flash/reader.swf“,
bgColor:”#FFFFFF”,
wmode:”window”,
allowfullscreen:”true”,
vars:{
docurl:”/play”,
docid:”9daa5522aaea998fcc220e73 “,//貌似这就是id了
fpn:”5″,
npn:”5″
}
},D);A(D)};
function A(C){
baidu.on(C,”mousewheel”,function(D){
var F=D.wheelDelta;
var E=-3;
if(F<0){
E=3
}
baidu.swf.getMovie(“reader”).NS_IK_doMouseWheel(E);
baidu.preventDefault(D)
});
if(window.addEventListener){
baidu.G(C).addEventListener(“DOMMouseScroll”,function(D){
var F=D.detail;
var E=-3;
if(F>0){
E=3
}
baidu.swf.getMovie(“reader”).NS_IK_doMouseWheel(E);
baidu.preventDefault(D)},false)
}}}
var DOC_INFO={
doc_id:”9daa5522aaea998fcc220e73″,
cid:”134“,
price:”0″,
value_average:”7″
};
var _reader=new Reader();
_reader.create(“readerContainer”,”9daa5522aaea998fcc220e73″);
baidu.each(
["selfChangeCategory","adminChangeCategory","selfChangePrice"],function(B,A){
baidu.on(B,”click”,function(C){
login.check(baidu.proxy(view.changeDocInfo,B));
baidu.preventDefault(C)})});
baidu.on(“addToStore”,”click”,function(A){
window.open(“http://cang.baidu.com/do /add?it=”+encodeURIComponent(document.title)+”& iu=”+encodeURIComponent(location.href)+”&tn=文库&fr=wk#nw=1″ ,”_s”,”scrollbars=no,width=600,height=450,right=75,top=20,status=no,resizable=yes”);
pop.show(“提示”,{
url:”/static/html/empty.html“,
width:420,
height:250
});
document.AddToStore.submit();
baidu.preventDefault(A)
});
baidu.each(["downloadTop","downloadButton"],function(A){
baidu.on(A,”click”,function(B){
log.send(“down”,”download”,{fr:”down”});
login.check(view.download);
baidu.preventDefault(B)
})});
var rate=new Rate(“rateContainer”);
rate.create(“7″);
if(G(“kw”)){G(“kw”).value=”"};
六、 百度文库现场取材实现
既然分析清楚了,下一步将百度文库的文件结构整清楚,然后放入对应的内容,稍微对静态代码进行一些调整;部署到根目录即可使用;
这里面有百度对FlashPaper文档swf的改造,暂且不说了,其实就是追加了一个json的文件头数据块,对咱们当前要就地取材实现而言没有任何障碍。
文档结构整理如下:
将文件都归到对应的文件夹下,既然百度对FlashPaper/FlexPaper对应的swf做了改造,那好就将swf文件改名为swfx吧。值得注意的是需要在IIS部署时增加MIME类型swfx为application/swfx;只是遗憾的是由于swfx当前还不能接受参数,所以不能进行动态加载缓存页面,不过没有关系,等下次使用URL ReWrite整个处理一下,一个真实的百度FlashReader就完成了。
我们的口号是,不求读懂百度文库里面的每一句代码,但求利用已有材料。
七、 百度文库DotNet模拟
敬请期待吧…
八、 制作自己的百度FlashPaper—swfx
未完待续…
从这里下载静态版本(未实现动态预装载)http://download.csdn.net/source/2137831

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多