OfficeMathRenderer

OfficeMathRenderer class

Provides methods to render an individual OfficeMath to a raster or vector image or to a Graphics object.

To learn more, visit the Working with OfficeMath documentation article.

public class OfficeMathRenderer : NodeRendererBase

Constructors

NameDescription
OfficeMathRenderer(OfficeMath)Initializes a new instance of this class.

Properties

NameDescription
BoundsInPoints { get; }Gets the actual bounds of the shape in points.
OpaqueBoundsInPoints { get; }Gets the opaque bounds of the shape in points.
SizeInPoints { get; }Gets the actual size of the shape in points.

Methods

NameDescription
GetBoundsInPixels(float, float)Calculates the bounds of the shape in pixels for a specified zoom factor and resolution.
GetBoundsInPixels(float, float, float)Calculates the bounds of the shape in pixels for a specified zoom factor and resolution.
GetOpaqueBoundsInPixels(float, float)Calculates the opaque bounds of the shape in pixels for a specified zoom factor and resolution.
GetOpaqueBoundsInPixels(float, float, float)Calculates the opaque bounds of the shape in pixels for a specified zoom factor and resolution.
GetSizeInPixels(float, float)Calculates the size of the shape in pixels for a specified zoom factor and resolution.
GetSizeInPixels(float, float, float)Calculates the size of the shape in pixels for a specified zoom factor and resolution.
RenderToScale(Graphics, float, float, float)Renders the shape into a Graphics object to a specified scale.
RenderToSize(Graphics, float, float, float, float)Renders the shape into a Graphics object to a specified size.
Save(Stream, ImageSaveOptions)Renders the shape into an image and saves into a stream.
Save(Stream, SvgSaveOptions)Renders the shape into an SVG image and saves into a stream.
Save(string, ImageSaveOptions)Renders the shape into an image and saves into a file.
Save(string, SvgSaveOptions)Renders the shape into an SVG image and saves into a file.

Examples

Shows how to measure and scale shapes.

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

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

// Verify the size of the image that the OfficeMath object will create when we render it.
Assert.AreEqual(122.0f, renderer.SizeInPoints.Width, 0.25f);
Assert.AreEqual(13.0f, renderer.SizeInPoints.Height, 0.15f);

Assert.AreEqual(122.0f, renderer.BoundsInPoints.Width, 0.25f);
Assert.AreEqual(13.0f, renderer.BoundsInPoints.Height, 0.15f);

// Shapes with transparent parts may contain different values in the "OpaqueBoundsInPoints" properties.
Assert.AreEqual(122.0f, renderer.OpaqueBoundsInPoints.Width, 0.25f);
Assert.AreEqual(14.2f, renderer.OpaqueBoundsInPoints.Height, 0.1f);

// Get the shape size in pixels, with linear scaling to a specific DPI.
Rectangle bounds = renderer.GetBoundsInPixels(1.0f, 96.0f);

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

// Get the shape size in pixels, but with a different DPI for the horizontal and vertical dimensions.
bounds = renderer.GetBoundsInPixels(1.0f, 96.0f, 150.0f);
Assert.AreEqual(163, bounds.Width);
Assert.AreEqual(27, bounds.Height);

// The opaque bounds may vary here also.
bounds = renderer.GetOpaqueBoundsInPixels(1.0f, 96.0f);

Assert.AreEqual(163, bounds.Width);
Assert.AreEqual(19, bounds.Height);

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

Assert.AreEqual(163, bounds.Width);
Assert.AreEqual(29, bounds.Height);

See Also