Office在线预览及PDF在线预览的实现方式大集合

1. 服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览

微软方法:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免费的swftools.exe工具生成swf格式的Flash文件,网页中加载flexpaper免费开源工具(有广告)实现Flash文件的预览。
优点:
1、有效的保护的源文件及文件的复制,不可复制也是缺点。
2、源码是自己的,版权有保证。
缺点:
1、服务器上必须安装Office软件。
2、导出PDF文件本身是个打印过程,Excel页面格式未设置,会出现一张表格打印出多页来,阅读体验大大下降。
3、转换过程非常耗费资源,低配的CPU几乎能跑满,服务器卡死。转换时间也非常漫长,这个时间主要是卡在了转换PDF上面。
4、转换完成服务器会遗留大量Excel、Word进程无法正常退出,有一些折中的解决办法,可以在网上搜索。
5、设置非常麻烦,本身微软官方的说法Office软件是客户端程序,在与IIS交互的时候本身就未设计。所以很多程序员把精力浪费在了调试程序上面。有两点在调试的时候需要注意。一个是在web.config中设置 ,一个是在Office软件的设置中设置跟桌面交互。
6、严重浪费磁盘空间,一个文件还需要一个PDF文件、一个SWF文件,是否每次都转换,纠结是要硬盘空间呢还是要CPU的资源。
参考链接:
http://www.cnblogs.com/expectszc/archive/2012/04/04/2432149.html
http://www.cnblogs.com/liuning8023/archive/2013/03/04/2943482.html
http://www.cxyclub.cn/n/29549/

非微软方法:没有微软的Office软件可安装,只能用第三方的openoffice(开源、免费)来转换PDF文件,其它方面都一样,优缺点一样
无论是office还是openoffice,转换速度漫长与不支持高并发,注定其只能适合十几个人的小型办公OA系统使用
参考链接:
http://blog.csdn.net/z69183787/article/details/17468039

2. Office文档直接转换为SWF,通过网页加载Flash预览

利用flashpaper直接转换为SWF文件(虚拟打印机),然后利用flexpaper预览Flash文件。
flashpaper是Macromedia的一款产品,随着被Adobe公司收购,Macromedia对于这款软件早就放弃了,国内尚无人在程序中调试成功过。
参考链接:
http://www.dzwebs.net/1149.html

3. office转Html、pdf转图片在线预览文件Html文件

利用DCOM配置直接操作Office文件,读取文件内容,导出Html文件
优点:
实践证明此方法不科学。
缺点:
1、服务器上必须安装Office软件。
2、配置麻烦,正如微软所说,读取Office不是这么干的。
3、转换的文件格式均丢失。
4、仅限于IIS服务器,利用ASP.net(C#)。
参考链接:
http://www.cnblogs.com/tangbinblog/archive/2012/11/29/2794110.html

4. 第三方ActiveX浏览器控件

如科瀚的SOAOffice中间件、卓正软件的pageoffice控件、WebOffice控件、国外的Office Viewer ActiveX Control
优点:
可在线编辑等。
缺点:
1、客户端需安装控件。
2、付费。
3、在Html5、CSS3以及桌面向浏览器转换的大潮流下,控件已是昨日黄花。
参考链接:
http://www.kehansoft.com/soaoffice/index.htm
http://www.zhuozhengsoft.com/
http://www.officectrl.com/
http://www.anydraw.com/

5. 微软的Office365

微软新出的在线文档,与Google文档抗衡,估计没谷歌文档,微软也懒得出这个
优点:
微软自家的东西原生态呈现。
缺点:
文件大小限制在10M以内,10M以外的无法预览
加载文件较多,各种图片、文字、样式、JQuery等,页面臃肿,加载速度慢,耗费流量,不适合手机预览
需要微软的批量许可(即授权),硬件投入方面:架设一台单独的服务器(可以是虚拟机),配置过低能安装,但无法运行,另外还需一台域服务器。而这两台机器上均不能安装其它程序,比如SQLServer,在Office365服务器上每次重启IIS会重置,也就是说你不能有任何其它网站。其主要是用来与SharePoint搭配使用。
参考链接:

http://technet.microsoft.com/zh-cn/library/jj219456(v=office.15).aspx read more

阅读全文

Apache下开启SSI(Server Side Include)配置使html支持include包含

Apache的官方介绍页面:http://httpd.apache.org/docs/current/howto/ssi.html

1. 添加文件类型

在 httpd.conf 文件下找到如下两行代码:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

有注释的话一样去掉注释。因为使用 ssi 技术的默认文件名为 .shtml,所以我们需要在配置文件中对 .shtml 后缀名进行设置,并按自己的需求设置需要对 ssi 技术进行解析的文件类型设置。

比如这里我要用 .html 的文件进行操作,所以可以在上面两行代码末添加,比如这样:

AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html

2. 添加 INCLUDES

还是在 httpd.conf 文件中,找到这样一行 Options Indexes FollowSymLinks,在后面添加 INCLUDES,变成这样:

Options Indexes FollowSymLinks INCLUDES

需要注意的是,ssi 可以利用 shell 来执行命令,因此这个功能是有危险的,它会执行任何包含在 exec 标记中的命令,如果你的用户有权限修改你的网页内容,建议把该功能关闭。当然你还可以加上IncludesNOEXEC参数,来关闭 exec 功能,同时又保留 SSI 。此时改为:

Options Indexes FollowSymLinks INCLUDES IncludesNOEXEC

3. 重启apache

重启 apache即可。

原文地址:http://www.cnblogs.com/zichi/p/4889075.html

阅读全文

SSL证书简介

SSL证书是什么?

目前互联网常用的HTTP协议是非常不安全的明文传输协议。而SSL协议及其继任者TLS协议,是一种实现网络通信加密的安全协议,可在客户端(浏览器)和服务器端(网站)之间建立一条加密通道,保证数据在传输过程中不被窃取或篡改。

SSL证书,也称为服务器SSL证书,是遵守SSL协议的一种数字证书,由全球信任的证书颁发机构(CA)验证服务器身份后颁发。将SSL证书安装在网站服务器上,可实现网站身份验证和数据加密传输双重功能。

ssl-760-1

SSL证书的作用

实现加密传输

用户通过http协议访问网站时,浏览器和服务器之间是明文传输,这就意味着用户填写的密码、帐号、交易记录等机密信息都是明文,随时可能被泄露、窃取、篡改,被黑客加以利用。

安装SSL证书后,使用Https加密协议访问网站,可激活客户端浏览器到网站服务器之间的”SSL加密通道”(SSL协议),实现高强度双向加密传输,防止传输数据被泄露或篡改。

认证服务器真实身份

钓鱼欺诈网站泛滥,用户如何识别网站是钓鱼网站还是安全网站?网站部署全球信任的SSL证书后,浏览器内置安全机制,实时查验证书状态,通过浏览器向用户展示网站认证信息,让用户轻松识别网站真实身份,防止钓鱼网站仿冒。

SSL证书的显示效果

网站部署全球信任的沃通SSL证书后,浏览器可直观展示认证标识和网站认证信息:

1.访问地址由”Http”明文访问,变成了”Https”加密访问,确保传输数据不被泄露或篡改;

2.浏览器显示醒目安全锁,点击安全锁,可查看网站认证的详细信息;

3.使用最高级别EV SSL证书,浏览器显示绿色地址栏,状态栏直观展示单位名称及颁发机构。

ssl-760-2

SSL证书有哪几种类型

EV SSL

EV SSL,也称EV SSL证书,英文全名为:Extended Validation SSL Certificate,就是全球领先的数字证书颁发机构和主流的浏览器开发商共同制定的一个新的SSL证书严格身份验证标准,让新一代安全浏览器(如:IE7)能识别出 EV SSL 而在地址栏显示为绿色,让普通消费者能确信正在访问的网站就是通过权威第三方严格身份验证的现实世界的真实实体,从而增强消费者信心,促成更多在线交易。
增强型 SSL 证书(EVSSL)是最高级别的 SSL 数字证书。增强型 SSL 证书(EVSSL)最大的特色便是激活网站浏览器的栏位使其变成绿色,利用鲜明的标示告诉网友:这个网站正受到最严密的信息安全防护。

OV SSL

OV SSL是 Organization Validation SSL 的缩写,指需要验证网站所有单位的真实身份的标准型SSL证书,此类证书也就是正常的SSL证书,不仅能起到网站机密信息加密的作用,而且能向用户证明网站的真实身份。所以,推荐在所有电子商务网站使用,因为电子商务需要的是在线信任和在线安全。

DV SSL

DV SSL证书又名域名型(基础型)SSL证书,只需要验证域名的所有权,特点是颁发速度快。
DV SSL即Domain Validation SSL 或 超快 SSL,只验证域名所有权, 10分钟颁发,保证了网站的机密信息从用户浏览器到服务器之间的传输是高强度加密传输的,是不会被非法窃取和非法篡改的,但由于只验证域名,此证书仅起到加密传输信息的作用,并不能证明网站的真实身份。

如何选择SSL证书

1.确定网站类型

绿色地址栏选超安:金融证券、银行、第三方支付、网上商城等,重点强调网站安全和品牌可信形象的网站,涉及交易支付、客户隐私信息和账号密码的传输,使用显示绿色地址栏的超安EV SSL证书,安全可信一目了然。

验证企业选超真:电子商务网站、企业网站,涉及注册、登录、会员中心等页面,一定要使用超真OV SSL证书,支持显示中文单位名称和中文域名,利于品牌推广,更容易赢得客户信赖。

验证个人选超酷:自媒体、个人站长等需要显示个人名称的个人品牌网站,可以选择沃通独有的超酷IV SSL证书。

验证域名选超快:需求急迫、无网站身份认证需求的个人网站,可采用超快DV SSL证书,只用于网站传输加密,10分快速签发。

2.确定域名数量及类型

SSL证书是绑定域名的,一般情况下一个域名对应一张SSL证书,只有通配型证书和多域型证书才支持多个域名。

单域型:您只有单个域名需要使用SSL证书,可选择任意一款沃通SSL证书,购买domain.com,赠送www.domain.com,反之亦然。

多域型:多域型SSL证书支持任何域名。您有多个顶级域名完全不同的域名需要使用SSL证书(如:domain.com、ABC.com、123.com)请选择支持多域名的SSL证书类型,沃通所有SSL证书产品都支持多域名,最多支持100个域名。

通配型:通配型证书只支持*.domain.com通配符子域名。您有多个顶级域名相同的子域名需要使用SSL证书,(如:A.domain.com、B.domain.com、C.domain.com等通配符域名),请选择支持通配域名的SSL证书,沃通超真OV SSL证书支持通配域名,不限制子域名数量。

万能型:万能型SSL证书支持多域名和通配域名混合。既有多域型域名也有通配型域名需要使用SSL证书(如:A.domain.com、B.domain.com、ABC.com、123.com),请选择支持万能型域名的SSL证书,沃通超真OV SSL证书支持万能型域名。

3.确定加密强度

强制128/256位加密:涉及资金交易、机密信息传输等对安全性能要求高的网站,请选择支持强制128/256位加密的SSL证书,规避部分用户未升级浏览器导致加密位数较低而产生的安全风险。沃通超安EV SSL证书和超真OV SSL证书都支持强制128/256位加密,沃通建议网站尽量采用安全性能更高的强制加密服务器SSL证书。

自适应加密:网站根据自身需求和风险评估,可选择价格实惠的自适应加密服务器SSL证书。涉及资金交易、机密数据传输等重要数据的网站不建议使用。

4.确定签名算法

SHA1: SHA1算法是目前使用最广泛的签名算法,但SHA1算法已经存在被破解的可能性。微软根据NIST的安全指引,要求受信任的CA机构于2016年1月1日起全面停止签发SHA1证书。

SHA2:更安全但不支持Windows XP。SHA2签名算法比SHA1更安全,将逐步替代SHA1成为主流签名算法。但目前仍有Windows XP系统不支持SHA2签名算法(不支持windows xp sp2 及以下环境),需打补丁SP3升级后才能支持。

2016年1月1日前,用户可在购买过程中根据自己的实际应用需求,自主选择签发SHA1证书或SHA2证书;2016年1月1日后,仅支持签发SHA2证书。

购买SSL证书网址

沃通:http://www.wosign.com/

StartSSL:https://www.startssl.com/

阿里云的证书服务也可购买

阅读全文

安装nodejs和NPM模块管理(windows平台)

安装nodejs

下载nodejs官方windows版程序, 下载地址
.msi 和 .exe的唯一区别是 .exe需要自己添加环境变量. 我选择的是.exe, 复制到D:\nodejs目录, 并且将D:\nodejs添加到系统的环境变量
能够正常执行node -v, 则nodejs安装成功

安装NPM

下载NPM源码, 下载地址
解压到D:\npmjs目录, 执行一下命令:

D:>cd npmjs
D:\npmjs>node cli.js install -gf

能够正常执行npm -v, 则NPM安装成功
NPM安装完成后, 将D:\nodejs\node_modules添加到系统的环境变量NODE_PATH

使用NPM安装nodejs的包(以express为例)

执行一下命令:

npm install -g express //安装最新版本的express, -g 标识以全局的形式安装包
npm install -g express-generator  //安装express-generator, 这样才能使用express命令
npm remove -g express //删除express

使用npm -g ls查看已经安装的包
NPM的使用方法, 请参考官网

阅读全文

使用Liunx的crontab配置定时任务

定时任务的解释

* * * * * php /home/httpd/html/rapidmanager/scripts/cronjobs/exportSubscribersForBcn.php

上面有5个星号, 分别代表不同的时间设置:

  • 分钟(0 ~ 59)
  • 小时(0 ~ 23)
  • 月份中的第几天(1 ~ 31)
  • 月份(1 ~ 12)
  • 星期中的第几天(0 ~ 6)(0标识星期天)
  • read more

    阅读全文

    Symfony2教程02 – 说明

    Bundle

    Symfony2中一个比较重要的概念就是Bundle. 个人理解, Bundle就类似Symfony1中的插件, 我们可以开发各种不同的Bundle: UserBundle, CmsBundle … , 在开发新项目的时候, 只需要安装加载需要的Bundle即可, 减少重复开发.

    环境

    Symfony2有3个环境, 分别是:
    dev – 开发环境
    test – 测试环境
    prod – 生产环境

    目录结构

    symfony-course
    app -> 项目配置文件, 缓存, 日志, 资源目录
    config -> 配置文件目录
    config.yml
    config_dev.yml
    config_prod.yml
    config_test.yml
    parameters.yml -> 在其他配置文件中, 都可以使用变量, 这个配置文件就是定义这些变量的值
    routing.yml
    routing_dev.yml
    security.yml
    AppKernel.php -> 项目核心文件, 注册Bundle, 加载配置文件
    bin
    src -> 项目Bundle目录
    vendor -> 第三方Bundle目录
    web
    app.php -> prod环境引导文件
    app_dev.php -> dev环境引导文件 read more

    阅读全文

    symfony2在使用KnpPaginatorBundle时JOIN表的排序,ORM为Propel

    在将criteria对象转换为query后再去Join表即可,直接上代码:

    $criteria = new Criteria();
    $query = RegistrationFormQuery::create(null, $criteria);
    $query->join('Member');
    $paginator = $this->get('knp_paginator');
    $page = $request->get('page') ? $request->get('page') : '1';
    $pagination = $paginator->paginate($query, $page, 20);

    模板中就可以直接使用:

    {{ knp_pagination_sortable(pagination, '用户名', 'Member.username') }}

    阅读全文

    Symfony2登陆后跳转到访问前页面

    1、修改配置文件app/config/security.yml中自己的firewall部分,添加配置:

    frontend_secured_area:
    pattern: ^[/a-z]*/member
    anonymous: ~
    http_basic: ~
    form_login:
    provider: frontend_authorization_database
    check_path: expacta_member_check
    login_path: expacta_member_login
    default_target_path: expacta_member_dashboard
    success_handler: expacta_member.authorization_handle
    use_forward: false
    use_referer: true //需要设置为true
    remember_me:
    key: ‘expacta-symfony2-frontend-secret’
    lifetime: 31536000
    path: /
    domain: ~
    logout:
    path: expacta_member_logout
    target: expacta_member_login
    read more

    阅读全文
    Pages: 1 2 3