DOCX

媒体

Word 文档中的嵌入式媒体支持

Word 文档可以嵌入多种媒体类型。本包通过 image 属性提供图片支持,这是 DOCX 文件中使用的主要媒体类型。

详细的图片文档请参阅 图片

支持的媒体类型

类型格式JSON 属性
栅格图片JPG, PNG, GIF, BMP, TIF, ICOimage
矢量图片SVG(带回退)image
EMF/WMFEMF, WMFimage

视频和音频

OOXML 规范支持通过媒体关系嵌入视频和音频,但播放取决于打开文档的应用程序。对于复杂的媒体嵌入场景,可以考虑:

  • 使用 Media 工具函数管理媒体关系
  • 将视频缩略图作为图片嵌入,并添加指向在线视频 URL 的超链接

OLE 对象

通过 object 运行子元素内联嵌入 OLE 对象(如 Excel 工作表、ActiveX 控件)。该对象渲染一个 VML 预览(iconImage)并引用嵌入的二进制(embed):

import { generateDocument } from "@office-open/docx";

await generateDocument({
  sections: [
    {
      children: [
        {
          paragraph: {
            children: [
              {
                object: {
                  width: "5.3cm",
                  height: "2.6cm",
                  iconImage: { data: iconBytes, type: "emf", title: "Excel Sheet" }, // 预览
                  embed: {
                    data: oleBytes, // Uint8Array 或 base64 data URL
                    progId: "Excel.Sheet.12",
                    drawAspect: "icon", // "content" | "icon"
                  },
                },
              },
            ],
          },
        },
      ],
    },
  ],
});

object 选项

选项类型说明
widthnumber | UniversalMeasure显示宽度(数字 = EMU)
heightnumber | UniversalMeasure显示高度
dxaOrignumber原始宽度(twips)
dyaOrignumber原始高度(twips)
iconImageobject预览 { data, type, title? }
embedobject嵌入式 OLE { data, progId?, drawAspect?, fieldCodes? }
linkobject链接式 OLE(继承 embed,加 updateMode
controlobjectActiveX 控件 { rId, name?, shapeid? }
moviestringMovie 关系 id

embed.dataiconImage.data 接受 Uint8Array 或 base64 data URL。解析时 w:object 会往返还原为同样的 { object } 运行子元素。

image 选项

选项类型说明
typestring图片格式("png""jpg""gif""bmp""svg"
dataBuffer | Uint8Array | ArrayBuffer | string (data URL)图片数据(缓冲区或 base64)
transformationobject{ width, height }(EMU 或通用度量)
floatingobject浮动定位(锚定或内联)
altTextobject{ title, description } 用于无障碍
Copyright © 2026