软件构 件研究 技术报 告
构件名 称:
ipaper
版本 <1. 5 >
审核人 :
日期:
编制人 :
日期:
上海软件构件化服务中心 上海计算机软件技术开发中心
1
1.前言 2 2.构件 概要说明 3.构件 接口与结 4.构件 使用说明 5.相关 构件比较
............................................................................................................................3 构说明 ...............................................................................................................5 ...........................................................................................................................11 ..........................................................................................................................14
1. 前言 1.1 目的 使读者能够了解 ipaper 的一般功能,并能通过这篇研究技术报告掌握 ipaper 构件的 使用方法,本技术报告对于 ipaper 内部结构与接口进行了说明,本报告还对于 Scribd.Net dll ipaper API 封装开源构件的使用进行了说明。
2
1.2 背景 在当今网络世界,对于文档转换,显示并在网络上共享文档等方面要求日益增多,而 普通的网站与 blog 并不能同时解决这些问题。人们需要一种能够快速解决这一问题的方案. Scribd 平台在这一背景下产生的。它的宗旨是致力于网站拥有更加丰富,更加多样化的文 档网络上共享文档 API。
1.3 术语定义 文档管理 管理电子文档如字处理文件。 数字图象库 管理数字图片、图象。 内容管理 管理网站的内容。大部分内容提供者也用该术语指他们的文档、图片管理解 决方案。 1.4 参考资料 Scribd API Documentation,Scribd Company Website
1.5 命名规则 无
2. 构件概要说明 2.1 刻面与功能 点描述
Ipaper 刻面: 数据访问,数据存储,文档格式转换、文件展示
IPape r 的主要功能 : 用户网站将任何主流格式的文档上传到 Scribd 网站,当用户网站调用 ScribdAPI 时, IPaper 客户端以 Flash 的格式插入 Blog 或者网站,并所展示所上传的文档,且客户端具有 翻页以及幻灯片展示等功能,便于阅读,而且可以直接打印这些文档以及在这些文档内进 行搜索(包括 PDF)。这些功能是其它一些在线文档展示服务所缺乏的。
2.2 功能详述
构件功 能说明
Ipaper 构件主要分为 2 部分功能:Scribd 文件提交,ScribdAPI 文件展示。 Scribd 文件上传: 3
用户网站将任何主流格式的文档上传到 Scribd 网站,并能设置权限。 ScribdAPI 文件展示: 用户网站调用 ScribdAPI 时,IPaper 客户端以 Flash 的格式插入 Blog 或者网站,并所 展示所上传的文档,且客户端具有翻页以及幻灯片展示等功能,便于阅读。IPaper 可以直 接打印这些文档以及在这些文档内进行搜索(包括 PDF)功能。iPaper 是支持以下格式的 文件上传,浏览应用: • • • • • • • • • • •
Adobe PDF (.pdf)以 Adobe PDF Adobe PostScribd (.ps) Adobe 公司的 PostScribd Microsoft Word (.doc) Microsoft Word 中 Microsoft PowerPoint (.ppt, .pps)微软的 PowerPoint Microsoft Excel (.xls) Microsoft Excel 中中 OpenOffice Text Document (.odt, .sxw) OpenOffice 的文本文件 OpenOffice Presentation Document (.odp, .sxi) OpenOffice 的演示文稿文件 OpenOffice Spreadsheet (.ods, .sxc) OpenOffice 的试算表 All OpenDocument formats 所有的 OpenDocument 格式 Plain text (.txt)纯文字 RTF 格式
多语言 iPaper 内置支持多种语言用户界面。 pdfcoke.Net 对 Ipaper 的接口进行封装,可以方便的把文档转化成 ipaper,并且把这些 文档存放在服务器上。代码易于实现,可以方便的调用。
构件非 功能性特 性(并发 处理说明 /异常处理说 明/安全)
并发处理说明: Ipaper 构件从客户端到服务器端的使用单线程处理。数据传输使用划分为多个数据块 后,按照一定的网络传输协议,通过网络进行传输. Ipaper 构件异常处理说明: 1) 登陆失败错误,在登陆时用户名或者密码不对 2) 没有 APIKEY。不存在 APIKEY 或者 APIKEY 错误。 3) 没有 SECRETKEY。不存在 SECRETKEY 或者 SECRETKEY 错误 4) 注销错误。不能够注销。
2.3 基本框架与 技术原理
设计构 件所使用 的主要技 术原理以 及基本框 架
Ipaper 分为客户端与服务器端 2 部分。 Ipaper 文档上传用户网站通过网络调用 ipaper 接口,把文档转化为 Ipaper 内部格式存入 pdfcoke 网站中,进而设置文档的权限。当一般用户浏览 Ipaper 文档上传用户网站的这些文 4
档时,将调用 Ipaper 构件并以 Flash 方式呈现给一般用户。 ipaper可识别文件
*.pdf *.doc *.xls 用户端
*.ods 网站
提交
ipaper
*.ps
openDo cument
.*.txt
*.odt
*.ppt
*.odp 其余 ipaper 能识别格 式
openDocum ent
Ipaper 支持的上传文件 网络
iPaper上传用户
Scribd.Net
网络 解析
浏览
展示
用户端
Ipaper接口 web端
Scribd ipaper
iE/Fifox等浏览器
一般用户 Ipaper服务器
数据
3. 构件接口与结构说明 Scribd 接口 ,可以分为四类。 文档上传类:docs.Upload,docs.uploadFromUrl。 文档状态类:docs.getList,docs.getConversionStatus,doc.changeSettings。 文档一般操作类:doc.delete,doc.search, 用户一般操作类:user..login, user.signup.这些接口实现了文档和用户的一般操作。 Scribd 接口描述: 文档上传类 :
方法名: 参数:
参数返回类 型说明:
docs.upload file , doc_type, rev_id , access, api_key, api_sig, session_key, my_user_id 必选参数为(file,api_key). Doc_id 表示文档id Access_key 表示得到的 access key Secret_password:表示返回的加密密码 5
返回的 xml 文件如下(截取片段):
方 法 名: 参 数:
参 数 返 回 类 型 说 明:
docs.uploadFromUrl
url , doc_type, rev_id ,access, api_ key, api_sig, session_key, my_user_id 必选参数为(url,api_key) Doc_id 表示文档id Access_key 表示得到的 access key Secret_password:表示返回的加密密码 返回的 xml 文件如下(截取片段):
文档状态类 方 法 名: 参 数: 参 数 返 回 类 型 说 明:
docs.getList
api_key, api_sig, session_key, my_user_id 必选参数为(api_key) Doc_id: 表示文档id Access_key: 表示得到的 access key Title: 取得的文件名称 DeScribdion: 文件描述 Conversion_status: 转化的标志。 返回的 xml 文件如下(截取片段):
6
方 法 名: 参 数:
docs.getConversionStatus
参 数 返 回 类 型 说 明:
Conversion_status: 转化的标志。 返回的 xml 文件如下(截取片段):
方 法 名: 参 数:
doc.getSettings
参 数 返 回 类 型 说 明:
State : 状态标志 返回的 xml 文件如下(截取片段):
方 法 名: 参 数:
doc.changeSettings
参 数 返 回 类
Doc_id: 表示文档id Access_key: 表示得到的 access key State : 状态标志 返回的 xml 文件如下(截取片段):
doc_id,api_key, api_sig, session_key, my_user_id 必选参数为(doc_id,api_key).
doc_id ,title,deScribdion, acess,license,show_ads, tags,api_key,api_sig, session_key,my_user_id 必选参数:(api_key,doc_id)
doc_id ,title,deScribdion, acess,license,show_ads, tags,api_key,api_sig, session_key,my_user_id 必选参数:(api_key,doc_id)
7
型 说 明:
文档一般操 作类 方 法 名: 参 数:
doc.changeSettings
参 数 返 回 类 型 说 明:
State : 状态标志 返回的 xml 文件如下(截取片段):
方 法 名: 参 数:
doc.delete
参 数 返 回 类 型 说 明:
State : 状态标志。 返回的 xml 文件如下(截取片段):
方 法 名: 参 数:
doc.search
doc_id ,title,deScribdion, acess,license,show_ads, tags,api_key,api_sig, session_key,my_user_id 必选参数:(api_key,doc_id)
doc_id ,api_key,api_ sig,session_key, my_user_id 必选参数:(api_key,doc_id)
query ,num_results ,num_start,scope , api_key,api_sig, session_key,my_user_id 8
必选参数:(api_key,query)
参 数 返 回 类 型 说 明:
Doc_id: 表示文档id Access_key: 表示得到的 access key Title: 取得的文件名称 Stat: 状态 Result_set:返回结果列表 Result: 返回结果 返回的 xml 文件如下(截取片段):
用户一般操 作类 user.login 方 法 名: username,password, 参 数: api_key,api_sig 必选参数:(api_key,username,password) 参 数 返 回 类 型 说 明:
State : 状态标志 Session_key: Session 的有关 key User_id:用户 id Username: 用户姓名 Name:上传文档名称 返回的 xml 文件如下(截取片段):
方 法 名: 参 数:
user.signup
参 数 返 回 类 型 说 明:
State : 状态标志 Session_key: Session 的有关 key User_id:用户 id Username: 用户姓名 Name:上传文档名称返回的 xml 文件如下(截取片段):
username,password, email,name,api_key,api_sig 必选参数:(api_key,username,password,email)
9
一个 Scribd Ipaper 接口应用举例 Scribd API 例子:在浏览器上地址输入: http://api.pdfcoke.com/api?method=docs.getList&api_key=7gsul0jyf0in3lmlov703 method 表示调用的 Scribd ipaper 接口,api_key 是该方法的一个参数。 返回一个 xml 文档,如下图所示:
该方法得到,与这个 Api_key 相关的所有文档的 xml 列表。 说明:resultset 表示返回结果集合。 Result 表示结果。 Doc_id 表示文档id Access_key 表示得到的 access key Title 表示文件名称 DeScribdion 表示描述 Conversion_status 表示状态 以下返回结果类似,不在说明。
Scribd.Net 中,Document Class 封装:docs.upload,docs.uploadFromUrl,docs.getList docs.getConversionStatus,doc.getSettings,doc.changeSettings,doc.delete,doc.search。 UserClass 封装:user.login,user.signup 接口 10
4. 构件使用说明 5.1 构件平 台
环境依 赖 Internet Explorer 5.0 或以上 Scribd.Net .Net Frame Work 2.0 其它条 件依赖
需要在 Scribd ipaer 网站申请一个 API Key. Secret Key,Publicher ID
QuickStart
下面详细的讲述一个实列:实现在网页上 ipaper 的应用。 在源代码 html/xhtml 网页上,