文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Asp.Net在线预览Word文档的解决方案与思路详解

2024-04-02 19:55

关注

前几天有个老项目找到我,有多老呢?比我工作年限都长,见到这个项目我还得叫一声前辈。

这个项目目前使用非常稳定,十多年了没怎么更新过,现在客户想加一个小功能:在线预览Word文档

首先想到的是用第三方的服务,例如WPS的开放平台。

刚看完文档,客户来了句,要一次性的哦,后续再付费的通通不要。

得嘞,换其他方案吧。

项目特点

Asp.Net不带Core.NET Framework 4.0,部署在Windows平台上。

解决方案

大致思路:先将Word文档转换Html,再预览Html

1、Word文档转Html

先引用OfficeDLL,在COM里面,注意:电脑需要安装Office哦。

又注意:请在DLL属性里面将嵌入互操作类型改为False

转换过程一个方法搞定:

using Microsoft.Office.Interop.Word;
public static string WordToHtml(string path)
{
	string root = AppDomain.CurrentDomain.BaseDirectory;
	var htmlName = $"{Guid.NewGuid().ToString("N")}.html";
	var htmlPath = root + $"Resource/Temporary/";
	if (!Directory.Exists(htmlPath))
	{
		Directory.CreateDirectory(htmlPath);
	}

	ApplicationClass word = new ApplicationClass();
	Type wordType = word.GetType();
	Documents docs = word.Documents;
	Type docsType = docs.GetType();
	Document doc = (Document)docsType.InvokeMember("Open", BindingFlags.InvokeMethod, null, docs, new Object[] { (object)path, true, true });
	Type docType = doc.GetType();

	docType.InvokeMember("SaveAs", BindingFlags.InvokeMethod, null, doc, new object[] { (htmlPath + htmlName), WdSaveFormat.wdFormatFilteredHTML });
	docType.InvokeMember("Close", BindingFlags.InvokeMethod, null, doc, null);
	wordType.InvokeMember("Quit", BindingFlags.InvokeMethod, null, word, null);

	return htmlName;
}

2、预览

上一步WordHtml的方法已经准备就绪,我们再准备这样一个Word文档。

简单写一下逻辑:

是不是特别简单,我们再看看成品效果。

这种方案局限性比较大,部署平台必须安装Office,刚好客户能满足。

到此这篇关于Asp.Net在线预览Word文档的解决方案与思路的文章就介绍到这了,更多相关Asp.Net在线预览Word文档内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯