在线文档论文范文
在线文档论文范文(精选8篇)
在线文档论文 第1篇
目前大部分在线知识管理系统都采用eWebEditor、FCKeditor等web编辑器进行在线编辑文档, 但是这些编辑器在编辑表格、图片时会存在格式错乱等问题, 根本无法与Word、Excel、Power Point等office软件相比, 用户日常办公更习惯用office软件办公;随着互联网的盛行, 文档存在个人电脑上在共享性、安全性、方便性等问题上已经满足不了用户的需要;互联网上推出的网络硬盘将越来越被用户所接受, 但是现在存放在网络上的文档, 一般都需要下载到本地电脑, 然后用对应的软件打开才能浏览查看, 真的挺不方便。
近年来随着"百度文库"、"豆丁网"等网络在线文档库的逐渐壮大, 越来越多地网友不断地贡献出自己日常积累的文档供大家分享, 结合这些成熟系统设计出了一套简易、实用的"在线文档库"系统, 它除了存储、分享积累下来的知识外, 无需下载浏览 (或在线浏览文档) 将是它的一个亮点和创新;
FlexPaper是一个被设计用来与PDF2SWF一起使用, 开源轻量级的在浏览器上显示各种文档的组件。它的工作原理是先用openOffice把ppt、word、excel、txt等ms office格式文档转换成pdf, 然后用swftools转换成swf, 最后通过FlexPaper实现在线播放;而这个过程并无需在客户端安装WORD、PDF等office办公软件环境的支持。
2、系统规划
2.1 系统设计目标
参考"百度文库"、"豆丁网"等网络在线文档库, 本文将设计出了一套简易、实用的"在线文档库"系统, 重点实现以下目标:
·Office公办文档的在线存储, 类似网络硬盘
·Office公办文档的在线浏览, 无需下载和用对应软件打开浏览
·引入积分机制, 激励用户主动分享经验
·实时的文档统计, 方便监控系统的使用情况
·系统操作简单、实用, 让每个用户无需培训就可以使用系统
2.2 系统总体规划
在落实系统的需求调研和可行性方案后, 将设计"在线文档库"总体结构方案, 并确定系统开发设计的次序及时间安排。可分为以下几个步骤:
(1) 分析系统的业务活动, 整理业务流程及数据流程;
(2) 根据业务流程及数据流程, 确定属于系统业务处理的范围;
(3) 分析业务流程及数据流程所涉及的数据, 确定数据库及其数据表;
(4) 确定系统概要设计、详细设计框架;
(5) 进行系统程序设计及测试。
3. 系统设计
3.1 系统网络拓扑结构
3.2 系统软件架构和功能结构
3.3 系统主要技术
本项目基于B/S架构, 采用java语言开发, jdk1.5版本, 满足J2EE开发规范;开发框架为Spring2.0+Struts1.2+Hibernate3.2;由Spring来实现服务的配置、依赖注入和事务管理, Struts实现请求的控制调度, Hibernate作为持久层的框架, Oracle10g作为数据库, tomcat5.5为应用服务器
系统用Lucene实现基于Java的全文索引引擎, 而不是基于简单的数据库模糊查询或基于oracle全文搜索;用FlexPaper与PDF2SWF一起使用, 实现在浏览器上显示各种格式的文档, 它的原理是先用openOffice软件把doc、ppt、xls、txt等格式文档转换为PDF格式, 然后使用开源的SwfTools将PDF转成SWF格式文件, 最后用FlexPaper加载swf文件。
4、数据库概念设计
数据库的概念结构设计是根据用户需求设计的概念数据模型, 它是从用户角度看到的数据库, 可用E-R模型表示, 部分E-R图如下:
5. 系统实现
5.1 系统主程序流程
5.2 上传文档
上传文档是系统的核心功能, 也是本系统的难点;文档上传到数据库后, 最难的是要在系统中直接查看浏览PDF、DOC、PPT、XLS、TXT等Office格式的文档;通过前期的调查, 可使用FlexPaper组件加载显示Office文档, 不过FlexPaper只识别swf格式, 所以得把Office文档进行格式转换;目前的思路是用openOffice软件把上传的Office文档转为pdf格式, 然后再用swftools软件把pdf格式文档转为FlexPaper可识别的swf格式。
设计注意要点:
1.文档上传:用户登录系统后才能上传文档, 每次只上传一个文档就好, 对文档上传的格式要限制, 只能上传PDF、DOC、PPT、XLS、TXT格式;文档上传成功后, 保存到doc_info表中, 同时往文档格式转换工单表doc_format_order增加一条待转换工单记录, 其status为0表待转换;另外还要往文档索引工单表doc_index_oder增加一条索引工单记录, 等待创建索引完后才可以进行文档搜索
2.文档转换为pdf格式:文档转换由系统后台独立线程来定时轮循完成的, 与文档上传分开, 这样做的目的是避免用户等待, 毕竟转换文档是需要时间的。实现思路是每次从doc_format_order表中取出status状态为0的最早一条记录进入转换, 其它文档继续处于等待状态;转换开始, 先调用PDF格式转换接口, 同时把该记录的状态更新为1 (表示pdf转换开始) 和更新format_pdf_begin_time时间为当前时间, 转换成功后状态更新为2 (表示pdf转换结束) 、更新format_pdf_end_time时间为当前时间
3.pdf格式转换为swf格式:文档转换由系统后台独立线程来定时轮循完成的, 与转换pdf格式分开, 这样做的目的是避免等待和相互影响。实现思路是每次从doc_format_order表中取出status状态为2的最早一条记录进入转换, 其它文档继续处于等待状态;转换开始, 先调用SWF格式转换接口, 同时把该记录的状态更新为3 (表示swf转换开始) 和更新format_swf_begin_time时间为当前时间, 转换成功后状态更新为4 (表示swf转换结束) 、更新format_swf_end_time时间为当前时间和存储swf内容到swf_content字段中;另外, 考虑到系统性能和存储空间, 其实就可以把转换成功即status为4的记录删除了, 没删除只是用来监控和跟踪测试用
4.FlexPaper组件设计:FlexPaper组件是用来显示成功转换为swf格式的文档, 通过FlexPaper用户就可以实现在线浏览文档了;本系统的FlexPaper组件是由Adobe Flex Builder3实现的富Internet应用, 包含查看内容和内部搜索、显示页数等功能
6、重点、难点问题及其分析
6.1 文档格式转换
本系统用FlexPaper与PDF2SWF一起使用, 实现在浏览器上显示各种格式的文档, 它的原理是先用openOffice软件把doc、ppt、xls、txt等格式文档转换为PDF格式, 然后使用开源的Swf Tools软件将PDF转成SWF格式文件, 最后用FlexPaper加载swf文件实现office文档的在线浏览。大致代码如下:
参考文献
[1]埃克尔著, 陈昊鹏译Java编程思想 (第4版) 机械工业出版社2007.6
[2]龙利著, 张立浩, 尹志军译Oracle Database 10g完全参考手册清华大学出版社2006.9
在线文档论文 第2篇
一、 的优点在于其上传文档的权重高,易被收录,并且浏览量多,下载量大!作为中国最大搜索引擎的百度的产品。 这个平台推广一旦做出成效,效果 是显而易见的!但是因为, 自己问世以来,时至今天,其审核规则已经非常严格,而要在文档中填加链接更是难上加难!更何况 中上传 的资料不允许出现锚文本(改变文本字体淹死大小的不算)。在 做时,一定要选择质量高的文档,不能想着以量取胜,而是注重质量,而且不能有太明显的 广告!比如上传一篇矿山机械方面的资料,可以加上中国矿山机械网的链接,但是衔接一定要自然,不能让审查者看出广告的存在!
二、 豆丁网文库的的审核比较宽松,这就意味着可以上传更多的文档!只有高质量的上传的文档才能被百度收录,很多文档是不被收录的!但是豆丁网的浏览量很大,对 推广有很大效果,可以实现数量的积累,达到一个规模效应!比如推广中国矿山机械网时,当在豆丁网文库搜索页面中的机械关键词全是有中国矿山机械网时,这样 的推广效果将是巨大的!
三、 新浪爱问资料共享平台是一个比较特殊的平台,因为它之能下载下来看,不能在线浏览,所以它的下载量很高,传播很快!但是上面所传的文档不能被搜索引擎收 录!但是不同的是爱问资料上传的每一个信息都可以同步到 ,这样将会增加信息的传播速度,再相上不能在线浏览,其较高的下载量则成为推广者喜欢的一 个在线文档推广方式的平台!
每一个平台都有他们各自的特点,当然面对的对象也有所不同!综合运用这些平台才能最大效果的增加在线文档推广的效果,
在线文档论文 第3篇
一、如何正常访问Google Docs?
目前Google Docs服务器已经转移到国外,在国内无法访问,对于众多的Google Docs铁杆粉丝来说,想不翻墙正常访问Google Docs,可以这样操作:
Step01到http://testahcl.ys168.com/,进入“工具软件”目录下载一个H1.txt文件;
Step02在Win7中启动记事本,点“文件/打开”菜单,选择“所有文件(*.*)”文件类型(图1),打开C:WINDOWSsystem32driversetc目录中的hosts文件;
Step03现在用记事本打开H1.txt文件,复制H1.txt中的所有内容,将之添加到hosts文件末尾,最后保存hosts退出,至此不翻墙也能正常访问Google Docs了,现在去http://docs.google.com/创建一个Google Docs帐号,以便以后使用Google Docs。
注意:以上添加后的hosts文件如果无法保存,你可以先将该文件复制到D盘,然后用记事本打开D盘上的这个hosts,将H1.txt中的所有内容都添加到hosts文件末尾,保存hosts退出记事本;最后将C:WINDOWSsystem32driversetc中的hosts文件改名为hosts8,再将D盘上的hosts复制到C:WINDOWSsystem32driversetc目录中即可。
二、Office中也能处理Google Docs在线文档
OffiSync是免费的Microsoft Office第三方插件,支持Office 2010/2007/2003,安装了该插件后,你的Microsoft Office就能处理Google Docs在线文档了,具体方法如下:
Step01启动浏览器到http://dl.pconline.com.cn/download/57331-1.html下载OffiSync;
Step02下载完毕,点击OffiSync.exe开始在线安装,运行OffiSync前需要先安装.net framework 3.5,因此如果你的系统中没有,安装程序会首先安装当前系统匹配的Microsoft .NET Framework等组件,按Accept(图2)开始下载安装这些组件,由于安装时要在线下载程序包,安装时间会稍长;
Step03安装完毕,OffiSync会在Microsoft Office 2010/2007中以Ribbon界面出现,在Office 2003中则以传统的菜单形式出现,例如开启Word2003,你会发现新增了一个OffiSync菜单(图3),工具栏上也新增一排OffiSync按钮;
Step04现在点击OffiSync菜单中的Open,准备打开Google Docs中的一个在线文档,首次 操作时会出现OffiSync对话框,在User/Email及Password中分别输入你的Google账户用户名和密码(图4),勾选“Remember my password”后,按下OK登陆;
Step05接下来弹出Open Document对话框,点击展开左侧的Google Docs,右侧窗口中就会自动载入Google Docs在线文档列表,注意OffiSync只显示当前Office组件能打开的那类文档,例如在Word中只会列出在线DOC文档(图5),然后你就能像操作本地文档一样打开远方的Google Docs在线文档,只要选中要编辑的那个文档,点击“Open”按钮,在Office中即可打开该在线文档进行编辑,编辑完成后,点击“Save”保存,系统会自动更新远程Google Docs文档为最新的修订版本;
Step06除了让Office能编辑Google Docs在线文档,OffiSync还能将Office文档保存到Google Docs,例如在Word中点击菜单“文件/新建”新建一个空白文档,输入并编辑该文档,编辑完毕点击OffiSync菜单中的“Save”或者“Save As”即可将之保存到Google Docs中,随之会弹出Save Document对话框,点击展开左侧的Google Docs,再点下面的Home,右侧会自动载入Google Docs在线文档列表,在“Document name”中键入要上传的文档名称(图6),点Advanced/Add还能输入协作者的电子邮件,设置哪些人可以读或编辑该共享文档,如要在Google Docs以Office原文档格式保存,就勾选“Kepp as Office file Format”,设置完毕点Save即可上传到Google Docs中保存了;
Step07此外OffiSync还能管理Google Docs目录和文件,当你用OffiSync打开Google Docs在线文档时,点击展开左侧的Google Docs,点下面的Home,右侧窗口中会自动载入Google Docs在线文档列表,如果此时你右击Home就会弹出一个菜单,点击New Folder、Delete Folder菜单项(图7)能在Google Docs中新建或删除文件夹,右击列表中的在线文档名,点Delete File菜单还能删除该在线文档;
Step08 OffiSync还能搜索Google Docs在线文档,当你用OffiSync打开Google Docs在线文档时,在Open Document对话框中输入关键词,点击“Search”按钮进入搜索对话框,不仅能标题搜索,还能进行文档正文内容搜索;OffiSync也支持多帐号管理,在Microsoft Office中点击菜单“OffiSync→Setting→Accounts”可以添加多个帐号,假如多人共用一台电脑,建议不要使用多帐号管理,因为该功能启用后,这台电脑上的用户可以任意打开别人帐号中的文档,你的文档没有私密性,对任何人都公开了!
在线生成Word文档的实现与应用 第4篇
关键词:在线文档生成,B/S架构,COM组件,JACOB开源项目
1 概述
1.1 在线生成Word文档应用实例
所谓在线生成Word文档就是在网页上控制Word文档的生成, 而生成后的Word文档经过下载后即可作为本地Word文档, 访问者可以直接编辑和打印文档;而相比之下, 大多数情况下, 由于网页结构的复杂性 (例如DIV、IFRAME等组件的嵌套) , 访问者无法实现直接对网页内容进行打印, 或者将网页内容转换到本地Word文档。
在线生成Word文档实际上是办公需求 (办公文档处理) 与B/S应用 (门户网站等) 的结合, 其既可实现B/S应用下的共享方式, 又延续了处理办公文档的习惯。
图1和图2分别是在线生成Word的网页内容和生成Word后的网页效果。
通过将图2与图1对比可知, 在线生成的Word文档内容与网页同步, 且格式和排版已经制定, 用户无需再花费过多精力进行文档的处理, 因此提高了文档处理的效率。
1.2 实现要点
实际上, 在线生成Word文档在内容展现形式上结合了B S架构特性 (例如:基于HTTP的内容推送、OLE对象的嵌入) , 而其后台处理类似开发者熟知的单机应用, 其实质上还是对Office COM组件的应用。
通过Office COM组件, 开发者可以方便地对Office文档进行操作, 例如:新建、保存、另存为、选取文本块、插入文本等。使用Office COM组件即可实现Word文档的生成。而要实现文档的在线生成, 一则需要B/S服务端后台使用Office COM组件, 另则需要有数据源支撑所生成文档的内容的动态性。在线Word文档生成示意如图3所示。
图3中, Web服务端采用的是J2EE平台, 则其数据源提取将会采用JDBC方式。由此可见, 在线生成Word文档的关键点:Word程序COM组件应用、文档内容提供和页面交互。
1.2.1 Word程序COM组件
Word程序COM组件是生成Word文档的核心, 而对于COM组件的应用, 大多数开发者的开发环境恐怕还是以微软公司的VS或宝兰公司的C++Builder或Delphi开发环境为主。对于Java开发者, 接触COM组件的机会显然要比C++程序员要少得多。那么如何让Java程序员用上Word程序的COM组件呢?
鉴于数量庞大的Java程序员和Office用户群体, 该问题很快得到了较好地解决, 一个叫JACOB (JAVA-COM Bridge) 的开源项目提供了桥接Java到COM组件的库, Java程序员可以借助该库来调用COM组件。表1中是该库中重要类的及说明。
需要注意的是, JACOB通过Java本地化接口 (JNI) 的方式来实现Java到COM的桥接, 所以其部署时还需要同时分发本地库 (动态链接库, 即DLL文件) 。
1.2.2 文档内容
结合笔记的开发经验, 文档内容的提供可分为两个部分:第一是文档模板;第二是后台数据。
(1) 文档模板
文档模板可以理解为文档中模式相对固定的内容, 例如:页眉、标题以及内容标签, 如图4所示的就是本案例中的文档模板。
在图4中的模板中, 文档的标题文字和表格的头部都是固定内容, 而表格的单元格采用的是描述内容的标签, 其格式为:[%=RS (数据集ID, 行号, 列号) %], 这些标签最终将要被实际数据所替换。
(2) 后台数据
后台数据即从数据库中所获取的内容, JSP页面从数据库获取数据后, 利用Word程序COM组件的替换方法将后台数据替换文档模板中的标签。
1.2.3 页面交互
JSP页面中, 前端传给后端的内容主要是文档模板编号, 即替换哪个文档模板;后端推送给前端的内容主要是生成后的文档。
2 设计过程
2.1 实现思路
在线生成Word文档应用的大致思路如下:
(1) 编制文档模板, 定义模板中标签内容与后台数据项的对应关系 (示例中采用的是数据集的行列对应) 。
(2) 当用户点击在线生成Word时, JSP页面前端将文档模板编号传入后端。
(3) 服务端后端程序按照文档模板编号获取对应的数据源ID列表, 再按照各个数据源通过JDBC方式获取数据集。
(4) 服务端后端程序按照文档模板编号通过Word程序COM组件的读取文档模板并遍历其中需要替换的内容标签, 并使用标签对应的后台数据替换标签文本。
(5) 服务端后台程序将处理完毕的文档模板另存为Word文档。
(6) JSP页面将保存的Word文档路径通过HTML链接推送给前端页面。
(7) 用户通过点击HTML链接来下载或使用浏览器打开Word文档。
2.2 主要类设计
2.2.1 文档生成器DocBuilder
顾名思义, 文档生成器主要用于在后台生成Word文档。其实现2.1节中第 (3) 到 (5) 的功能。其关键成员有3个:
(1) 文档模板ID, 用于接收JSP页面传过来的文档模板标识。
(2) Word文档工具, 用于获取文档模板中的所有需要替换的文本标签、使用后台数据替换文本标签和将替换后的文档另存为新的Word文档。
(3) 数据集容器, 其是一个以数据集名为键的散列表容器, 其元素值是一个二维数组, 用于存放结果集的单元值。
2.2.2 Word工具类MsWordUtil
Word工具类是在JACOB的基础上对Word COM对象的操作所进行的再次封装, 其以单例的形式提供了对Word文档的操控, 其主要包括:
(1) 建立/断开与Word程序COM组件的连接。
(2) 文档操作, 包括:新建、保存、另存和关闭。
(3) 获取文档中所有指定左右标签的文本块。
(4) 使用新文本替换文档中所有旧文本。
2.2.3 标签解析器TagParser
标签解析器用于解析文档模板中文本标签内的文本, 如图4所示的文档模板中, 表格单元格中处于左右标签“[%”和“%]”内的文本:“=RS (数据集ID, 行号, 列号) ”。
每解析一个文本标签即可检索其对应的后台数据, 并进行文本替换, 例如将标签“[%=RS (1, 0, 1) %]”替换成结果集1中第1行第2列的列值“张三”。
2.2.4 Web端生成在线文档的桩模块stub.jsp
该JSP页面用于接收前端页面传递的文档模板参数, 并调用后台的文档生成器来生成目标Word文档, 并以HTML链接的方式将目标文档的URL推送到前端页面。
2.3 数据库设计
案例中使用的是Oracle数据库, 其中示例数据表是员工表 (TAB_STAFF) , 其结构定义如表2所示。
3 开发过程
3.1 Web端在线文档生成桩模块
3.1.1 在线文档生成桩模块头部定义
在线文档生成的桩模块是JSP页面, 其需要调用后台的文档生成器对象, 所以需要在JSP头部对所包含的库进行定义, JSP页面的头部定义如代码1所示。
需要注意的是, 包含代码1中“foolstudio.bi”包的Jar文档需要分发在当前域的“WEB-INFlib”文件夹中, 另外JACOB相关的库文件也必须分发在该文件夹中。
3.1.2 在线文档生成桩模块的主体
代码2中是在线文档生成桩模块的主体代码, 其中主要是调用后台的文档生成器对象, 生成目标文档, 并将其URL推送到前端页面。
3.2 文档生成器
3.2.1 配置文件
代码3是文档生成器所依赖的配置文件, 其中定义了数据库的连接信息、文档模板与数据源的对应关系和数据源的定义。
3.2.2 文档生成器初始化
代码4是文档生成器初始化代码, 其主要内容是根据文档模板获取对应的数据源列表, 并将所有数据源中的数据读出并存放到数据集容器中。
代码4中, 存放结果集的容器是一个以结果集名为键, 以二维数组为值的散列容器, 主要是考虑到一个文档模板中可能包含多个结果集。
3.2.3 初始化结果集容器
初始化结果集容器主要内容是根据数据源的定义从后台数据库中提取数据并填充到结果集容器中, 代码5是初始化结果集容器的主要代码。
代码5中, 文档解析器分割指定文档模板所对应的数据源列表, 然后逐一读取数据源中的记录行, 最后将单个结果集存入到结果集容器中。
这种首先将所有数据源的数据加载到内存的方式可能会对系统内存的占用造成一定的压力, 但是对于后面的数据检索而言, 会显著提高检索效率。对于此处需要开发者按照实际的情况进行权衡。
3.2.4 另存文档
结果集容器初始化之后, 要做的就是从文档模板中读取所有需要替换的标签文本, 并一一与容器中的数据项进行对应, 继而进行替换, 追回将替换完毕的文档另存为新的Word文档。代码6是另存Word文档的主要代码。
3.2.5 替换标签文本
3.3 Word工具类
Word工具类是操控Word文档的核心代码, 限于篇幅, 代码8中只列举其部分代码。
3.4 解析文档模板标签文本
代码9是代码6中解析文档模板中标签文本的关键代码。
代码9中, 为解析结果包含3项内容, 其第一项为数据源标识, 第二项为行号, 第三项为列号。该标签文本由开发者进行定义, 可以对项的数量和内容进行扩充。
4 结语
在线生成Word文档实际上是办公需求 (办公文档处理) 与B/S应用 (门户网站等) 的结合, 其既可实现B/S应用下的共享方式, 又延续了处理办公文档的习惯。
在文中, 一方面巧妙地使用了Java到COM组件的桥接库, 方便地解决了在Java平台操纵COM组件的困难;另一方面, 使用Word COM组件, 实现了将Word文档的操控发挥得淋漓尽致 (包括:全文检索和全文替换等) , 使得案例的实用性增色不少。
在线文档论文 第5篇
关键词:DOC文档,PDF文档,SWF格式,FlexPaper组件,在线文档显示
1 引言
最近我院在国家中职教育改革发展示范学校建设中, 学院网站经常需要发布超大容量的佐证材料与申报材料。这些材料基本上为图文、表格混排的Word文档或PPT文档, 根本不能通过网站后台管理程序直接发布并以网页的形式显示出来。为此, 通过查阅网络上的相关资料, 用SWFtools工具+Flex Paper组件实现了文档在线显示功能 , 基本上达到了把这些材料通过网站以网页形式显示的效果 (学院网站为ASP源代码)。如图1所示。
2 思路
(1) 通过Word2007或Power Point2007软件将 .doc或 .PPT格式文档转换成PDF格式文档; (2) 使用SWFtools工具将PDF格式文档转换成SWF格式文档 ; (3) 最后用Flex Pape组件来显示器SWF格式文档, 即可达到在线显示文档效果。重点介绍通过SWFtools工具和Flex Paper组件来实现在线显示文档功能的方法。
3 实现
3.1 SWFtools 工具
SWFtools是一个SWF处理、转换的开源工具。 它的功能主要体现 在 ( 1) SWF抽取、合 并、解析 、读写 ;( 2)将.PDF、 .jpeg、 .png、 .avi、 .ttf、 .wav等格式文件转换成SWF。它采用GPL开源协议, 即源代码开放并可以对它进行修改并免费使用。
3.2 Flex Paper 组件
Flex Paper是由新西 兰的Devaldi公司开发 的在线浏览 .DOC、 .PPT、 .PDFt等格式文档的组件, 它采用的也是GPL开源协议。Flex Paper的版本有很多种, 用得多的主要是SWC版本和Flash版本。SWC版本为组件包, 使用SWC组件包需要导入工程包再调用, 使用过程较复杂; Flash版本可以单独执行, 里面有示例、JS文件和SWF文件, 使用这个版本很容易实现在线文档的显示, 采用的就是Flash版本。
3.3 SWFtools 的简单使用
下载并安装SWFtools后, 其使用方式主要有2种: 第1种为gpd2swf可视化窗口操作法。由于此工具为英文版, 方式操作过程较繁琐。建议采用第2种方式----pdf2swf命令法。为了便于管理, 已经在f盘建立两个文件夹: pdf文件夹和swf文件夹。pdf文件夹用来存放已经生成的.PDF格式文件, swf文件夹存放转换生成的swf格式文档。在使用SWFtools工具之前, 已经将图1效果图的paper.pdf文档存放在f:pdf文件夹中。
打开CMD, 进入SWFtools的安装目录, 输入并执行如下命令:
pdf2swf.exe -t f:pdfpaper.pdf -s flashversion=9 -o f:swfpaper.swf↙
执行情况如图2所示。
该命令行 的作用是 将paper.pdf文档生成 为paper.swf文档。此命令行中使用了SWFtools工具的3个最基本的参数:-t, -s, -o, 这3个参数的作用分别为 : “-t”参数用来指定要转换的.PDF文档路径和名称, “-o”参数是指定生成输出的SWF文件的路径和名称; “-s flashversion=9”参数用来设置SWF的版本为flash 9。若无此参数则浏览器在打开网页时只显示空白文档, 不显示文档内容, 说明SWF的版本没有设置, 转换后的SWF文档没有被Flex Paper正常加载。这里需要特别强调的一点是, pdf2swf.exe命令中的文件名、目录名, 不能带空格, 否则不能生成SWF文档。
3.4 Flex Paper 的简单使用
为了实现Flex Paper在Web页面上的 使用 , 下载一个Flash版本的Flex Paper, 版本为Flexpaper_1.5.1_flash。下载、解压后在该文件夹下自带有一个index.html示例文件, 该文件的关键源代码为:
用浏览器运行该文件, 浏览器一直处于加载状态而不会显示Paper.swf文档的内容, 产生这种情况的原因是Flex Paper还没有获得Adobe flash的信任, 这时要访问网址为:www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065的网站 , 打开Adobe flashPlayery设置管理器 , 选择“始终允许” , 点击“编辑多个位置”下拉按钮, 把Flex Paper_1.5.1_flash文件夹添加到信任列表中。如图3所示。
再次运行index.html文件, 即可看到浏览效果。
此时基本上完成了达到了在线显示文档的功能, 若在添加注释的位置将Paper.swf改成自己想要浏览的.swf文档即可。在以上的示例源代码中, 简单介绍一下几个主要参数的含义:
(1) Swf File : escape ('Paper.swf'): 加载运行的.swf文档 ;
( 2) <div style = " position:absolute;left:10px;top:10px;" > :用来设置div样式, 定位在线显示文档的相对位置。
( 3) <p id = " viewer Place Holder" style = " width:660pxheight:553px;display:block" >: 设置显示的窗口尺寸大小 ;
(4) Scale 0.6: 初始化显示窗口的缩放比例 , 参数值应该是大于零的整数, 以参数与窗口的width和height数值大小有关, 若width和height设置过小, 此参数无效;
(5) Zoom Time : 0.5: 设置缩放比例需要的时间 , 参数值应该为0或更大;
(6) Max Zoom Size 5/Min Zoom Size 0.2: 设置最大/最小的缩放比例;
(7) Zoom Interval 0.2: 设置缩放比例之间的时间间隔 , 默认值为0.1, 该值为正数;
( 8) locale Chain: 'en_US': 设置Flex Paper窗口的显 示文字 , 默认为英 文 , 若要改成 中文形式 , 将“en_US”改成“zh_CN”即可。
4 结语
在线文档论文 第6篇
1 虚拟打印技术简介
虚拟打印是通过虚拟打印驱动器 (Virtual Printer Driver, 简称VPD) 获取各种应用程序的打印任务, 并将打印任务中的不同格式文件转换成统一的文件格式, 存储在计算机磁盘上, 由一种应用程序浏览, 这样便于实现瘦客户端设计, 降低应用系统的成本。应用程序执行打印功能的过程, 主要分3个阶段:
(1) 应用程序调用与硬件设备无关的Win32打印和GDI模块, 找到操作系统中的Winspool.dll和Gdi32.dll模块;
(2) 打印驱动结合GDI模块将数据流发送到Spooler模块;
(3) Spooler处理打印数据并将其发送到与目标打印机相连的端口驱动上, 转换成与打印设备要求格式一致的数据发送到打印设备。
2 文档在线浏览的实现
利用虚拟打印技术实现文档在线浏览主要包括两个部分:获取打印任务和格式转换。
打印任务是由应用程序产生并进行初始化的。在打印子系统中应用程序通过GDI调用GDI的绘制引擎, 绘制引擎在打印驱动文件的帮助下产生一个原始的打印任务, 包括打印数据文件, 同时结合打印驱动器提供的关于打印机的信息, 如打印机提供的打印解决方案、纸张大小等, 最终形成打印任务。
Render Plug-ins是由Microsoft提供的一组打印子系统功能回调函数, 通过这些回调函数可以在打印任务发送到打印系统的spooler模块之前截获打印任务。
Render Plug-ins中使用到的回调函数主要有:
BOOL APIENTRY OEMStart Doc:打印文档开始信息
BOOL APIENTRY OEMEnd Doc:打印文档结束信息
BOOL APIENTRY OEMStart Page:打印文档页开始信息
BOOL APIENTRY OEMStart Banding:打印文档页段开始信息
BOOL APIENTRY OEMNext Band:打印文档下一页段信息
获取打印任务后, 对打印任务中打印数据进行分析, 提取出打印文档页面信息并且保存打印结果。其中主要的过程包括: (1) 获取系统配置信息, 包括虚拟打印结果保存的文件类型、缩放比例以及存放的临时目录的位置路径等, 转换成SCII、位图等信息使用。 (2) 打印数据的重组。系统将每一页打印文档的数据划分成4个段 (Band) , 分段传输。在OEMStart Banding获得打印页数据段的开始信息, 循环调用OEMNext Band获得每一个页段的数据, 将数据段重新连接在一起就得到了完整的打印页的数据, 并将其转化为对应的打印元素。
由于系统执行打印任务时会重组打印数据, 所以进行虚拟格式转换时, 对应的打印元素的位置会与原文件不同, 这就需要固定的模板将打印元素按原位排列, 才能保证虚拟打印得到的文档满足以下条件:一是具有与纸张印刷等同的表现能力;二是能兼容各种数据文件格式统一;三是适合信息化需要, 灵活的界面尺寸缩放显示便于传播, 支持印刷输出和文字位置搜索。
3 利用FLASH脚本语言编写SWF模板文件
FLASH脚本是在传统的FLASH制作工具的基础之上, 使用恰当的动作、属性、函数或方法来控制影片的方法。FLASH脚本可以用来控制影片播放、编写动画特效、制作程序 (如音乐播放器) 、处理图像、做视频等, 生成的SWF格式文件可在任何浏览器中显示, 用户不需要安装任何插件或相应的阅读工具便可以直接浏览到原文。利用FLASH脚本语言制定一个模板, 使其能够实现文字位置检索、按比例缩放显示区域、打印等功能。
该SWF模板文件具有以下特点:
(1) 生成文档简单、快捷、准确, 直接通过原文档转换生成, 不需编辑校对;
(2) 文档不可篡改, 保证文档严肃性和完整性;
(3) 文档版式与原文打印输出的纸质效果完全一致, 原版原式, 完美地展现原文内容和格式;
(4) 文档阅读方便, 可以直接通过IE在线浏览, 或者下载阅读;
(5) 文档完全脱离开发的应用系统编辑排版软件环境, 不再受应用系统的约束, 可靠性、安全性更高;
(6) 转换后文档格式一般比原文件更小, 从而能够实现更快捷的传输、存储和管理。
虚拟打印机的安装操作简单, 只需要在服务器端通过在控制面板中选择添加打印机的方式来安装, 并将其设置为默认打印机即可。
同时在应用系统程序中写入调用代码, 当用户上传原文件到服务器时, 系统便可以自动检测文件, 将其转换为SWF格式文件在浏览器中显示。
4 结束语
本文对虚拟打印技术进行了研究, 建立了文件格式转换的SWF模板, 并对打印任务的获取以及格式转换的处理过程进行了分析。FLASH脚本和虚拟打印技术的结合, 为无纸化办公添加了新的电子文档表现形式。这种方法可以有效地保证文档的真实性、完整性和安全性, 在任何浏览器中均可显示, 能够加强我们文件的信息化管理。
摘要:虚拟打印是利用某种方式截获操作系统的打印任务, 将打印任务转换为图像文件并保存在指定目录的方法。利用FLASH脚本语言编辑的SWF格式文件可在任何浏览器中显示。本文展示了利用FLASH脚本语言与虚拟打印技术实现文档在线浏览的方法。用户不需要安装任何插件或相应的阅读工具便可以直接浏览到任何文件的原文。
在线文档论文 第7篇
1、在线HTML文本编辑器的基本功能
当前WEB应用系统中的在线文档编辑器主要完成如下功能:
(1) 文本格式化与排版。包括文字的输入;选定内容的复制、剪切、粘贴、查找、删除、清除格式、取消、重做;文本格式化如字体、字号、文字颜色、背景颜色、加粗、倾斜、下划线、删除线、上标、下标、项目符号等;文档排版如各种对齐方式、段落的缩进控制等。
(2) 多媒体对象的插入, 如插入图片、音乐、视频、FLASH影片、表情等。
(3) HTML元素对象的插入, 如插入超级链接、水平线、表格、文本框、下拉菜单、特殊字符、等等。
同时配合一些文档编辑辅助功能, 如预览、查看源代码、保存、打印等, 从而使得在线文本编辑能够完成几乎所有互联网信息的编辑与发布功能。
下文将针对文本基本格式化与多媒体对象的插入功能实现方法进行介绍, 以抛砖引玉。
2、基本实现方法和技术
2.1 在线HTML文本编辑器的基本构成
编辑器界面由编辑功能菜单与文档编辑区两部分构成。
(1) 编辑功能菜单包含各种编辑功能按钮, 可在主文档中 (如果主文档为HTMLEDIT.HTML) 利用表格或DIV层来控制其放置的位置。
(2) 文档编辑区利用内联框架IFrame构成 (这里假设IFrame名称为EditField) , 在内联框架中加载一空白编辑HTML文档 (这里假设该文档为Edit.html) 。
同时在主文档加载时, 用下面JS代码使得EditField处于可编辑状态:
在主界面中加入一个名为HiddenContent隐藏表单元素, 通过下面代码获取文档编辑区域中的内容便于传递给服务器进行存储:
2.2 编辑器中文本的格式化及插入HTML元素
下面通过设置选定文本为红色为例进行说明, 其基本步骤如下。
(1) 选定欲要格式化的文本:
(2) 判断选定区域的元素类型:
(3) 如果rangeType是Text (文本) , 则格式化:
由上可知, 格式化文本主要的方法是execCommand, 下面对其基本语法进行简单介绍:
execCommand方法通过指定sCmd为HTML元素 (例如CreateLink) 也可以向文档中插入各种HTML元素, 但是如果元素属性过于复杂, 可以使用下面介绍的插入多媒体对象的p a s t e HTML方法来实现。
2.3 插入多媒体对象
在新闻信息中, 除了文字外, 通常还包括图片、音频、FLASH、视频等多媒体信息。
(1) 在HTML文本编辑器中插入多媒体信息的主要步骤。
pasteHTML方法能够将指定的字符串 (通常是HTML格式化后的字符串) 插入或替换到指定的文档位置, 从而实现插入相应的HTML元素或对象。
(2) 不同对象的strObj字符串简化形式如下。
上述每个多媒体对象都可以利用标记给出其对应的控制参数, 从而定义其外观和播放形式, 实现个性化的界面设计。
2.4 HTML文档编辑器中内容的存储
当在编辑器中完成了整个文档的编辑后, 通常需要将该文档内容存储在应用系统的数据库中。通过下面代码获取在编辑器中文档的HTML代码:
最终完成整个在线文档编辑发布系统的实现。
3、结语
基于HTML的在线文档编辑器能够满足各种WEB系统信息发布的需求。本文介绍了在线编辑器实现所需的关键技术, 重点涉及到execCommand方法、pasteHTML方法的相关要点。在此基础上, 不必再依赖于第三方HTML文档编辑组件, 而设计和开发出针对于具体WEB应用系统的个性化信息发布模块。
参考文献
[1]David Flanagan著, 张铭泽, 译.JavaScript权威指南[M].机械工业出版社, 2006年6月.
[2]Simon Collison著.CSS基础教程[M].人民邮电出版社, 2007年9月.
[3]ckeditor[CP/OL].http://ckeditor.com/
[4]Microsoft Corporation.MSDN Library for Visual Studio2008[CP/DK].Microsoft Corporation, 2007.
[5]吴逸贤, 吴目诚.精彩JavaScript程序设计[M].科学出版社, 2002年6月.
在线文档论文 第8篇
在各种涉及电子文档的Web系统中,电子文档在线评阅及批注功能是一种重要的用户需求。然而现今阶段,各种Web系统对电子文档一般只提供阅读功能。少数拥有对在线批注功能提供支持的系统,一般要求用户提交基于在线编辑器的富文本,该富文本一般是属于HTML格式,无法支持Word、PDF等格式文档。此外,此类系统批注的实现一般是直接对富文本进行编辑,不支持手写、圈注等符合用户体验的批注模式。
为了实现电子文档在线手写批注的功能,不少系统和学者都采用了Active X控件的形式。[1]此类实现方式要求用户在浏览器上安装Active X控件或客户端,并且都是以Active X控件作为桥接,调用MS Word进行处理,需要用户本机安装MS Office等软件。此类实现方式的另一个问题是,系统虽然可以保留批注信息,但无法感知批注信息的内容。所有的批注结果最终以一个新的Word文档保存,如果第一位用户将所有的内容删除了,第二位用户则无法直接查看原始内容。此外,用户如果在Word文档中嵌入一些脚本,还可能导致安全问题出现。
为此,本文提出一种基于HTML5技术的在线评阅及批注功能的实现,支持手写、文本、圈注等批注模式,通过序列化后可以将批注痕迹上传到服务器并合成批注后的新文档。
相关技术
本文实现电子文档在线批注功能,涉及了HTML5、电子文档转换背景图片、批注组件序列化等技术。主要的核心技术为HTML5 Canvas画布、GUI事件机制、背景局部刷新和缓存机制。
1.HTML5 Canvas
HTML5为新一代的标准通用标记语言,其最大的优势是原生支持视频、音频,不使用Flash等插件就可以进行视频播放,大大提高了程序员的开发效率以及避免用户端安装第三方插件的过程。并且HTML5的规范更加清晰,对本地数据存储和对游戏互动提供了良好的支持,现阶段基于HTML5 Canvas的游戏越来越流行,支持在PC端以及手机端运行。
HTML5 Canvas画布标签是HTML5的一个新标签,通过它可使用Java Script进行2D图形的绘制。使用Canvas,可以使得浏览器原生支持游戏开发、图表制作、视频播放等功能。使用Canvas可以制作出非常绚丽的网页动画效果,而不需要第三方控件。
在HTML5中,与Canvas类似的标签还有SVG。与Canvas逐像素进行渲染的机制不同,SVG是基于XML标记语言描述的2D矢量图形语言,不依赖于分辨率并且支持事件处理机制,但对于游戏等图像密集的应用它并不适合。
由于手写批注的表现形式很难使用矢量语言进行描述,而且过于复杂或过多的描述语言会导致SVG效率下降,因此本文使用Canvas作为在线批注的实现基础。
2.事件机制
采用Canvas进行2D图像绘制,由于它是逐像素进行渲染,所以不支持事件处理机制。手写批注虽然是最贴近实际应用的一种批注模式,但是对于圈注、画线以及撰写评语等批注模式,如果不支持移动、缩放或者编辑功能,将会给实际的使用带来不便。由于HTML5正处于发展时期,目前还没有完善的用户界面类库可供使用,此外大多HTML5类库为游戏开发所用,属于重量级类库。因此,为了实现批注组件的移动、缩放和编辑事件处理,需要实现基于事件机制的编程框架。
在Java Script的事件机制中,首先为DOM对象添加事件处理函数,当触发的相应事件被捕获时,则执行事件处理函数。[2]在事件机制的运转过程中主要包括捕获和冒泡两个流程。以鼠标事件为例,如果鼠标指针停留在某个最外层DOM对象范围内,将被该DOM对象捕获,捕获过程还将一层一层向内分析鼠标指针是否位于子对象范围,搜集所有符合条件的对象。然后从最内层的对象开始往外冒泡,依次触发各个对象的事件处理函数。
由于Canvas本身属于DOM对象,我们可以在其上注册各类事件,然后在事件处理函数中模拟画布内组件的事件机制。对于画布内的所有批注信息,都以一个组件表示,组件包括该批注的长宽以及坐标属性。使用这些属性,可以判断当前鼠标指针位于哪一些组件之内,从而模拟Javscript的事件机制,模拟事件机制如图1所示。在实现时可以对组件树进行后序遍历找出被触发的组件,即后添加的子组件处于上层,当多个子组件符合条件时,优先选择最上层的组件。由于画布的遮挡作用,如果触发了内层的组件,外层组件一般不触发,如在当前整个画布处于手写模拟状态下,选择了文本组件,则只能移动文本组件,不能同时进行手写批注。所以最里层的组件后向外(上)冒泡,外层组件的事件处理函数实际上会马上返回。
实际实现时,还需要配合各种实际环境进行优化,如判断组件是否处于激活状态以便接收键盘事件。当鼠标按下时,还需要锁定被触发的组件只能是当前被按下的组件。否则在移动或缩放组件时,若鼠标移动过快离开组件范围,将会出现不可预测的结果。此外需要结合Javascript的call或apply函数模拟事件处理函数内部的this指针等机制。
拥有事件处理机制,所有的功能都将由对应的组件自身实现,添加相应的鼠标或键盘事件,极大地提高了程序的开发效率。
3.局部刷新和缓冲机制
由于Canvas画布是逐像素进行渲染,如果每次都重新绘制画布内的组件,刷新频率过高将极大地增加浏览的负担,过低将严重影响用户体验。在Canvas中,每个像素占用4个字节空间,遍历时间复杂度为O(n2)。如将普通的电子文档转换为图片后,单页尺寸一般是595×842像素,如果按每秒10帧计算,将会占用极大的浏览器资源。因此需要判断组件是否处于改变状态,如果状态不变则不重绘画布。但当组件过多,并且进行移动或缩放组件时,重绘画布效率会更低而频率会更高,因此,需要进行局部刷新或采用预先绘制的机制来优化效率。
针对当前激活文本、矩形、圆圈等组件,由于其处于整个画布之上,是最后被绘制到画布之上的,不管其如何被改变,背景都是不变的,因此可以保存背景提高绘制效率。不过画布尺寸较大,此方式仍旧会消耗一些资源。本文的优化策略是在激活组件绘制前,计算它的尺寸和位置,保存所相对应的部分背景区域。每一次改变组件时,只有先将原先所占用的部分背景区域还原,再进行组件绘制,才便于提高绘制效率。
对于手写组件,由于其覆盖整个背景区域,每一次绘制需要遍历整个背景区域,按上述方式绘制的效率不高。因此优化策略是将整个背景按网格划分成为一个个尺寸较小的块区域,重绘时只需要绘制其覆盖的块区域就好了。本系统还将智能计算改变的块区域,每次绘制最多只需要绘制4个块区域。优化后的方法在手写批注占用页面区域较多时,效率仍旧较低,本系统还使用离屏画布技术[3],对手写批注信息进行预先绘制。
如下页图2所示的三层架构,首先可假定电子文档的原始内容是不可变的,即背景不可变,那么将背景层和组件层分离,背景层使用普通DIV即可,可以在一定程度上提高效率。其次手写批注组件与其他组件(文本、形状)不同,本系统亦将其作为独立一层,直接使用上述的离屏画布作为中间层,将离屏变为不离屏。手写层由于不包括背景信息和其他组件,刷新时永远不需要重绘。添加或擦除手写批注,可以直接绘制在上面。
对于多页文档,采用IFrame包含进来,模拟滚动效果。从效率上考虑,本系统采用缓冲机制,并不会一次性加载所有的页面,每一次只加载当前页以及上下邻近两页。
4.其他
为了优化存储空间,对手写批注信息按块区域储存,没有被绘制的区域不保存信息,并且使用位操作将一个像素由4个字节表示降低到一个位表示,存储空间缩小为原先的三十二分之一。
批注痕迹的保存使用序列化技术,所有的组件都支持序列化和反序列化功能,序列化可以将组件转换为字符串,反序列化可以将字符串转换为组件。序列化主要采用JSON格式,对于字节数组则将其先转换为Base64字符串格式。
在服务器端,支持将原始文档和批注痕迹合成为新的电子文档。为了防止矢量图形转换为图像后失真,除开手写批注外,本系统并不是简单地将Canvas画布的图像截下作为水印添加到原始文档上去,而是在服务端进行反序列化,调用相应的类库进行矢量绘制。手写批注的图像质量也在服务端进行了相应的抗锯齿等优化。
功能实现
如图3所示,该电子文档在线批注系统实现了PDF报告在线批注的功能,其他格式的电子文档只需要在转换背景和合成新文档这两个步骤中,使用相应的开源类库进行处理即可。系统提供画笔功能,可以进行手写的批注功能,能够实现擦除的橡皮擦功能。并且提供了文字批注和矢量图形批等功能,可以撰写修改意见以及评语等。文本组件和矢量图形组件支持移动、缩放和编辑功能,基本满足了用户对在线文档进行批注的需求。
系统提供保存功能,可以将批改痕迹上传到服务器端,重载时可以恢复上一次批注的结果。也可以在服务端对原始文档和批注进行合成,并将文本、矢量组件转换为电子文档相应格式的矩形图形,保证电子文本的生成质量。此外可以保留历史的文本输入信息,避免了多次输入同样的信息。这对于批量修改作业,将极大地提高评改的效率,因为学生所犯的错误一般可以归为几大相似的类别。
结语
本文探讨了基于Canvas画布的事件机制的模拟实现以及背景局部刷新等技术,利用新一代HTML5技术,不需要借助第三方插件实现在浏览器进行电子文档在线评阅和手写批注功能,并对各种情况或细节进行深度的优化。本系统已经集成于在线学习系统Sakai平台之上,大大提高了学生作业的在线批阅效率,改进了教师的用户体验。本文未支持的批注组件,如带有箭头指向的文本框等,结合本文所探讨的机制可以很容易进行扩展,未来将对电子文档的批注功能作进一步的完善和改进。
摘要:针对现阶段各种Web系统对于电子文档在线评阅及批注功能的支持有限问题,本文提出了一种基于新一代Web技术HTML5的在线评阅及手写批注实现,并支持与服务端进行通信保留修改痕迹。电子文档的全文批注功能是很多OA系统、在线学习系统的重要环节,此技术的实现有助于提高公文批阅、作业批改的效率以及用户体验。
在线文档论文范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。