zoukankan      html  css  js  c++  java
  • WinForm 内嵌 Office 文档 解决方案测试(非DSOFRAME 纯C#代码,网上独一份)

    以前项目有需求在网页中嵌入Word文档,网上有很多这样的ActiveX控件,但都是商业的,授权要几万。

    其他的解决方案:

    1.利用WebBrowser打开Office文件,但微软在一个补丁中将其默认设为关闭,想要使用得更改注册表,并且很多东西不可控。

    2.利用微软已经不再支持的一个示例 DsoFramer_KB311765_x86.exe,网上绝大多数此类控件是基于此的,但微软已经将其移除网站,

      不再提供更新与支持,而且源代码使用的是C++ 用 WIN32 SDK 写的,没有利用ATL库,本人C++不行,没看懂。

    3. Word文档转成HTML相关页面直接展示。

    以上三种除了第2种会C++的能利用外别的对我都不行,伟大的google告诉我微软在.Net Framework 2.0 beta 1 时代曾提供一个控件 ActiveDocumentHost,

    即活动文档宿主,可以打开任何OLE文档类型,无奈的是不知道什么原因微软在正式发布时放弃了此控件,但至今在各个版本的System.Windows.Forms.dll程序集的

    资源里还有System.Windows.Forms.ActiveDocumentHost.bmp这个图标,我知道了,微软很坏,让我看得见用不着。。。。

    经过很久的Google后,终于下载到 dotnetfx_2.0_Beta_1(2.0.40607.42)2004-07-27 这个版本的 Framework,反编译之,提取出ActiveDocumentHost控件重新编译。

    于是就有了现在的WinForm 内嵌 Office 文档解决方案。

    注意:提取完毕后编译无错,基本测试正常运行,但有版权问题,并且需要双击或单击或获得焦点后才能编辑,很痛苦,正在解决。

    之后将会将其写成ActiveX以便在IE中用。

    如果有哪位大大能修改它希望给一份代码,谢谢!

    实现的基本原理就是实现一个活动文档容器。

    代码下载地址:https://files.cnblogs.com/binsys/LabsB.Controls.7z

  • 相关阅读:
    基于OWin的Web服务器Katana发布版本3
    如何在.NET上处理二维码
    .NET开源OpenID和OAuth解决方案Thinktecture IdentityServer
    ASP.NET Identity V2
    Azure Redis Cache
    CentOS 7 安装RabbitMQ 3.3
    ASP.Net MVC 5 in Xamarin Studio 5.2
    Centos 7.0 安装Mono 3.4 和 Jexus 5.6
    CentOS下GPT分区(转)
    CentOS下使用LVM进行分区(转)
  • 原文地址:https://www.cnblogs.com/binsys/p/2348554.html
Copyright © 2011-2022 走看看