OfficeMathRenderer

OfficeMathRenderer class

提供渲染个体的方法OfficeMath 到光栅或矢量图像或 Graphics 对象。

要了解更多信息,请访问使用 OfficeMath文档文章。

public class OfficeMathRenderer : NodeRendererBase

构造函数

姓名描述
OfficeMathRenderer(OfficeMath)初始化此类的新实例。

特性

姓名描述
BoundsInPoints { get; }获取形状的实际边界(以点为单位)。
OpaqueBoundsInPoints { get; }获取形状的不透明边界(以点为单位)。
SizeInPoints { get; }获取形状的实际大小(以磅为单位)。

方法

姓名描述
GetBoundsInPixels(float, float)计算指定缩放系数和分辨率的形状边界(以像素为单位)。
GetBoundsInPixels(float, float, float)计算指定缩放系数和分辨率的形状边界(以像素为单位)。
GetOpaqueBoundsInPixels(float, float)计算指定缩放系数和分辨率的形状的不透明边界(以像素为单位)。
GetOpaqueBoundsInPixels(float, float, float)计算指定缩放系数和分辨率的形状的不透明边界(以像素为单位)。
GetSizeInPixels(float, float)计算指定缩放系数和分辨率下形状的大小(以像素为单位)。
GetSizeInPixels(float, float, float)计算指定缩放系数和分辨率下形状的大小(以像素为单位)。
RenderToScale(Graphics, float, float, float)将形状渲染为Graphics 对象达到指定比例。
RenderToSize(Graphics, float, float, float, float)将形状渲染为Graphics 对象到指定大小。
Save(Stream, ImageSaveOptions)将形状渲染为图像并保存到流中。
Save(string, ImageSaveOptions)将形状渲染为图像并保存到文件中。

例子

展示如何测量和缩放形状。

Document doc = new Document(MyDir + "Office math.docx");

OfficeMath officeMath = (OfficeMath)doc.GetChild(NodeType.OfficeMath, 0, true);
OfficeMathRenderer renderer = new OfficeMathRenderer(officeMath);

// 验证 OfficeMath 对象在渲染时将创建的图像的大小。
Assert.AreEqual(119.0f, renderer.SizeInPoints.Width, 0.2f);
Assert.AreEqual(13.0f, renderer.SizeInPoints.Height, 0.1f);

Assert.AreEqual(119.0f, renderer.BoundsInPoints.Width, 0.2f);
Assert.AreEqual(13.0f, renderer.BoundsInPoints.Height, 0.1f);

// 具有透明部分的形状可能在“OpaqueBoundsInPoints”属性中包含不同的值。
Assert.AreEqual(119.0f, renderer.OpaqueBoundsInPoints.Width, 0.2f);
Assert.AreEqual(14.2f, renderer.OpaqueBoundsInPoints.Height, 0.1f);

// 获取形状大小(以像素为单位),并线性缩放到特定 DPI。
Rectangle bounds = renderer.GetBoundsInPixels(1.0f, 96.0f);

Assert.AreEqual(159, bounds.Width);
Assert.AreEqual(18, bounds.Height);

// 获取形状大小(以像素为单位),但水平和垂直尺寸具有不同的 DPI。
bounds = renderer.GetBoundsInPixels(1.0f, 96.0f, 150.0f);
Assert.AreEqual(159, bounds.Width);
Assert.AreEqual(28, bounds.Height);

// 此处的不透明边界也可能有所不同。
bounds = renderer.GetOpaqueBoundsInPixels(1.0f, 96.0f);

Assert.AreEqual(159, bounds.Width);
Assert.AreEqual(18, bounds.Height);

bounds = renderer.GetOpaqueBoundsInPixels(1.0f, 96.0f, 150.0f);

Assert.AreEqual(159, bounds.Width);
Assert.AreEqual(30, bounds.Height);

也可以看看