Skip to main content
You can develop solutions based on FC for sale to third parties. A solution is a Document Definition and may include the following additional components:
  • A FlexiLayout created in FlexiLayout Studio
  • A rule module or a special data checking algorithm that uses rules to check data
  • An export module or a custom export procedure
You can protect your solution from unlicensed use using a Developer’s License and a unique solution identifier. Only users with a User’s License will be able to make use of your solution.

Protecting Document Definitions

  1. Send a message describing your solution and listing its components to the ABBYY office in your region.
  2. Depending on the type of the solution you are developing, the ABBYY office will provide you with unique identifiers for your solution’s components, and in some cases a developer’s license. The unique identifiers can be included in the source code of your solution’s components and checked against the identifiers specified in a User’s License.
  3. Start FC, open the Document Definition editor, click Document Definition Properties… on the Document Definition menu in the editor, select the General tab and enter the unique solution identifier you received from the ABBYY office.
  4. When selling your solution to a client, ask the ABBYY office for a User’s License that includes the unique solution identifier. Without this license, your client will not be able to use the Document Definition or FlexiLayout to process documents.

Protecting individual components

Any component can be developed and protected independently from a complete solution. If you want to protect a FlexiLayout, you will need a Developer’s License. For details, see the Projects → Protection features for FlexiLayouts and Classifiers article of ABBYY FlexiLayout Studio help. Export modules and rule modules are integrated into a Document Definition using a script. You will not need a Developer’s License to protect these modules. If your solution allows using modules with any Document Definitions, you can protect them by including a unique identifier check in the module’s code.
We recommend developing an external library in the *.dll format and integrating it with ABBYY FlexiCapture. This will make the source code unavailable to users.
To do this, use the IsModuleAllowedByLicense method in your module to check whether the user’s license allows using the module:
IsModuleAllowedByLicense ( authorId : string, moduleName : string ) : bool
In the code sample above, authorId is the unique identifier of the developer, and moduleName is the unique identifier of the solution.
The following code sample illustrates how a method can check for a parameter in a license:
private bool CheckLicense()
       {
            if (FCTools.IsModuleAllowedByLicense("ABBYY RU", "ModuleName") == false)
            {
                FCTools.ShowMessage("Your license does not allow the use of this module", true);
                return false;
            }
            else
            {
                // FCTools.ShowMessage("License is OK", false);
                return true;
            }
        }
You can call the license check method in an export script as follows:
public void ExportDocument(ref IExportDocument docRef, ref FCTools FCTools )
        {
            if (CheckLicense() == true)
            {
                …
                exportImages(docRef, FCTools, exportFolder);
                    // export information about the document
                exportDocInfo(docRef, sw);
                    // export fields
                exportFields(docRef.Children, sw, "");
            }
        }
If the license does not include a module with the name ModuleName and the author ABBYY RU, exporting documents will result in an error.