CORE

单位转换器

在 OOXML 度量单位之间转换 — TWIP、EMU、像素、英寸、磅

OOXML 使用多种度量系统。WordprocessingML 使用 TWIP,DrawingML 使用 EMU(英制度量单位)。这些转换器弥合了它们之间的差距。

TWIP 转换

TWIP = 二十分之一磅。1 英寸 = 1440 TWIP。

import { convertMillimetersToTwip, convertInchesToTwip } from "@office-open/core";

convertMillimetersToTwip(25.4); // 1440(1 英寸)
convertInchesToTwip(1); // 1440
convertInchesToTwip(0.5); // 720

EMU 转换

EMU = 英制度量单位。1 英寸 = 914400 EMU。用于图片、形状和绘图。

像素 ↔ EMU(96 DPI)

import { convertPixelsToEmu, convertEmuToPixels } from "@office-open/core";

convertPixelsToEmu(100); // 952500
convertEmuToPixels(952500); // 100

英寸 ↔ EMU

import { convertInchesToEmu, convertEmuToInches } from "@office-open/core";

convertInchesToEmu(1); // 914400
convertEmuToInches(914400); // 1

磅 ↔ EMU

import { convertPointsToEmu, convertEmuToPoints } from "@office-open/core";

convertPointsToEmu(12); // 152400
convertEmuToPoints(152400); // 12

多态转换器

这些转换器接受原始数字(已是目标单位)或通用度量字符串(mm/cm/in/pt/pc/pi,EMU 链还支持 96 DPI 的 px)。用于 number 为原生单位、字符串提供便捷输入的字段—— number 原样透传。

import { convertToEmu, convertToTwip, convertToPt, convertToInch } from "@office-open/core";

convertToEmu("5cm"); // 1800000(几何字段:number = EMU)
convertToEmu(1800000); // 1800000
convertToTwip("1cm"); // 567(Word 段距/缩进)
convertToPt("1cm"); // 28.35(xlsx 行高)
convertToInch("1.3cm"); // 0.512(xlsx 页边距)

转换表

函数公式
mmTWIPconvertMillimetersToTwipmm × 56.692913
英寸TWIPconvertInchesToTwipin × 1440
像素EMUconvertPixelsToEmupx × 9525
EMU像素convertEmuToPixelsemu ÷ 9525
英寸EMUconvertInchesToEmuin × 914400
EMU英寸convertEmuToInchesemu ÷ 914400
EMUconvertPointsToEmupt × 12700
EMUconvertEmuToPointsemu ÷ 12700

常用单位参考

单位全称使用场景1 英寸等于
TWIP二十分之一磅WordprocessingML1440
EMU英制度量单位DrawingML914400
pt排版72
px像素(96 DPI)屏幕布局96
mm毫米公制25.4
Copyright © 2026