NetCore中带图片的word转html (NPOI.Word2Html)

本文介绍了在NetCore中如何利用NPOI库将包含图片的Word文档转换为HTML。由于DocX不支持NetCore,作者选择了DotNetCore.NPOI(实际上NPOI即可)。在转换过程中遇到了图片显示问题,经过努力找到了解决方案。作者提供了GitHub项目链接,以便他人参考和改进。
摘要由CSDN通过智能技术生成

NetCore的word转html很少见,特别是带图片转换为html的

查了很多资料做了些尝试

DocX 免费的不支持NetCore了

后来在nuget上查找发现DotNetCore.NPOI可以引用(后来发现NPOI其实就可以了)

然后就开始尝试

获取图片有点坑 踩了好大一会 找了好久才找到对应关系 然后就是 两张一样的图片只会显示一张 

github地址如下 如果有帮助 麻烦帮忙Star一下谢谢

https://github.com/ToolsByXLG/NPOI.Word2Html

首先nuget引用 NPOI

Install-Package NPOI

理论上如果不是netcore的话 直接引用NPOI就好

可能不太完善 可以稍微改进下

反正可以正常在centos上word转成html了

FileStream stream = new FileStream("1.docx", FileMode.Open,FileAccess.Read);

更新了代码,现在我项目中就是用的这个类,上传阿里云部分自己改改

using NPOI.OpenXmlFormats.Wordprocessing;
using NPOI.XWPF.UserModel;




  public class NpoiDocHelper 
    {
        private readonly IBinaryObjectManager _binaryObjectManager;


        public NpoiDocHelper(IBinaryObjectManager binaryObjectManager)
        {
            _binaryObjectManager = binaryObjectManager;
        }

        /// <summary>
        ///     Npoi处理Doc
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="isImgUploadAliYun"></param>
        /// <returns></returns>
        public async Task<string> NpoiDoc(Stream stream, bool isImgUploadAliYun = false)
        {
            var myDocx = new XWPFDocument(stream); //打开07(.docx)以上的版本的文档


            var picInfoList = await PicturesHandleAsync(myDocx, isImgUploadAliYun);

            var sb = new StringBuilder();

            foreach (var para in myDocx.BodyElements)
                switch (para.ElementType)
                {
                    case BodyElementType.PARAGRAPH:
                    {
                        var paragraph = (XWPFParagraph) para;
                        sb.Append(ParaGraphHandle(paragraph, picInfoList));

                        break;
                    }

                    case BodyElementType.TABLE:
                        var paraTable = (XWPFTable) para;
                        sb.Append(TableHandle(paraTable, picInfoList));
                        break;
                }


            return sb.Replace(" style=''", "").ToString();
        }
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值