如何在Word中显示HTML生成的图像?

问题描述 投票:0回答:5

我当前正在通过生成 HTML 并更改标题信息以显示为 .doc 文件来创建 Word 文档。这是一个穷人的方法,但效果很好(到目前为止)。

我只是被要求在文件中包含一张图像。我最好的想法是使用 Base64 嵌入图像。这在浏览器中工作得很好,但是 Word 只给了我一个带有 X 的框。

有关如何将图像嵌入此文件并使其显示在 Microsoft Word 中的建议?

html ms-word base64
5个回答
16
投票

这是一个困难的问题,Word 无法处理

data:
HTML 中的 base64 编码图像,至少这是这个问题这个 MSDN 讨论中的结果。

您有三个选择:

  • 在文档所在位置创建一个文件夹,将其与文档一起存放,并相对引用图像(

    <img src='imageFolder/image1.jpg'>
    )

  • 使用绝对 URL 或文件路径(更糟糕)

  • 查看新的 Word > 2003 基于 XML 的文件格式,这绝对是可能的。

我能想到的唯一其他选择实际上是创建一个本机 Word 文件,例如使用 OpenOffice。


3
投票

你可以使用这个html-docx.js

您只需致电

htmlDocx.asBlob("YOUR HTML")

链接到示例 html 以使用图像生成文档。


1
投票

我刚刚通过将 DOCX 打印为 PDF,然后使用 Acrobat 将其另存为 HTML 来实现这一点。图像显示很小,但就在那里。


0
投票
 MIME-Version: 1.0
Content-Type: multipart/related; boundary="----=_NextPart_"

------=_NextPart_
Content-Location: file:///C:/Doc2.htm
Content-Transfer-Encoding: quoted-printable
Content-type: text/html; charset="utf-8"

<html xmlns:v=3D"urn:schemas-microsoft-com:vml">
<head>
<style>
</style>
</head>

<body>

  <v:shape style=3D'width:234.75pt;height:135.75pt;'>
     <v:imagedata src=3D"Doc2/i1.png" />
  </v:shape>

</body>

</html>


------=_NextPart_
Content-Location: file:///C:/Doc2/i1.png
Content-Transfer-Encoding: base64
Content-Type: image/png

iVBORw0KGgoAAAANSUhEUgAAATkAAAC1CAYAAAAk5IjmAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
..
AAAAAElFTkSuQmCC

------=_NextPart_--

-1
投票

我也有类似的问题。我通过将 Base64 图像解码到磁盘并创建图像链接、在应用程序中部署 servlet 来侦听磁盘上图像指向的链接来解决这个问题。 这是我实施的解决方案:

如何将 HTML 转换为格式良好且样式属性完好的 DOCX

© www.soinside.com 2019 - 2024. All rights reserved.