using Microsoft.VisualStudio.TestTools.UnitTesting; using System.Drawing.Text; using System.Runtime.InteropServices; namespace Svg.UnitTests { /// /// Test Class of the feature to use Private Fonts in SVGs. /// Based on Issue 204. /// /// /// Test use the following embedded resources: /// - Issue204_PrivateFont\Text.svg /// - Issue204_PrivateFont\BrushScriptMT2.ttf /// [TestClass] public class PrivateFontsTests : SvgTestHelper { private const string PrivateFontSvg = "Issue204_PrivateFont.Text.svg"; private const string PrivateFont = "Issue204_PrivateFont.BrushScriptMT2.ttf"; //private const string PrivateFontName = "Brush Script MT2"; protected override int ExpectedSize { get { return 3200; } } //3512 [TestMethod] public void TestPrivateFont() { AddFontFromResource(SvgElement.PrivateFonts, GetFullResourceString(PrivateFont)); LoadSvg(GetXMLDocFromResource(GetFullResourceString(PrivateFontSvg))); } private void AddFontFromResource(PrivateFontCollection privateFontCollection, string fullFontResourceString) { var fontBytes = GetResourceBytes(fullFontResourceString); var fontData = Marshal.AllocCoTaskMem(fontBytes.Length); Marshal.Copy(fontBytes, 0, fontData, fontBytes.Length); privateFontCollection.AddMemoryFont(fontData, fontBytes.Length); // Add font to collection. Marshal.FreeCoTaskMem(fontData); // Do not forget to frees the memory block. } } }