flexPaper制作在线文库阅读器思路
哥在一个制造业上班,图纸管理是老大难。从去年年底开始,就一直在琢磨着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:\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.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
flexPaper制作在线文库阅读器思路相关推荐
- android 上下滚动文字_计算机毕设项目004之Android系统在线小说阅读器
计算机毕设项目004之Android系统在线小说阅读器 一. 项目名称 基于Android系统的在线小说阅读器 二. 项目简介 项目中的角色功能: 支持翻页动画:仿真翻页.覆盖翻页.上下滚动翻页等翻页 ...
- rss阅读器保存html文件,4款在线RSS阅读器使用体验
RSS阅读有以下优点:您可以看到没有广告和图片的标题或文章的概要阅读,这样你不必阅读全文即可知文章讲的一个意思是什么,为您节省时间. RSS阅读器会自动更新你定制的网站内容,保持新闻的及时性.要订阅新 ...
- 基于ASP.NET AJAX技术开发在线RSS阅读器(下篇)
五.逻辑层设计 (一)添加RSS频道 在展开真正的逻辑层设计之前,先让我们简单地浏览一下下面的草图4.图4展示了我对于两个重要ASP.NET AJAX客户端控件-ListView和DataSource ...
- InoReader—— 轻便快捷的在线 RSS 阅读器
致鲜果RSS阅读器用户 各位鲜果RSS阅读器用户,很遗憾的通知大家,鲜果团队将在2014年12月12日关闭RSS订阅服务.感谢大家长期以来的支持,希望大家理解我们的这一决定. --题记 图 ...
- 微信小程序|基于小程序+C#制作一个电子书阅读器
文章目录 一.文章前言 二.开发流程 2.1.开发工具 2.2.页面实现 2.3.数据库设计 2.4.API实现 一.文章前言 书籍是人类进步的阶梯,各位小伙伴在使用市面上各类阅读器进行阅读的时候是否 ...
- ios 分段 判断 小说阅读器_还在用别的小说阅读器?今天教你用Python制作简易小说阅读器!...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进阶者 /前言/ 不知从什么时候开始.小说 ...
- python写小说阅读器_手把手教你用Python制作简易小说阅读器
/前言/ 不知从什么时候开始.小说开始掀起了一股浪潮,它让我们平日里的生活不在枯燥乏味,很多我们做不到的事情在小说里都能轻易实现. 今天我们要做的就是一个小说阅读器了,一个可以将你的文章中的字每隔多少 ...
- python代码阅读器_还在用别的小说阅读器?今天教你用Python制作简易小说阅读器!...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进阶者 /前言/ 不知从什么时候开始.小说 ...
- android 阅读器放大镜,制作安卓PDF阅读器:四、实现文本选择之放大镜、长按拖动...
看到一篇知乎上的文章,<这可能是最好用的一款 PDF 阅读.批注工具~如果他称第二,没人敢称第一!>,看了后下载试用,还好.单就触屏体验而言,没他说的那么好听. 这类国产APP的门面都是非 ...
- Python 制作《小说阅读器》,源码及打包程序
小说阅读器的用户界面部分代码: # -*- coding: utf-8 -*-from tkinter import * from tkinter import filedialog import o ...
最新文章
- N个免费DevOps开源工具,没用过,至少应该了解!
- python词云cannot open resource_centos flask验证码pil提示OSError: cannot open resource,问题解决方法...
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之12.Servlet基础(2)
- CF思维联系–CodeForces - 222 C Reducing Fractions(数学+有技巧的枚举)
- ASP.NET Core模块化前后端分离快速开发框架介绍
- 利用memcached实现CAS单点登录集群部署
- 程序员该如何转型 5G 开发?
- ubuntu 打开ssh登陆_Ubuntu开启SSH远程登录
- 二分查找-----非递归方式
- 盲盒商城app开发需要具备哪些核心功能,盲盒商城app源码成品分享
- 关于8266WiFi模块(AT)问题分析与解答(单片机和wifi模块连接)
- SpringBoot 错误:Field userService in com.lyh.Controller.UserController required a bean of...
- 蓝桥杯练习题之数列特征
- 基于区块链的去中心化存储(区块链存储)的工作流程
- Ubuntu下安装NS3
- 纳米孔Nanopore-16S数据分析学习笔记
- 2021年中国定制家具行业现状分析:“量身定制”需求逐年增加[图]
- 算法 - 多目标优化的注意点及常用方法概述
- (附源码)ssm基于SSM的南昌旅游网站管理系统设计与实现 毕业设计 101407
- MP3播放机解码芯片大全