using Aspose.Imaging;
using Aspose.Imaging.CoreExceptions;
using Aspose.Imaging.Exif;
using Aspose.Imaging.Exif.Enums;
using Aspose.Imaging.FileFormats.Bmp;
using Aspose.Imaging.FileFormats.Dicom;
using Aspose.Imaging.FileFormats.Djvu;
using Aspose.Imaging.FileFormats.Emf;
using Aspose.Imaging.FileFormats.Eps;
using Aspose.Imaging.FileFormats.Eps.Consts;
using Aspose.Imaging.FileFormats.Gif;
using Aspose.Imaging.FileFormats.Gif.Blocks;
using Aspose.Imaging.FileFormats.Jpeg;
using Aspose.Imaging.FileFormats.Jpeg2000;
using Aspose.Imaging.FileFormats.Pdf;
using Aspose.Imaging.FileFormats.Png;
using Aspose.Imaging.FileFormats.Psd;
using Aspose.Imaging.FileFormats.Svg;
using Aspose.Imaging.FileFormats.Tga;
using Aspose.Imaging.FileFormats.Tiff.Enums;
using Aspose.Imaging.ImageFilters.FilterOptions;
using Aspose.Imaging.ImageOptions;
using Aspose.Imaging.Sources;
using Aspose.Imaging.Xmp;
using Aspose.Imaging.Xmp.Schemas.Dicom;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;

string templatesFolder = @"c:\Users\USER\Downloads\templates\";
string dataDir = templatesFolder;

EmfRasterizationOptions emfRasterizationOptions = new EmfRasterizationOptions();
emfRasterizationOptions.BackgroundColor = Color.WhiteSmoke;

// Create an instance of PNG options
PngOptions pngOptions = new PngOptions();
pngOptions.VectorRasterizationOptions = emfRasterizationOptions;

// Load an existing EMF image
using (EmfImage image = (EmfImage)Image.Load(dataDir + "template.emf"))
{
    image.CacheData();

    // Set height and width, Reset font settings
    pngOptions.VectorRasterizationOptions.PageWidth = 300;
    pngOptions.VectorRasterizationOptions.PageHeight = 350;
    FontSettings.Reset();
    image.Save(dataDir + "result.png", pngOptions);

    // Initialize font list
    List<string> fonts = new List<string>(FontSettings.GetDefaultFontsFolders());

    // Add new font path to font list and Assign list of font folders to font settings and Save the EMF file to PNG image with new font
    fonts.Add(dataDir + @"fonts\");
    FontSettings.SetFontsFolders(fonts.ToArray(), true);
    image.Save(dataDir + "result2.png", pngOptions);
}

File.Delete(dataDir + "result.png");
File.Delete(dataDir + "result2.png");