Building FormAssist From Source
This topic provides information on:
FormAssist is distributed with FormSuite as a convenient, precompiled executable. We also provide the source code and Visual Studio project so you can customize FormAssist to better suit your needs.
Available Build Configurations
In the FormAssist project, there are several build configurations:
Build Configuration |
Description |
Debug |
- Step through the FormAssist code using Visual Studio debugger.
- Compilation will include only the core FormSuite components necessary for the typical forms processing workflow: FormDirector, FormFix, FormsAPI, SmartZone ICR, SmartZone OCR, ScanFixXpress, ImagXpress, and NotateXpress for template markup purposes.
|
Debug_ALL |
- Step through the FormAssist code using Visual Studio debugger.
- Compilation will include only the core FormSuite components necessary for the typical forms processing workflow, plus the component, PDF Xpress1.
|
Release |
- Strips debugging features in favor of optimization.
- Compilation will include only the core FormSuite components necessary for the typical forms processing workflow: FormDirector, FormFix, FormsAPI, SmartZone ICR, SmartZone OCR, ScanFixXpress, ImagXpress, and NotateXpress for template markup purposes.
|
Release_ALL |
- Strips debugging features in favor of optimization.
- Compilation will include only the core FormSuite components necessary for the typical forms processing workflow, plus the component, PDF Xpress1.
|
1While ImagXpress supports scanned, Image-Only PDFs (see Supported File Formats for more details), PDF Xpress provides more comprehensive PDF support when you need to create form templates from PDFs or process forms that are in PDF format. Visit our PDF Xpress product page for more information.
NuGet Package Dependencies
The FormAssist Demo has dependencies on the NuGet packages of each of the FormSuite components, i.e. FormsAPI, FormDirector, FormFix, ScanFix, SmartZoneICR, and SmartZoneOCR. It also has dependencies on Accusoft's ImagXpress, NotateXpress and PdfXpress NuGet packages, which are used to facilitate image loading and annotation for use in the demo, but which are not necessary to work with FormSuite.
The Visual Studio 2017 and 2019 project files provided with the included FormAssist source code use the FormSuite.Net NuGet package, which conveniently pulls in all of the above packages as dependencies in one go.
Dependencies are automatically handled.
Package Id |
Description |
Assemblies |
Package Dependencies |
Accusoft.FormSuite.Net |
A convenient metapackage that pulls in all FormSuite components as well as Accusoft's ImagXpress, NotateXpress and PdfXpress NuGet packages. |
None |
.NETFramework, Version=4.0 Accusoft.FormsAPI.Net Accusoft.ImagXpress13.Net Accusoft.NotateXpress13.Net Accusoft.PdfXpress7.Net |
Accusoft.FormsAPI.Net |
The Forms API component contains all the necessary objects, methods, and properties it takes for you to perform high-level forms processing with an easy to use API. |
Accusoft.FormsAPI.Net.dll |
.NETFramework, Version=4.0 Accusoft.FormDirector.Net Accusoft.FormFix.Net Accusoft.ScanFixXpress.Net Accusoft.SmartZone.Net |
Accusoft.FormDirector.Net |
The FormDirector™ component contains all the necessary objects, methods, and properties it takes for you to integrate various Accusoft components into a robust forms-processing product. |
Accusoft.FormDirector.Net.dll |
.NETFramework, Version=3.5 |
Accusoft.FormFix.Net |
The FormFix™ component contains all the necessary objects, methods, and properties it takes for you to speed the application development process of structured forms processing systems. |
Accusoft.FormFix.Net.dll |
.NETFramework, Version=3.5 |
Accusoft.ScanFixXpress.Net |
The ScanFix Xpress™ component contains all the necessary objects, methods, and properties it takes for you to improve image quality and increase content recognition accuracy by applying image processing and enhancements to color, grayscale, and black and white images. |
Accusoft.ScanFixXpress.Net.dll |
.NETFramework, Version=3.5 |
Accusoft.SmartZone.Net |
This package contains all dependencies you need to use both SmartZone OCR and SmartZone ICR.
The SmartZone™ OCR component performs OCR recognition in user defined areas of interest (i.e. zones) or full page. SmartZone™ OCR can be easily integrated with other Accusoft components into a robust forms-processing product.
The SmartZone™ ICR component contains all the necessary objects, methods, and properties it takes for you to perform high accuracy zonal and full page ICR recognition.
Requires NuGet 2.5 or higher. |
None |
.NETFramework, Version=3.5 Accusoft.SmartZoneICR.Net Accusoft.SmartZoneOCR.Net |
Accusoft.SmartZoneICR.Net |
The SmartZone™ ICR component contains all the necessary objects, methods, and properties it takes for you to perform high accuracy zonal and full page ICR recognition. |
Accusoft.SmartZoneICR.Net.dll |
.NETFramework, Version=3.5 |
Accusoft.SmartZoneOCR.Net |
SmartZone™ OCR performs OCR recognition in user defined areas of interest (i.e zones) or full page. SmartZone OCR can be easily integrated with other Accusoft components into a robust forms-processing product. |
Accusoft.SmartZoneOCR.Net.dll |
.NETFramework, Version=3.5 Accusoft.SmartZone.Runtime.Win (>= 6.x.x)
|
Accusoft.SmartZone.Runtime.Win |
SmartZone language resources (win-x86, win-x64). |
None |
None |
Accusoft.SmartZone.Runtime.Asian.Win |
SmartZone Asian language resources (win-x86, win-x64). |
None |
Accusoft.SmartZone.Runtime.Win |
Accusoft.ImagXpress13.net |
The ImagXpress® Component is the flagship of the ImagXpress Product Family, offering the core imaging functionality of compression, decompression, viewing, and processing. |
Accusoft.ImagXpress13.Net.dll |
.NETFramework, Version=2.0 |
Accusoft.NotateXpress13.Net |
NotateXpress™ is an invisible-at-runtime (windowless) control that adds powerful annotation functionality to the Accusoft ImagXpress component. NotateXpress enables annotation capability both programmatically and through application end-user interaction. |
Accusoft.NotateXpress13.Net.dll |
.NETFramework, Version=2.0 |
Accusoft.PdfXpress7.Net |
PDF Xpress™ is a powerful control that enables the user to build applications supporting PDF file creation, editing, and viewing using licensed Adobe® technology. It is used to create PDF documents, modify and reorganize existing PDF documents, access metadata, view and create PDF/A documents, and more. |
Accusoft.PdfXpress7.Net.dll |
.NETFramework, Version=2.0 |
Asian Language OCR Recognition
The FormAssist demo builds with the optional package Accusoft.SmartZone.Runtime.Asian.Win to provide OCR support for Chinese, Japanese, Korean, Thai, and Vietnamese languages. This package may be safely omitted if OCR support for these languages is not required.
Asian Language OCR Recognition requires a separate license for development and deployment. Please contact an Accusoft Sales Representative (info@accusoft.com) or see our pricing page for more information.
Customizing SmartZone NuGet Packages
Accusoft.SmartZone.Runtime.Win & Accusoft.SmartZone.Runtime.Asian.Win
The required OCR language resource files are copied to folder $(OutDir)assets after the MSBuild Target "Build" completes. By default, this directory is expected to be adjacent to the Accusoft.SmartZoneOCR.Net.dll assembly at runtime.
To change this location to a different directory:
- Override the MSBuild property Accusoft_SmartZone_OCRDataPath in your project.
<PropertyGroup>
<Accusoft_SmartZone_OCRDataPath>$(OutDir)my_app</Accusoft_SmartZone_OCRDataPath>
</PropertyGroup>
- Provide this new location to SmartZone OCR with its OCRDataPath property before recognition is performed.
Uninstalling the Accusoft.SmartZone.Runtime.Win and Accusoft.SmartZone.Runtime.Asian.Win packages does not delete resource files copied from building your application.
Troubleshooting
The troubleshooting section covers some common issues you may encounter and how to resolve them.
NuGet Package Restore Failed: (The Specified Path, File Name or Both are too long.)
NuGet Package restore failed for project [ProjectName]: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters... |
To remedy, do one of the following:
- Enable long path support. See article Long Path Support (NuGet CLI).
- Override the location in which to install NuGet packages using a nuget.config file with a repositoryPath (packages.config only) or globalPackagesFolder (projects using PackageReference only) to provide a shorter path. See article nuget-config-file reference.
- Relocate your project to a directory with a shorter path.
The Specified Path, File Name, or Both are Too Long. (Accusoft.SmartZone.Runtime.Win Only)
During a build, Target "CopyAccusoftSmartZoneRuntimeWin" can fail copying OCR language resources:
error MSB4023: Cannot evaluate the item metadata "%(Filename)". The item metadata "%(Filename)" cannot be applied to the path "XXXX". The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. |
To remedy, do one of the following:
PDF Xpress Evaluation License
A PDF Xpress Evaluation license needs to be enabled to avoid getting a "No license found for PDF Xpress" dialog.
Add the Evaluation License to a Machine
Run the following steps (preferred method):
- Run the LicenseManger.exe app found in the licensing\licensemanager directory of the extracted FormSuite Zip file.
- Click the Install an evaluation license with different edition link on the login dialog.
- Select with a FormSuite Evaluation license, then click on the Activate link.
- Click the Close button to finish.
Alternatively, a runtime version of the evaluation license is contained in the AccuComponent class (AccuComponent.cs) in the FormAssist project. To enable this code, in the AccuComponent.PDFXpress property getter uncomment the following lines:
Since these lines are for enabling an Evaluation license, it will need to be removed after you have purchased a valid Toolkit (SDK) license.