//// This code is part of Document Solutions for Word demos.// Copyright (c) MESCIUS inc. All rights reserved.//usingSystem.IO;usingSystem.Collections.Generic;usingGrapeCity.Documents.Word; namespaceDsWordWeb.Demos{// This sample shows how to embed font data into a DOCX.publicclassEmbedFonts {publicGcWordDocumentCreateDocx() {// Custom names for fonts that will be embedded:conststringmyFontName1 = "My Font 1";conststringmyFontName2 = "My Font 2"; var doc = newGcWordDocument(); // Use first of the fonts to be embedded:var p = doc.Body.Paragraphs.Add();var run = p.GetRange().Runs.Add($"Text rendered using embedded font \"{myFontName1}\".");// Apply custom font to the run: run.Font.Name = myFontName1; // Use second of the fonts to be embedded: p = doc.Body.Paragraphs.Add(); run = p.GetRange().Runs.Add($"Text rendered using embedded font \"{myFontName2}\"."); run.Font.Name = myFontName2; // For reference, Panose numbers for Latin Text:// 1.Family Kind(= 2 for Latin Text)// 2.Serif Style// 3.Weight// 4.Proportion// 5.Contrast// 6.Stroke Variation// 7.Arm Style// 8.Letterform// 9.Midline// 10.X - height // Add first font (Noto Serif Regular) to the document:var font1 = doc.Fonts.Add(myFontName1);// Font settings: font1.CharSet = FontCharSet.Ansi; font1.Family = GrapeCity.Documents.Word.FontFamily.Roman; font1.Pitch = FontPitch.Variable; font1.Panose = newList<byte> { 2, 2, 6, 3, 5, 4, 5, 2, 3, 4 }; font1.Signature.CodePageRange1 = 0x000001ff; font1.Signature.CodePageRange2 = 0x00000000; font1.Signature.UnicodeRange1 = 0xE0002EFF; font1.Signature.UnicodeRange2 = 0xC000785B; font1.Signature.UnicodeRange3 = 0x00000009; font1.Signature.UnicodeRange4 = 0x00000000;// Load the "Noto Serif" font data:byte[] data1 = File.ReadAllBytes(Path.Combine("Resources", "Fonts", "NotoSerif-Regular.ttf"));// Embed font data into the document: font1.Embedded.Add(EmbeddedFontType.Regular, FontDataType.ObfuscatedTrueTypeFont, data1); // Add second font (Noto Sans Bold Italic) to the document:var font2 = doc.Fonts.Add(myFontName2);// Font settings: font2.CharSet = FontCharSet.Ansi; font2.Family = GrapeCity.Documents.Word.FontFamily.Swiss; font2.Pitch = FontPitch.Variable; font2.Panose = newList<byte> { 2, 11, 8, 3, 2, 2, 3, 2, 3, 4 }; font2.Signature.CodePageRange1 = 0x000001ff; font2.Signature.CodePageRange2 = 0x00000000; font2.Signature.UnicodeRange1 = 0xE0002EFF; font2.Signature.UnicodeRange2 = 0xC000785B; font2.Signature.UnicodeRange3 = 0x00000009; font2.Signature.UnicodeRange4 = 0x00000000;// Load the "Noto Sans Bold Italic" font data:byte[] data2 = File.ReadAllBytes(Path.Combine("Resources", "Fonts", "NotoSans-BoldItalic.ttf"));// Embed font data into the document: font2.Embedded.Add(EmbeddedFontType.BoldItalic, FontDataType.ObfuscatedTrueTypeFont, data2); // Done:return doc; } }}