New to Telerik Document ProcessingStart a free 30-day trial

Create Custom Predefined CMaps Provider

Updated on Jun 5, 2026
Product VersionProductAuthor
2021.1.118RadPdfProcessingMartin Velikov

Description

This article shows how to create a custom implementation of the PredefinedCMapsProviderBase to use a custom CMap table.

Solution

Create a custom class that inherits PredefinedCMapsProviderBase and pass it to the PredefinedCMapsProvider property of the FixedExtensibilityManager class.

Example 1: Create a custom class inheriting PredefinedCMapsProviderBase

csharp

	internal class CustomPredefinedCMapsProvider : PredefinedCMapsProviderBase
    {
        private readonly PredefinedCMapsProviderBase predefinedCMapsProvider;

        public CustomPredefinedCMapsProvider(PredefinedCMapsProviderBase predefinedCMapsProvider)
        {
            this.predefinedCMapsProvider = predefinedCMapsProvider;
        }

        public override byte[] GetCidCMapData(string name)
        {
            if (name == "90ms-RKSJ-V")
            {
                return File.ReadAllBytes("90ms-RKSJ-V");
            }

            return this.predefinedCMapsProvider.GetCidCMapData(name);
        }

        public override byte[] GetUnicodeCMapData(string name)
        {
            return this.predefinedCMapsProvider.GetUnicodeCMapData(name);
        }
    }
	

Example 2: Set the custom PredefinedCMapsProvider to the FixedExtensibilityManager

csharp

	FixedExtensibilityManager.PredefinedCMapsProvider = new CustomPredefinedCMapsProvider(new PredefinedCMapsProvider());
 

See Also

In this article
DescriptionSolutionSee Also
Not finding the help you need?
Contact Support