首页 > 其他分享 >html生成wrod文档,并智能生成目录

html生成wrod文档,并智能生成目录

时间:2024-06-05 15:34:38浏览次数:21  
标签:return string builder paragraph 生成 html template model wrod

注意:首页网页标签不要有h1等标签,不然会生成目录

使用的是Aspose.Words

 Document doc = new Document();
            DocumentBuilder builder = new DocumentBuilder(doc);
            builder.InsertHtml(temHtml);

            if (isCatalogue)
            {
                NodeCollection paragraphs = doc.GetChildNodes(NodeType.Paragraph, true);
                foreach (Paragraph paragraph in paragraphs)
                {
                    if (paragraph.ToString(SaveFormat.Text).Contains("目录"))
                    {
                        // 在找到的段落后面插入目录
                        builder.MoveTo(paragraph);
                        builder.InsertParagraph();
                        builder.InsertTableOfContents("\\o \"1-4\" \\h \\z");
                        break;
                    }
                }

                // 更新目录
                doc.UpdateFields();
                //菜单下添加新页
                foreach (Paragraph paragraph in paragraphs)
                {
                    if (paragraph.ToString(SaveFormat.Text).Contains("政策快车线下服务"))
                    {
                        builder.MoveTo(paragraph);
                        builder.InsertBreak(BreakType.SectionBreakNewPage);
                        break;
                    }
                }
            }

            MemoryStream outStream = new MemoryStream();
            doc.Save(outStream, SaveFormat.Docx);
            return outStream.ToArray();

使用的是cshtml模板生成html数据(RazorEngine.3.10.0)

 public class RazorRenderer
    {

        public static string RenderModel(string template, object model)
        {
            if (string.IsNullOrEmpty(template))
                return string.Empty;

            return Engine.Razor.RunCompile(template, Guid.NewGuid().ToString(), modelType: model.GetType(), model: model);
        }


        public static string Render(string template, object model)
        {

            if (string.IsNullOrEmpty(template))
                return string.Empty;

            return Engine.Razor.RunCompile(template, Guid.NewGuid().ToString(), null, model);
        }

        public static string GetTemplate(string templateName)
        {
            string name = templateName;
            if (!name.Contains(","))
                name += ".txt";

            string templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "template", name);

            if (File.Exists(templatePath))
            {
                using (FileStream fsRead = new FileStream(templatePath, FileMode.Open))
                {
                    int fsLen = (int)fsRead.Length;
                    byte[] heByte = new byte[fsLen];
                    int r = fsRead.Read(heByte, 0, heByte.Length);
                    return System.Text.Encoding.UTF8.GetString(heByte);
                }
            }

            return string.Empty;
        }



    }

 

标签:return,string,builder,paragraph,生成,html,template,model,wrod
From: https://www.cnblogs.com/shuaimeng/p/18233137

相关文章

  • pdf文件可以转成html网页吗?
    目前我们工作或学习中使用最多的可能就是PDF格式的文档了,它虽然有很多好处,但是有时如果文档比较大,传送就比较麻烦,这时我们将其转换成HTML再发送就很方便了。那么pdf格式怎么转html格式呢?方法一、使用在线pdf转html如果不想下载软件的话,一些在线工具例如smallpdf中文版、speedpdf......
  • vue中将html导出成pdf
    vue中将页面html内容导出成pdf文件格式,使用 html2canvas、jspdf。首先使用 html2canvas将内容转换为图片,之后写入pdf。1、引用第一个.将页面html转换成图片npminstall--savehtml2canvas第二个.将图片生成pdfnpminstalljspdf--save2、创建  exportTo......
  • 25、matlab随机数生成汇总:控制随机数生成器、均匀分布和正态分布的随机数
    1、rng:控制随机数生成器语法rng(seed,generator)还指定随机数生成器要使用的算法。参数seed:随机数种子    s:随机数生成器设置generator:随机数算法"twister"|"simdTwister"|"combRecursive"|"multFibonacci"|"philox"|"threefry"1)设......
  • 生成式 AI——ChatGPT、Dall-E、Midjourney 等算法理念探讨
    1.概述艺术、交流以及我们对现实世界的认知正在迅速地转变。如果我们回顾人类创新的历史,我们可能会认为轮子的发明或电的发现是巨大的飞跃。今天,一场新的革命正在发生——弥合人类创造力和机器计算之间的鸿沟。这正是生成式人工智能。生成模型正在模糊人类和机器之间的界......
  • python数据分析案例-研究生成绩分析
    一、简介在本次研究中,我们对2018年硕士生考试成绩数据进行了深入的统计分析。这项分析旨在探索不同因素如性别、生源背景、基因型以及出生月份等对学生成绩的潜在影响。我们使用了一系列的统计方法,包括描述性统计分析、相关性分析、分组分析以及方差分析(ANOVA),以获得对这些数据......
  • mybatisplus代码生成
    因为现在使用了mybatis框架,但是一些代码重复很耗费时间,为了加快开发速度,了解了mybatis-plus,而且也知道了能自动生成后端的样例。所需配置<!--mybatisPlus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-star......
  • 交互式流程图组件DHTMLX Diagram v6.0 - 拥有更灵活的高度可定制功能
    DHTMLXDiagram库允许用几行代码构建JavaScript流程图,通过自动布局和实时编辑器,它可以更容易地将复杂数据可视化到一个整洁的层次结构中。DHTMLXDiagramv6.0版本发布,带来了众多令人兴奋的新功能和改进,使得这个JavaScript图表库更加强大和灵活。此次更新不仅增强了现有的功能......
  • C语言Kruskal算法求最小生成树
    Kruskal算法求出最小生成树。图形算法描述先找最小权值边为1的边有(V1,V4),(V2,V9),保证不产生回路就可以成功选择边除去上一次找的边后,在找权值最小的边为2的有(V2,V3),(V4,V3),(V5,V6),(V9,V8),连接不产生回路的边除去之前找过的边,后面再看权值最小的边为3的边有(V1,V3),(V7,V8),(V9,V7)按顺......
  • 使用Kimi+Markmap总结网页内容生成思维导图
    AI可以帮助我们更高效地阅读文章进行提炼总结,像上图这张思维导图,就是使用Kimi进行内容提炼,再使用markmap生成思维导图,下面讲解下详细实现步骤:一、工具准备Kimi,将文章或一篇网页投给他,让他进行核心观点的提炼并生成我们想要的特定格式markmap一个可以将markdown文本转换成思维......
  • 前端引入,Web服务器的本质,HTTP协议,HTML基础,常用标签介绍
    Ⅰ前端引入【一】前端/后端【1】什么是前端任何与用户直接打交道的操作界面都可以称之为前端前端可以是浏览器的界面、也可以是客户端的界面、还可以是手机的界面...比如电脑界面、手机界面、平板界面【2】什么是后端不直接与用户打交道的用于执行真正业务逻辑的代......