遇到此问题,首先想到的就是各种百度。结果度娘了一会并没有发现有用的有效的解决方法,哎,看来还得靠自己啊。

首先整理了下手头上的资源,一是HtmlAgilityPack,专门解析Html文本用的;二是我有ASPOSE.Word。

再整理下思路:在Word中插入Html,首先有一点是肯定的,Word跟Html都是Document结构,这点应该是没啥怀疑的。如此的话就感觉好办多了,无非就是Document上插入几个节点,在Html插入节点的方式完全可以运用到此地方。

那么第一种解决方法就是:首先把Word转换为Html,然后在指定位置插入当前要插入的Html代码,然后再保存成Word格式的文档。

第二种方式就是:把Html解析出有效的文本,利用Word增加段落的方式添加从Html中解析出来的文本。

HtmlAgilityPack.HtmlDocument hd = new HtmlAgilityPack.HtmlDocument();
     hd.LoadHtml(txtContent.Value);

hd.DocumentNode.Elements("p");

通过此方式就可以获取到富文本域里面的所有文本信息。但是此种方式获取到的节点在ASPOSE类里面不识别。

再继续折腾吧,回到ASPOSE上面。找帮助文档,寻百度。

Document doc = new Document(Server.MapPath("~/tem_body.doc"));
      DocumentBuilder docBuilder = new DocumentBuilder(doc);
      docBuilder.InsertHtml(txtContent.Value);

doc.Save(Server.MapPath("~/") + "/TestWord121.doc");

打开保存后的文件,My God,这样就可以了。再试试带图片的,也很不错,图片也可以正常在Word里面正常显示。看来此插件确实很强大啊,不过到目前还并没有解决我的问题。就是插入的位置问题。目前它是插入的头部,即Body的Paragraph 0 处。

接下来就是解决如何把HTML文本插入到指定位置,想了想得首先知道要插入的位置,度娘了一会发现了东东。DocumentExplorer,它可以查看Word文档里面的Doc结构。

速度找了一个,打开后就可以清晰地看到Word文档:

这样的话就知道自己要插入的位置在那个地方。最简单的就是设置好模板,找到要插入的位置节点。

Document temdoc = new Document(Server.MapPath("~/tem.doc"));
    Document doc = new Document();
    DocumentBuilder docBuilder = new DocumentBuilder(doc);
    docBuilder.InsertHtml(txtContent.Value);
    docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
    temdoc.AppendDocument(doc, ImportFormatMode.KeepSourceFormatting);

DocumentBuilder temdocBuilder = new DocumentBuilder(temdoc);

var temParas = temdocBuilder.Document.Sections[1].Body.Paragraphs;
    //int intIndexer = 0;
     foreach (Paragraph para in temParas)
     {

// 这里面随便指定了一个位置,在Paragraphs的第六个节点处
           temdocBuilder.Document.Sections[0].Body.InsertAfter(para.Clone(true), temdocBuilder.Document.Sections[0].Body.Paragraphs[5 + intIndexer - 1].NextSibling);
           intIndexer++;
     }
     temdocBuilder.Document.Sections.RemoveAt(1);

temdoc.Save(Server.MapPath("~/") + "/TestWord1212.doc");

再次保存后打开测试Word文档,符合自己的预期,解决了把HTML文本插入到Word文档的指定位置。再试试带图片的,结果发现Word文档里面有没有图片,回头想想,之前是可以正常保存且显示图片的,现在不显示图片而只显示一个叉叉,看来是因为图片路劲出问题了。

Document temdoc = new Document(Server.MapPath("~/tem.doc"));
    Document doc = new Document(Server.MapPath("~/bank_tem.doc"));
    DocumentBuilder docBuilder = new DocumentBuilder(doc);
    docBuilder.InsertHtml(txtContent.Value);
    docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
    temdoc.AppendDocument(doc, ImportFormatMode.KeepSourceFormatting);

DocumentBuilder temdocBuilder = new DocumentBuilder(temdoc);

var temParas = temdocBuilder.Document.Sections[1].Body.Paragraphs;
    //int intIndexer = 0;
     foreach (Paragraph para in temParas)
     {

// 这里面随便指定了一个位置,在Paragraphs的第六个节点处
           temdocBuilder.Document.Sections[0].Body.InsertAfter(para.Clone(true), temdocBuilder.Document.Sections[0].Body.Paragraphs[5 + intIndexer - 1].NextSibling);
           intIndexer++;
     }
     temdocBuilder.Document.Sections.RemoveAt(1);

temdoc.Save(Server.MapPath("~/") + "/TestWord1212.doc");

再次打开,这次图片不显示问题就解决了。

哎,其实说来此摸索的是还是很漫长,回来折腾了差不多6个小时,感觉总是不得要领,回头又看了看XML的节点操作,才恍然大悟。比如:

temdocBuilder.Document.Sections[0].Body.InsertAfter(para, temdocBuilder.Document.Sections[0].Body.Paragraphs[5 + intIndexer - 1]);编译时不报错,这种方式是不出效果,

总之,希望这个东西对有需要的人能有所帮助。如果有问题可以跟我沟通,如果有好的解决方法也可以告诉我,在此谢谢了。

在Word指定位置插入富文本域值(html文本)相关推荐

  1. Java操作word指定位置插入数据

    需求背景:因项目需要无法使用poi-tl包利用{{}}定位的方式向word模板的指定位置填写信息 解决方法:现利用替换占位字段的方式,在要替换的地方前后都插入书签 示例word: 在需要替换填写内容的 ...

  2. c# 在 word指定位置插入文字和图片(替换 书签)

    使用  Microsoft.Office.Interop.Word  进行插入, word 文件中 插入 "书签" . 在com组件中引用  Microsoft.Word.xxx. ...

  3. Word、PPT、PDF 文件怎么批量插入首页、扉页、尾页?怎么在指定位置插入页?

    概要:在我们日常办公中,经常会碰到需要给一批 Word 文件批量插入首页或者尾页,或者在指定的位置插入新的页的需求,当然除了 Word,PDF 以及 PPT 也有相同的需求.「我的ABC软件工具箱」就 ...

  4. 用 Python 自动生成 Word 文档并在指定位置插入图片

    用Python生成Word文档 在指定位置插入图片 首先当然需要第三方库啦(▽) 天才第一步,第三方的库O(∩_∩)O哈哈~ 参照转发的是这位大佬的博客:https://blog.csdn.net/c ...

  5. 使用Itext操作PDF,修改文本内容及指定位置插入图片

    参考博客:修改文本的 参考博客:插入图片的 这里基于修改文本的博客编写的,主要解决了几个问题: 1.文件乱码 2.设置区域背景色 3.设置文字字体颜色 4.插入图片空指针 5.指定位置插入偏移 等等问 ...

  6. java word添加图片_Java 替换word文档文字并指定位置插入图片

    先说下 需要的依赖包 org.apache.poi poi-excelant 3.12 org.apache.poi poi-scratchpad 3.12 org.apache.poi poi-oo ...

  7. java pdf域插入img_java实现在pdf模板的指定位置插入图片

    本文实例为大家分享了java在pdf模板的指定位置插入图片的具体代码,供大家参考,具体内容如下 java操作pdf有个非常好用的库itextpdf,maven: com.itextpdf itextp ...

  8. POI操作Word中的表格XWPFTable,在指定位置插入行

    最近由于客户使用Word文档展示表格中的数据,我TM...Excel它不香嘛,为什么要用Word去展示表格呢??? 但是呢.客户就是上帝,上帝让我们干嘛我们就要干嘛. 1:有这样一个需求,在已有的Wo ...

  9. python替换指定位置word图片_用Python在word的指定位置插入图片(使用Python-docx包)...

    1 2 首先,本实例是采用java语言的,需要进行xml操作,至于poi,docx4j这些,因为感觉不是文档不太好,要嘛就是操作不方便,而且英文就算了,主要是注释很少,让人云里雾里的.所以,嘿嘿,直接 ...

最新文章

  1. jsp员工管理系统mysql_简单的员工管理系统(Mysql+jdbc+Servlet+JSP)
  2. Beyond Compare比较Word文件的方法
  3. 菜鸟也学DW做ASP
  4. 不包含本位置值的累乘数组
  5. x3850x5服务器内存_联想3850 X5服务器添加内存之后红屏
  6. 第4课 - 深入浅出处理器(续)
  7. c语言字符串算法判断实验原理,C语言第二次实验报告
  8. JQuey中 attr('checked', true)设置状态只有第一次有用
  9. 使用MesaSQLite入库CSV文件
  10. python读取pdf翻译生成word
  11. MES助力日立电梯提升精细化管理水平
  12. 英语学习、常用疑问句型,否定句
  13. 单片机继电器控制实验程序C语言,继电器控制实验
  14. 华为软件类校招 2014年9月3日 熟悉机考环境 1.记票统计 2.求最大递增数 3.Word Maze(单词迷宫)
  15. 插画惯用风格_2020年最佳插画家的10种鼓舞人心的插画风格
  16. redis持久化机制,深入分析redisAOF和RDB模式的利弊
  17. sympy 符号函数求导
  18. 比较水的计算机一区论文,计算机与信息安全学院于SCI一区TOP期刊发表高水平学术论文...
  19. SpringBoot错误-Correct the classpath of your application so that it contains a single, compatible vers
  20. 修改《植物大战僵尸》游戏数据

热门文章

  1. 简述计算机数控系统的工作原理,数控原理与系统复习
  2. python+opencv旋转图片并求旋转之后的特征点坐标
  3. 数据库储存过程超简单实例
  4. a链接插入网址和img插入图片
  5. 结构化建模方法和工具
  6. AutoCAD学习笔记——常用快捷方式及家装设计相关概念
  7. ElasticSearch(三)springboot整合ES
  8. 【考研政治】2021肖八整理(马克思部分)
  9. python 计时器实现_Python 实现计时器(不同方式)
  10. 审查元素怎么查看文件路径,请大神帮助