首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将图像保存到word的HTML引用

问将图像保存到word的HTML引用
EN

Stack Overflow用户
提问于 2013-06-13 16:43:35
回答 4查看 2.1K关注 0票数 0

我将数据从我的数据库中以HTML格式从我的web应用程序导出到word中,这对我来说工作得很好,我已经将图像插入到记录中,文档也显示了图像,除了我保存该文件并发送给其他人之外,对我来说一切都很好。ms word将找不到该图像的链接

有没有办法将图像保存在文档中,这样就不会出现路径问题

这是我的代码: StrTitle包含所有的超文本标记语言,包括图片链接

代码语言:javascript
复制
  string strBody = "<html>" +
            "<body>" + strTitle +
            "</body>" +
            "</html>";
        string fileName = "Policies.doc";
        //object missing = System.Reflection.Missing.Value;
        // You can add whatever you want to add as the HTML and it will be generated as Ms Word docs
        Response.AppendHeader("Content-Type", "application/msword");
        Response.AppendHeader("Content-disposition", "attachment; filename=" + fileName);
        Response.Write(strBody);
EN

回答 4

Stack Overflow用户

发布于 2013-06-13 16:48:29

您可以使用base64编码的图像数据来创建html img标记。这样,图像数据被包含在html文档本身中。

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />

票数 0
EN

Stack Overflow用户

发布于 2013-06-13 16:49:14

您的镜像可能只能通过文件系统获得(即它们的src以file开头)。

有几种方法

  1. 通过互联网提供图片:确保他们的src以http开头,并且托管在下载器可见的web服务器上(例如,下载图片的同一服务器)
  2. 使用库,例如@DevZer0建议的内联图片。

基于经验

  1. 是最简单的实现,但有一些麻烦(服务器需要对用户可用)如果你要做大量的Word或manipulation.
  2. Can文件,
  3. 可能是最好的方法,它可以解决问题,尽管你没有一个完整的库来支持进一步的用例。
票数 0
EN

Stack Overflow用户

发布于 2013-06-13 17:04:23

由于每个图片,表格的类型是在Word/Excel/Powerpoint中的形状,您可以简单地添加一个AlternativeText到您的程序到您的图片,这将实际保存的网址下载的网址,当你打开,它将检索它的网址并取代它。

代码语言:javascript
复制
foreach (NetOffice.WordApi.InlineShape s in docWord.InlineShapes)
{
    if (s.Type==NetOffice.WordApi.Enums.WdInlineShapeType.wdInlineShapePicture &&  s.AlternativeText.Contains("|"))
    {
          s.AlternativeText=<your website URL to download the picture>;
    }
}

这将是C#方法,但将需要更多的时间来处理图片。如果你为它写一个小软件,它可以替换所有包含s.AlternativeText,的图片,你可以同时替换很多图片。

代码语言:javascript
复制
NetOffice.WordApi.InlineShape i=appWord.ActiveDocument.InlineShapes.AddPicture(s.AlternativeText, false, true);

它将查找该位置的图片。

您可以使用我为您编写的1个循环对整个文档执行此操作。意思是,如果它是一张图片并且包含一些AlternativeText,那么在你的循环中你可以使用AddPicture函数。

编辑:另一种解决方案是设置一个指向你的图片的超链接,它实际上会转到图片所在的FTP服务器,当你点击图片时,它会打开它,这意味着他可以自己替换它(如果你的文档中有200张图片,这是不好的)

根据剪贴板编辑:

代码语言:javascript
复制
 string html = Clipboard.GetText(TextDataFormat.Html);
 File.WriteAllText(temporaryFilePath, html);
 NetOffice.WordApi.InlineShape i=appWord.ActiveDocument.InlineShapes.AddPicture(temporaryFilePath, false, true);

Word中的剪贴板能够转换给定的HTML,当您粘贴剪贴板时,可以将表格或图片转换为Word。这也适用于Excel,但不适用于Powerpoint。您可以对您的图片执行类似的操作,并从数据库中进行拖放。

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17082809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档