我将数据从我的数据库中以HTML格式从我的web应用程序导出到word中,这对我来说工作得很好,我已经将图像插入到记录中,文档也显示了图像,除了我保存该文件并发送给其他人之外,对我来说一切都很好。ms word将找不到该图像的链接
有没有办法将图像保存在文档中,这样就不会出现路径问题
这是我的代码: StrTitle包含所有的超文本标记语言,包括图片链接
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);发布于 2013-06-13 16:48:29
您可以使用base64编码的图像数据来创建html img标记。这样,图像数据被包含在html文档本身中。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />
发布于 2013-06-13 16:49:14
您的镜像可能只能通过文件系统获得(即它们的src以file开头)。
有几种方法
src以http开头,并且托管在下载器可见的web服务器上(例如,下载图片的同一服务器)基于经验
发布于 2013-06-13 17:04:23
由于每个图片,表格的类型是在Word/Excel/Powerpoint中的形状,您可以简单地添加一个AlternativeText到您的程序到您的图片,这将实际保存的网址下载的网址,当你打开,它将检索它的网址并取代它。
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,的图片,你可以同时替换很多图片。
NetOffice.WordApi.InlineShape i=appWord.ActiveDocument.InlineShapes.AddPicture(s.AlternativeText, false, true);它将查找该位置的图片。
您可以使用我为您编写的1个循环对整个文档执行此操作。意思是,如果它是一张图片并且包含一些AlternativeText,那么在你的循环中你可以使用AddPicture函数。
编辑:另一种解决方案是设置一个指向你的图片的超链接,它实际上会转到图片所在的FTP服务器,当你点击图片时,它会打开它,这意味着他可以自己替换它(如果你的文档中有200张图片,这是不好的)
根据剪贴板编辑:
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。您可以对您的图片执行类似的操作,并从数据库中进行拖放。

https://stackoverflow.com/questions/17082809
复制相似问题