You are on page 1of 14

软件构 件研究 技术报 告

构件名 称: ipaper 版本 <1. 5 >

审核人 : 日期:
编制人 : 日期:

上海软件构件化服务中心

上海计算机软件技术开发中心

1
1.前言 2
2.构件 概要说明 ............................................................................................................................3
3.构件 接口与结 构说明 ...............................................................................................................5
4.构件 使用说明 ...........................................................................................................................11
5.相关 构件比较 ..........................................................................................................................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 内置支持多种语言用户界面。


scribd.Net 对 Ipaper 的接口进行封装,可以方便的把文档转化成 ipaper,并且把这些
文档存放在服务器上。代码易于实现,可以方便的调用。

 构件非 功能性特 性(并发 处理说明 /异常处理说 明/安全)


并发处理说明:
Ipaper 构件从客户端到服务器端的使用单线程处理。数据传输使用划分为多个数据块
后,按照一定的网络传输协议,通过网络进行传输.
Ipaper 构件异常处理说明:
1) 登陆失败错误,在登陆时用户名或者密码不对
2) 没有 APIKEY。不存在 APIKEY 或者 APIKEY 错误。
3) 没有 SECRETKEY。不存在 SECRETKEY 或者 SECRETKEY 错误
4) 注销错误。不能够注销。

2.3 基本框架与 技术原理


 设计构 件所使用 的主要技 术原理以 及基本框 架
Ipaper 分为客户端与服务器端 2 部分。
Ipaper 文档上传用户网站通过网络调用 ipaper 接口,把文档转化为 Ipaper 内部格式存入
scribd 网站中,进而设置文档的权限。当一般用户浏览 Ipaper 文档上传用户网站的这些文

4
档时,将调用 Ipaper 构件并以 Flash 方式呈现给一般用户。

ipaper可识别文件

openDo
*.pdf *.ps cument

*.doc .*.txt *.odt


*.xls
用户端
*.ppt *.odp

其余 ipaper
*.ods openDocum 能识别格
ent 式

网站 提交 ipaper
Ipaper 支持的上传文件

网络
iPaper上传用户 Scribd.Net 网络

解析
展示 Ipaper接口
浏览 Scribd ipaper
web端
用户端

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

名:
参 doc_id,api_key,
数: api_sig, session_key,
my_user_id
必选参数为(doc_id,api_key).

参 Conversion_status: 转化的标志。
数 返回的 xml 文件如下(截取片段):





明:

方 doc.getSettings

名:
参 doc_id ,title,deScribdion,
数: acess,license,show_ads,
tags,api_key,api_sig,
session_key,my_user_id
必选参数:(api_key,doc_id)

参 State : 状态标志
数 返回的 xml 文件如下(截取片段):





明:

方 doc.changeSettings

名:
参 doc_id ,title,deScribdion,
数: acess,license,show_ads,
tags,api_key,api_sig,
session_key,my_user_id
必选参数:(api_key,doc_id)

参 Doc_id: 表示文档id
数 Access_key: 表示得到的 access key
返 State : 状态标志
回 返回的 xml 文件如下(截取片段):

7


明:

文档一般操 作类

方 doc.changeSettings

名:
参 doc_id ,title,deScribdion,
数: acess,license,show_ads,
tags,api_key,api_sig,
session_key,my_user_id
必选参数:(api_key,doc_id)

参 State : 状态标志
数 返回的 xml 文件如下(截取片段):





明:

方 doc.delete

名:
参 doc_id ,api_key,api_
数: sig,session_key,
my_user_id
必选参数:(api_key,doc_id)

参 State : 状态标志。
数 返回的 xml 文件如下(截取片段):





明:

方 doc.search

名:
参 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

名:
参 username,password,
数: email,name,api_key,api_sig
必选参数:(api_key,username,password,email)

参 State : 状态标志
数 Session_key: Session 的有关 key
返 User_id:用户 id
回 Username: 用户姓名
类 Name:上传文档名称返回的 xml 文件如下(截取片段):


明:

9
一个 Scribd Ipaper 接口应用举例
Scribd API 例子:在浏览器上地址输入:
http://api.scribd.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 网页上,</body>标签上添加以下代码

  <Scribd type="text/javaScribd">

var scribd_publisher_id = 'pub-49563065552246273724';


var scribd_type = 2;
var scribd_keep_original_link = 0;
var scribd_ipaper_params = [];
scribd_ipaper_params['height'] = 440;
scribd_ipaper_params['width'] = 560;
scribd_ipaper_params['public'] = true;
  </Scribd>
  <Scribd src="http://www.scribd.com/javaScribds/auto.js"></Scribd>
注意:需要在 ipaper 网站上申请 key.
如果需要 ipaper 解读某个格式的文件,则必须要在网络上能够链接到该文件。
如果要在源代码中使用该文件,在源代码中添加
<a href="该文件 url 位置"> </a>
下面以实际的列子来说明 Ipaper 的应用.
在万维网上, 打开网页
http://today.hit.edu.cn/uploadfiles/2008/03-10/20080310141009890.doc 可以打开

一个 Word 文档,现在我们自己新建一个 Example.html 页面。输入以下代码


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

11
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
</form>
<a href="http://today.hit.edu.cn/uploadfiles/2008/03-
10/20080310141009890.doc">att</a>
<Scribd type="text/javaScribd">
var scribd_publisher_id = 'pub-49563065552246273724';
var scribd_type = 2;
var scribd_keep_original_link = 0;
var scribd_ipaper_params = [];
scribd_ipaper_params['height'] = 440;
scribd_ipaper_params['width'] = 560;
scribd_ipaper_params['public'] = true;
</Scribd>
<Scribd src="http://www.scribd.com/javaScribds/auto.js"></Scribd>
</body>
</html>

然后用浏览器打开,显示

可以看到 ipaper 解读了该 word 文档。

12
 FAQ  
什么是 Ipa per?
Ipaper 是一种文件格式转换工具。它支持常见的文件格式。并且它可以嵌入到任何网
站或博客。
我使用 Wor dPre ss,为什么我不 能看到我 网站上的 ipape r 界面
我们发现在 WorldPress 嵌入 JavaScribd,Ipaper 不能正常工作。我们正在努力解决
这个问题。
我需要什么 ,以查看 ipape r?
Ipaper 是建立在 Adobe 的 flash 上的。所以你必须在你的浏览器上启用 JavaScribd。
我怎么样把 一个文档 转换成 ipape r 文档?
这里有几种方法。你的文档和你个人的环境共同决定使用哪一种发法。假如你试图共
享一个或多个文档,你最好将文档上传到服务器。假如你拥有自己的网站,你或许使用
Scribd API 更合适。记住,你的文档上传到 Scribd Ipaper 时,它已经转换了。
怎么样一次 性转换多 个文档?
使用网站提供的 Scribd bulk uploader 工具,或者使用 Scribd API。服务器有很好的
性能同时转换多个文档。
我怎么样把 图片转换 成 ipa per?
直接转换不可以。但是你可以把它插入到一个文档,例如: pdf,Word 等文档。
我可不可以 把 ipa per 服务器端软 件装在自 己的服务 器中?
目前不可以。但是我们保证,Ipaper 服务器绝对保证你上传的数据安全性。
我可以把 Micro soft Off ice 2007 格式的 转换成 ipape r 么?
现在不可以。但是你可以把 07 格式转换成 03 格式。我们马上将要推出支持 07 格式的
ipaper 更新版本。
在 Scrib d 网站上我在 也不能看 到我的文 档,我能做 什么 ?
如果你在网站上看不到文档,请发 Email 给我们,邮箱地址为:contact@scribd.com.
我的文档不 能转换成 ipape r,什么 原因?
Pdf 文档:可能你的文件格式是经过加密的。Word 文档: 可能包含太多的图片。
我能够把 ipape r 发布到 网站上么 ?
可以。你可以发布 ipaper 到任何支持 Flash 格式的网站上。
我能够修改 网站上的 ipape r 大小么 ?
你可以查看实现 ipaper 窗口大小的实现代码。你可以修改相应值,从而改变大小。
我可以修改 ipape r 呈现的 文档么?

13
不行。Ipaper 是一个发布型的格式,并不是一个编写器。但是,也许你可以修改本地的
文档,然后再把他上传。

5. 相关构件比较
iPaper 在线文档阅读器与 PDF 以及 Microsoft Office 特点比较。

特点 iPaper PDF Microsoft Office


是否需要下载 No Sometimes Yes
是否需求安装 No Yes Yes
内嵌于浏览器 Yes No No
费用 Free $299 ~$150
提供内部接口 Yes No No
大小 96 KB 92,000 KB ~130,000 KB
现在是否在文档中提供广告 Yes No No
安全性 Yes Only with DRM No
是否病毒免疫 No Yes Yes

14

You might also like