Back to Website
Show / Hide Table of Contents

Configuring custom paths

  • Last updated on July 15, 2025
  • •
  • 1 minute to read

This article explains how to configure custom paths and other parameters in a .NET application using the Aurigma.DesignAtoms library.

Configuration in .NET Framework

In classic .NET Framework applications, configurations are typically managed using the App.config or Web.config files. These configurations can be accessed using the System.Configuration namespace.

Config sections

To define custom configuration sections, use the <configSections> element. This allows you to specify custom handlers for different configuration sections.

<configSections>
  <section name="Aurigma.DesignAtoms" type="System.Configuration.NameValueSectionHandler" />
</configSections>

Custom configuration section

You can define a custom configuration section like this:

<Aurigma.DesignAtoms>
  <add key="FontDirectory" value="C:\inetpub\aurigma\data\assets\fonts" />
  <add key="ColorProfilesDirectory" value="C:\inetpub\aurigma\data\assets\ColorProfiles" />
  <add key="CmykColorProfileFileName" value="USWebCoatedSWOP.icc" />
  <add key="PdfRenderDeviceProfileEnabled" value="False" />
  <add key="PdfRenderKeepOriginalColors" value="False" />
  <add key="PdfTextOutputMode" value="Text" />
  <add key="PsdTextBoxWorkaroundEnabled" value="False" />
  <add key="PdfHiResRasterizeVectorLayers" value="False" />
  <add key="GetDefaultRichTextStyleFromLastChar" value="False" />
  <add key="IgnoreInDesignMissingLinks" value="False" />
  <add key="LegacyIdmlBleedParsingEnabled" value="False" />
  <add key="FlattenGroups" value="False" />
  <add key="UseAnisotropic9ResizeMode" value="false" />
  <add key="NotFoundGlyphRemovalEnabled" value="false" />
  <add key="LegacyTextEngineEnabled" value="False" />
</Aurigma.DesignAtoms>

Accessing configuration values

To access these configuration values in your code, you can use the ConfigurationManager class:

public string GetParameter(string name)
{
    var collection = ConfigurationManager.GetSection("Aurigma.DesignAtoms") as NameValueCollection;
    return collection?[name];
}

Local paths configuration

Let's look at how you can configure asset paths correctly to understand where to fetch design. This can be done by registering the necessary services with the correct parameters.

Registering Services

Here is an example of how to register a custom ITemplateStorage service with specific paths:

var builder = new ContainerBuilder();
DefaultInjectorFactory.Setup(builder);
builder.RegisterType<LocalTemplateStorage>()
    .WithParameters(new[]
    {
        new NamedParameter("designFolderPath", @"C:\inetpub\aurigma\data\assets\designs"),
        new NamedParameter("mockupFolderPath", @"C:\inetpub\aurigma\data\assets\mockups"),
        new NamedParameter("sourceFolderPath", @"C:\inetpub\aurigma\data\assets\templates"),
    })
    .As<ITemplateStorage>()
    .SingleInstance();

Example application

Let's consider a complete example of a console application that uses the Aurigma.DesignAtoms library to load a PSD template and render it to PDF image:

using Aurigma.DesignAtoms.Configuration;
using Aurigma.DesignAtoms.Convert;
using Aurigma.DesignAtoms.Convert.TemplateStorage;
using Aurigma.DesignAtoms.Rendering;
using Autofac;
using System.Configuration;
using System.IO;

namespace DesignAtomsConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            Injector.CurrentFactory = () =>
            {
                var builder = new ContainerBuilder();
                DefaultInjectorFactory.Setup(builder);
                builder.RegisterType<LocalTemplateStorage>()
                    .WithParameters(new[]
                    {
                        new NamedParameter("designFolderPath", @"C:\inetpub\aurigma\data\assets\designs"),
                        new NamedParameter("mockupFolderPath", @"C:\inetpub\aurigma\data\assets\mockups"),
                        new NamedParameter("sourceFolderPath", @"C:\inetpub\aurigma\data\assets\templates"),
                    })
                    .As<ITemplateStorage>()
                    .SingleInstance();
                return builder.Build();
            };

            var instance = Injector.Instance;
            var parser = instance.Resolve<ITemplateParser>();
            var product = parser.FromFile("samples/test-page.psd");
            var renderer = instance.Resolve<IProductRenderer>();

            using (var fileStream = File.Create("card.pdf"))
            {
                renderer.RenderHiRes(fileStream, product.Product);
            }
        }
    }
}
Was this page helpful?
Thanks for your feedback!
Back to top Copyright © 2001–2025 Aurigma, Inc. All rights reserved.
Loading...
    Thank for your vote
    Your opinion is important to us. To provide details, send feedback.
    Send feedback