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


一、服务器先转换为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中设置 <identity impersonate="true" userName="administrator" password="你的服务器管理员密码" />,一个是在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.youkuaiyun.com/z69183787/article/details/17468039 


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

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


三、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 


四、第三方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/ 


五、微软的Office365

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


六、第三方成熟的服务

如中南天安文档云服务
优点:
1、本服务采用适合中文排版的纯Html、CSS技术。
2、接口简单,适合PHP、JSP、ASP.net等所有的对接,省心省力。
3、费用低廉,节省投入。
4、不用关心客户端是否安装了Office软件,不用在客户端部署。
5、手机在线预览2页Word文档只有3K大小,且格式保留,领先全球的中文在线预览技术。
6、支持国产的金山WPS,这在国内尚属首列。
7、其解析速度(100ms)与高并发的支持远远把对手甩在了后面。
缺点:
1、本服务只能查看不能编辑,目前在线编辑版的正在开发。
参考链接:
http://office.cstian.com/


七、在浏览器中直接打开

通过设置MiME类型,告诉浏览器这是Office文件,浏览器直接调用本地Office或PDF软件打开
优点:
1、不用编程,不用第三方服务,直截了当。
2、很多用户安装了Adobe的PDF预览软件,同时在浏览器上也直接安装了插件,浏览器可直接查看PDF文件。
缺点
你永远不知道客户机器上是否安装了Office软件,虽然几乎都安装了,但直接调用Office软件,客户体验大大下降,更何况还有个讨厌的迅雷一直在监视你的浏览器,不给你打开的机会,当然这些都是你无法预知的。


八、其它

如金山快写、一些网盘的预览
参考链接:
http://w.wps.cn/ 

转载于:https://www.cnblogs.com/niao/p/7448054.html

<think>好的,我现在要解决用户遇到的Git推送时出现403错误的问题。首先,我需要了解403错误通常意味着什么。HTTP 403错误表示服务器理解请求,但拒绝执行,常见于权限问题。用户提到在推送时出现无法访问的错误,可能和身份验证或权限有关。 根据用户提供的引用,特别是引用[3],用户可能在输入GitHub账号密码时输错了,导致认证失败。这时候,Git会返回403错误,因为服务器拒绝访问。另外,引用[2]提到HTTPS代理的问题,虽然用户的问题可能不直接是代理,但也需要考虑网络配置的影响。 首先,我需要确认用户的身份验证方式是否正确。GitHub现在推荐使用个人访问令牌(PAT)代替密码,因为密码认证已经在2021年8月被废弃。用户可能还在使用密码,这会导致认证失败。因此,第一步是建议用户检查是否使用PAT,并生成新的令牌。 其次,用户可能配置了错误的远程仓库URL。检查远程仓库的URL是否正确,特别是用户名和仓库名是否有误。使用git remote -v可以查看当前配置的URL,并确保其正确性。 另外,可能存在本地缓存的错误凭据。系统凭据管理器可能保存了旧的或错误的凭据,需要清除这些缓存,然后重新输入正确的凭据。 还有可能是仓库权限问题,用户是否有权限写入目标仓库。如果用户没有权限,需要联系仓库管理员进行确认。 网络问题也可能导致无法访问,比如代理设置不正确。引用[2]提到HTTPS代理的问题,需要检查git的代理配置,尤其是http.proxy和https.proxy的设置,确保其正确或尝试关闭代理测试。 步骤总结: 1. 检查并更新身份验证方式,改用个人访问令牌。 2. 验证远程仓库URL的正确性。 3. 清除缓存的错误凭据。 4. 确认用户对仓库有写入权限。 5. 检查网络和代理设置,排除连接问题。 最后,根据用户提供的引用,特别是引用[3]中的情况,用户可能输入了错误的账号密码,所以需要确保使用正确的凭据。此外,使用SSH协议代替HTTPS可能绕过某些代理问题,也是一个可行的解决方案。</think>要解决Git推送时出现`fatal: unable to access... 403 error`的问题,可以按以下步骤排查和修复: --- ### **1. 检查身份验证方式** - **原因**:GitHub已弃用密码认证,需使用**个人访问令牌(PAT)**或**SSH密钥**。 - **解决方案**: 1. 生成新的PAT:登录GitHub → Settings → Developer settings → Personal access tokens → 生成新令牌(需勾选`repo`权限)[^1]。 2. 推送时使用PAT代替密码: ```bash git push https://<你的用户名>:<生成的PAT>@github.com/用户名/仓库名.git ``` --- ### **2. 验证远程仓库URL** - **原因**:URL中可能包含错误的用户名或仓库名。 - **解决方案**: ```bash git remote -v # 查看当前远程仓库配置 git remote set-url origin https://github.com/正确用户名/正确仓库名.git # 修正URL ``` --- ### **3. 清除本地凭据缓存** - **原因**:系统可能缓存了错误的账号密码。 - **解决方案**(以Windows为例): 1. 打开“控制面板” → 凭据管理器 → 删除与GitHub相关的凭据。 2. 重新推送时输入正确的用户名和PAT。 --- ### **4. 检查仓库权限** - **原因**:当前账户无目标仓库的写入权限。 - **解决方案**: - 联系仓库管理员确认权限。 - 若为组织仓库,需加入对应团队并分配权限。 --- ### **5. 网络与代理问题** - **原因**:代理配置错误或网络限制导致无法连接GitHub。 - **解决方案**: 1. 检查代理设置: ```bash git config --global --get http.proxy # 查看代理配置 git config --global --unset http.proxy # 关闭代理(若不需要) ``` 2. 尝试切换至SSH协议: ```bash git remote set-url origin git@github.com:用户名/仓库名.git ``` --- ### **6. 其他可能原因** - **双因素认证(2FA)**:启用2FA的账户必须使用PAT或SSH密钥。 - **防火墙/杀毒软件**:临时关闭防火墙测试是否拦截连接。 --- ### **总结流程** 1. 生成PAT并更新远程仓库URL。 2. 清除本地凭据缓存。 3. 检查权限与网络设置。 4. 尝试切换至SSH协议。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值