Document Automation Server Content Extraction release notes
Nutrient Document Automation Server (DAS) Content Extraction was previously known as Kingfisher. This document uses DAS Content Extraction, Kingfisher, and the full product name interchangeably for historical context.
Upgrading
This section provides upgrade instructions for different version paths.
Upgrading within the 2.5/2.6 version family (2.5.x → 2.6.x)
If you’re upgrading from any version 2.5.x to version 2.6.x:
- Copy
Kingfisher.Configfrom<installation location>\binand your Job Condition files to a backup location. - Uninstall the existing version of DAS Content Extraction.
- Install the new version.
License keys
Version 2.5 license keys work with all versions of DAS Content Extraction 2.5 and 2.6.
Upgrading to version 2.5 from version 2.1
If you’re upgrading from version 2.1 to version 2.5 or later, note the following important changes. For details of all changes from version 2.1 to 2.5, refer to the version 2.5.2105.19 section.
Requirements
DAS Content Extraction now requires Microsoft .NET Framework 4.7.2 to be installed. The installer will check for this during installation.
Under some circumstances, you may need to manually install .NET Framework 4.7.2.
Email settings
SMTP passwords will need to be reentered after the upgrade. For more information, refer to section 2.3.2 of the reference guide.
Preserving existing condition files when upgrading
Condition files are upgraded automatically when the user interface starts for the first time.
However, if you don’t have a current backup of your condition files, back up the condition files before installing the new version of DAS Content Extraction.
The condition files are located in [installation folder]\Conditions.
License keys
Version 2.5 of DAS Content Extraction requires a new license key.
This is a free upgrade for holders of a current Support and Maintenance Contract (included in the first year of a perpetual license) and holders of a current Subscription License.
Contact us for additional information.
Upgrade process
You can upgrade DAS Content Extraction by uninstalling the existing version and then installing the new version.
Release history
This section provides detailed release notes for each version of Nutrient Document Automation Server Content Extraction (previously known as Kingfisher). Each version entry includes information about new features, improvements, bug fixes, and license key compatibility.
For upgrade instructions, refer to the upgrading section above.
Version 2.6.2510.23
License keys
Uses existing version 2.5 license keys.
Improvements and bug fixes
KF-223 — Migrated SharePoint authentication from deprecated ADAL to supported MSAL library
SharePoint authentication has been migrated from the deprecated Azure Active Directory Authentication Library (ADAL) to the supported Microsoft Authentication Library (MSAL). MSAL provides enhanced security, improved token handling, and greater flexibility for modern authentication scenarios.
KF-209 — Log files no longer being written to an incorrect location
There was a bug in template handling that replaced non-legal characters in templates with hyphens, so log files were saving in the wrong location. This issue has been fixed.
Version 2.5.2404.12
License keys
Uses existing version 2.5 license keys.
Improvements and bug fixes
KF-186 — SharePoint exclude locations issue where location includes escaped characters
When the location included escaped character (such as %20), the Exclude Location would not be excluded. This has been fixed.
KF-185 — Additional notes on SharePoint operations
Detailed notes on regular expressions and exclusion locations (refer to KF-186 for more information).
Version 2.5.2404.11
License keys
Uses existing version 2.5 license keys.
Improvements and bug fixes
KF-184 — Additional notes on SharePoint locations
Added notes to the reference guide.
KF-183 — SDK update
Rolls in SDK updates.
KF-182 — PDF split operation leads to garbled rendered text with some files
Certain files displayed garbled text after a split operation. This is due to odd font used in file.
This has been fixed.
Version 2.5.2402.05
License keys
Uses existing version 2.5 license keys.
Improvements
KF-178 — Renaming file containing special characters doesn’t generate correct name for SharePoint handler
Some characters that are valid for the file system cause issues with SharePoint locations. This has been fixed by replacement.
Version 2.5.2312.14
License keys
Uses existing version 2.5 license keys.
Improvements
KF-177 — Improve tool tips
Tooltips throughout the user interface have been improved for better clarity and usability.
Version 2.5.2312.11
License keys
Uses existing version 2.5 license keys.
Bug fixes
KF-164 — Rename based on text match doesn’t use Text Matches Pattern to extract text when Selected Zone is All
The rename operation now correctly applies the Text Matches Pattern to extract text when the Selected Zone is set to All. Previously, this pattern was ignored in this configuration.
Version 2.5.2311.29 (Limited release)
License keys
Uses existing version 2.5 license keys.
Bug fixes
KF-171 — Infinite loop on certain files
Resolved an issue where certain PDF files caused the application to enter an infinite loop during processing. The application now handles these files correctly.
KF-169 — SDK maintenance release
This fix resolves an issue where hidden text removal inadvertently removed visible text from documents after the optical character recognition (OCR) process. The system now correctly retains visible text when removing hidden text, ensuring document integrity.
KF-167 — Selecting DataMatrix barcode only not working
The barcode reader now correctly processes files when only the DataMatrix barcode type is selected. Previously, this selection didn’t function properly.
KF-166 — Selection of 2D barcodes isn’t reliable
Two-dimensional barcode detection has been improved for more reliable and consistent recognition across different document types.
KF-165 — Using “select all text in line after” option causes unresponsive crash
For certain files, selecting this option caused the Kingfisher user interace to become unresponsive when the extracted text was viewed.
This has been fixed.
Version 2.5.2210.10
License keys
Uses existing version 2.5 license keys.
Bug fix KF-153 — Advanced export — Area-selected barcodes not being read
If a barcode was selected by area, the value wasn’t being written to the output XLSX or CSV file. This has been fixed
Version 2.5.2210.03 (Limited release)
License keys
Uses existing version 2.5 license keys.
Bug fix
KF-160 — Overwrite existing file — SharePoint bug
Kingfisher wasn’t throwing an error for SharePoint destinations when trying to overwrite an existing file when this option was set to Off. This is fixed.
This bug fix may cause existing job conditions to fail if the Overwrite Existing switch is off.
KF-155 — Fix splash screen date
KF-148 — Add license agreement file to installer
Version 2.5.2207.25
License keys
Uses existing version 2.5 license keys.
Bug fix
SDK-188 — Output file sizes after SPLIT BY RANGES are larger than input file size
Some PDF source files were found that when using split by ranges generated output files that were larger than expected.
This has been fixed.
Version 2.5.2205.10
License keys
Uses existing version 2.5 license keys.
Improvements
KF-149 — Add a Force OCR option in config for files with electronic signatures / Bates numbers etc.
Image only PDF pages with applied Bates numbering or which have received electronic signatures may have a character count above the value in the application configuration field SearchableThreshold. This will mean that the page is identified as searchable and won’t be processed by optical character recognition (OCR).
This improvement adds a forceocr field in the job condition files which will cause the page to be always OCRd.
<forceocr>True</forceocr>This field (with a default value of False) is added automatically when a job is saved by version 2.5.2205.06 or later of Kingfisher. Set this value to True to force OCR of all PDF pages processed by this job.
Make a copy of the job condition file before editing and only edit them while the Kingfisher UI is closed. Contact support for more information.
Latest Aquaforest OCR and PDF engine
This release includes the latest version of the Aquaforest OCR and PDF engines.
Version 2.5.2204.29 (Limited release)
License keys
Uses existing version 2.5 license keys.
Bug fixes
OCR issue in 2.5.220426 fixed.
Version 2.5.2204.26 (Limited release)
License keys
Uses existing version 2.5 license keys.
Improvements and bug fixes
KF-151 — SP upload fails with error — the attempted operation is prohibited because it exceeds the list view
Updated the SharePoint connection object. This is fixed.
Version 2.5.2204.05
License keys
Uses existing version 2.5 license keys.
From 31 March 2022 Kingfisher is only available as a subscription product.
Existing permanent Kingfisher 2.5 licenses will remain valid (and function as permanent licenses).
Additional Support and Maintenance Cover (SMC) for existing permanent licenses will continue to be available for version 2.5.
Improvements and bug fixes
KF-148 — License information display
Kingfisher license information is included in the installation.
KF-147 — Add option to enable errored jobs to be scheduled without being cleared
By design Kingfisher won’t run a scheduled task if the previous run generates an error. Two new fields have been added to the kingfisher.config file that enable controls over this behavior for jobs scheduled either Once Per Day or Continuous.
<add key="ScheduleOncePerDayContinueAfterError" value="false" /><add key="ScheduleContinuousContinueAfterError" value="false" />KF-145 — Documentation — Describe the use of template files
While creating new job conditions, it is tempting to use a file in the Source location. This might be moved subsequently which causes a message to be displayed when the job condition is viewed.
The use of a template folder is described in the reference guide.
KF-144 — Document that UNC path names must be used instead of mapped drives
All file paths used in job conditions must use either local drive names or Universal Naming Convention (UNC) paths.
This is now documented.
KF-143 — Custom script archiveinputs.wsf doesn’t show an error if the archive folder is on a non-valid drive
The revised custom script raises the following Exit Codes:
- 0 — Success
- 1 — Destination folder not found
- 2 — Error in process
- 3 — Source file not found
The previous custom script is still included in the zip file.
KF-130 — License keys without Subscription or Trial selected but with expiry date don’t display expiry date
Under certain circumstances license keys may be generated that aren’t tagged as Subscription or Trial. They now display the expiry date.
Version 2.5.2202.28
License keys
Uses existing version 2.5 license keys.
Bug fixes
KF-140 — Append data to an existing XLSX file – formatting lost
Prior to this release, subsequent data appended to an existing XLSX file wasn’t formatted correctly. This has been fixed in this version.
Version 2.5.2111.29
License keys
Uses existing version 2.5 license keys.
Bug fixes
KF-128 — When a SharePoint location becomes inaccessible, the job doesn’t return an error
Prior to this release, if an authenticated SharePoint location becomes inaccessible, possibly due to a certificate expiring, it didn’t return an error exit code. Error information was added to the log. This has been fixed in this version.
KF-127 — When the last job condition is deleted it is still possible to click “Save” and Kingfisher crashes
The application now properly validates the state when the last job condition is deleted, preventing users from clicking Save and avoiding the crash that previously occurred in this scenario.
Version 2.5.2110.13
License keys
Uses existing version 2.5 license keys.
Bug fixes
KF-126 — Job Wizard for Export PDF content operation doesn’t have a Next for Select Variables
Fixed bug in the job wizard which displayed a blank Select Variables tab and didn’t enable progression by clicking on Next. Export PDF content as text doesn’t use the Select Variables tab.
Version 2.5.2109.29
License keys
Uses existing version 2.5 license keys.
Improvements and bug fixes
Bugfix to barcode settings relating to bits per pixel setting.
Version 2.5.2109.21
License keys
Uses existing version 2.5 license keys.
Improvements and bug fixes
KF-124 — Barcode reader returns phantom barcode values on some diagrams
Some documents containing diagrams with lots of parallel lines could be read as Code 128 Short barcodes.
Short Code 128 has been added as a selectable/unselectable barcode type so it can be unselected if required.
KF-123 — Barcode settings available in the UI
The two settings mentioned in release 2.5.2106.11 are now available in the Kingfisher UI.

| Option | Description |
|---|---|
| Barcode renderer DPI | Set the dots per inch (DPI) used by the barcode engine to read the barcode. With certain images, results can be improved by increasing the DPI above the nominal image DPI. |
| Barcode color depth | Set the color depth (bits per pixel) used by the barcode engine to read the barcode. Though barcodes are traditionally in black and white, color images may include barcodes where the lines or background are in shades or are crossed by colored lines. Changing the color depth can improve results. |
KF-121 — Common.Log file incomplete with “default” Kingfisher.Config Logpath
The default Kingfisher.Config LogPath setting used a relative path, this could lead to log file information being mislaid if the “current folder” value changed during processing. This was a potential issue when the application was installed on drives other than C:.
This has been fixed.
KF-119 — Identify missing SMTP settings when saving
List missing SMTP settings in error message.
Version 2.5.2106.11
License keys
Uses existing version 2.5 license keys.
Improvements and bug fixes
Barcode reading on color documents
The default settings for reading barcodes work for most cases. Color documents and certain other documents occasionally require the job condition file to be manually edited.
The following are suggested settings suitable for color documents with very fine barcodes:
<barcodedpi>400</barcodedpi><pdftoimagebpp>8</pdftoimagebpp>Make a copy of the job condition file before editing and only edit them while the Kingfisher UI is closed. Contact support for more information.
Issue with anonymous SMTP email setup resolved.
SMTP tab now has option for Anonymous access.

Set the Basic SMTP to off for Anonymous SMTP.
Anonymous SMTP with O365/Exchange Online.
If using Exchange On-Line the email sender and recipients must be on the same domain.
For O365/Exchange Online, refer to the Microsoft documentation(opens in a new tab).
Version 2.5.210602
License keys
Uses existing version 2.5 license keys.
Bug fixes
This version fixes a bug in the Split by Barcode and remove Barcode Page.
Version 2.5.2105.19
This release introduced major changes when upgrading from version 2.1. For complete upgrade instructions, refer to the Upgrading to version 2.5 from version 2.1 section.
New features
Kingfisher 2.5 uses the new Aquaforest SDK 3.
Updated OCR Engine
The new Aquaforest SDK 3 Standard OCR engine improves performance and accuracy.
For more information, refer to the SDK release notes.
Updated PDF Toolkit
The Aquaforest SDK 3 PDF Toolkit includes a number of minor improvements.
The SDK release notes contains more information.
Updated Barcode Engine
The Barcode Engine now has improved barcode recognition. Additional default settings are available in the Kingfisher.config file located in [installation folder]\bin.
| Settings | Description |
|---|---|
| BarcodeDPI | PDF to Image conversion DPI setting |
| PdfToImageBpp | PDF to Image Bits per Pixel |
Job condition files contain the values used for that specific job.
The following barcode types are no longer supported:
- MAXICODE
- AZTEC
- MSI
- Plessey
For more information, refer to the reference guide.
Modern Authentication for SharePoint On-Line (Office365)
The Modern (or OAuth2) Authentication provides a more secure method to access resources such as SharePoint/Office365 and email. This release of Kingfisher has an option to use OAuth2 authentication.

For details on setting up Modern (OAuth2) Authentication and its usage, refer to the Microsoft documentation(opens in a new tab) or the Kingfisher Reference Guide.
Modern Authentication for Email (Office365)
Modern (or OAuth2) Authentication is provided as an option for email.

Modern (OAuth2) Authentication for email can use either Client Secret or a Certificate.
For details on setting up Modern (OAuth2) Authentication and its usage, refer to the Microsoft documentation(opens in a new tab) or the Kingfisher Reference Guide.
Minor improvements
KF-120: Choosing to not save changes to job condition should discard changes
Previous versions of Kingfisher didn’t discard changes when no was selected in response to a Save Unsaved Changes dialogue. Selecting no now discards changes and reloads the job condition from file.
KF-112: Extended the file naming templates available in Kingfisher
Additional file naming templates are available.
These include zero padded versions of %INDEX% (%INDEX2%, %INDEX3%, %INDEX4%, %INDEX5%, %INDEX6%) plus %YEAR% and %MONTH%.
For more details, refer to section 2.2.6.1 of the Reference Guide.
KF-109: Add a progress indicator while a job is running
Some job types didn’t display progress information, which made it difficult to determine if jobs (especially split jobs) involving large files were processing. Progress information is now written to the log.
KF-100: Add Office 365 Modern Authentication to Aquaforest Kingfisher
This version introduces Modern (OAuth2) Authentication support for Office 365 integration. For complete details on this feature, refer to the Modern Authentication sections above.
General log files path changed
General log files are now generated by default in the folder:
[Installation location]\ logfiles\GeneralLogs
For more details, refer to the Kingfisher.Config field LogPath in the configuration guide.
Bug fixes
KF-116 — Handle log file display when selected job hasn’t previously run
A previous log file of another job was being displayed when either the selected job hasn’t previously been run or the previous log files for that job have been deleted. This has been corrected.
KF-115 — Display current service status
If the Kingfisher Server is stopped via Services or another program, or suffers an internal fatal error, this isn’t reflected on the Kingfisher UI.
This caused the display of misleading error messages when the UI is used to start a job.
The Kingfisher Service Status is now updated as part of the UI update.
KF-114 — Removed language setting in options
Kingfisher is available in US English only.
KF-113: Kingfisher command line doesn’t work when Kingfisher is installed to another drive
When Kingfisher was installed on the non-default drive, command line calls fail to complete. This has been tested with this version and this issue has been resolved.
KF-111: Error Codes not returned during command line calls
Some error codes weren’t being returned to the command line. This has been fixed.
KF-110 — Extract pages mislabelling documents
Under certain conditions pages extracted from large documents weren’t being named correctly. This has been fixed.
KF-108 — PDF rasterizer causing some PDFs not to display properly
The PDF rasterizer has been updated to correctly render PDF files that were previously displaying incorrectly. All affected PDF files now display properly.
KF-107 — Barcode zonal detector doesn’t work if zone extends off page
If a zone extends off the page, the barcode wasn’t read. This was only an issue where the document contains both landscape and portrait pages.
A zone that extended the whole length of the portrait page would hang off the bottom of a landscape page, resulting in the zone being void.
The zone used on the page is now cropped to that page size.
KF-106 — Kingfisher crashes when job is changed from one type to another (tested with rename to split)
The Kingfisher UI would crash if a job was changed from rename to split. This has been fixed.
KF-105 — Kingfisher SP/O365 paths are case sensitive
SharePoint and Office365 paths supplied as source or target location with different case to the actual path failed to upload. This has been fixed.
KF-101 — Advanced extract to Excel: Set overwrite existing to true when append to file is selected
The overwrite file flag is now internally set true when append to file is selected (the overwrite file toggle switch is disabled). Append to file requires the overwrite permission.
Version 2.1.190627
New features
Updated OCR Engine
We have added our new OCR SDK to Kingfisher, this contains bug fixes and improvements.
Bug fixes
KF-91 — Text in line after value was returning all the text in the zone
The text extraction now correctly returns only the text in the line after the specified value, rather than returning all text in the entire zone.
KF-90 — Code encryption was causing some operations to fail
In some environments the following operations failed due to the code hiding algorithm in use:
- Using the Next button when creating new jobs in the wizard.
- Barcodes weren’t getting picked up in some environments.
- SharePoint Uploads and Downloads
This has been corrected.
Version 2.1.190607
New features
KF-85 — Retain bookmarks in split PDF files
Kingfisher now has the ability to retain bookmarks in the output of split PDF files
Bug fixes
KF-87 — Kingfisher not considering new line (\r\n) as a word delimiter
When recognizing words in a PDF file, Kingfisher used a space to know it has arrived at the end of the word, but if the word appears at the end of the it will have new line characters (\r\n) instead of a space. Previous version didn’t take this into account.
KF-86 — Kingfisher not executing custom script until there is an output file
In the previous versions of kingfisher, we weren’t running the custom script if the job didn’t produce an output file, we have now changed it to run the script every time the job is executed.
KF-79 — Parsing floats in a different culture
Kingfisher uses float numbers to define the coordinate or zones. When we parse these floats in some cultures the full stops are treated as commas, as a result 45.20 will become 4520. Due to this issue the user will get empty or random text values extracted. We are now using integers to represent zones in Kingfisher.
KF-77 — WCF opening too many session instances
The Kingfisher service was creating too many WCF instances and this was causing the service to hang.
This has been fixed.
KF-74 — Incorrect custom script argument "OldFilePath"
The temp file location was being passed to the script instead of the original file path as the OldFilePath argument in Kingfisher.
KF-72 — When using "Text in Zone" Kingfisher sets all the text to lower case
KF-71 — When a value is empty, Kingfisher places it with the next value
When using a Split, Rename or Extract Pages step, Kingfisher enables you to use four values to rename the output file. If there wasn’t text extracted for one of the values, kingfisher will replace it with the next value: i.e. if %VALUE2% is empty, the value of %VALUE3% will go where if %VALUE2% was supposed to be and %VALUE3% will be replaced by an empty string.
Version 2.1.190412
Upgrading from earlier versions
Requirements
This release requires both version 3.5 and version 4.6 of the .NET framework. The setup will check whether they are installed on your system and if not, will take you to the appropriate Microsoft site to download and install.
Preserving existing job definitions when upgrading
Existing job definition and status files from earlier versions aren’t compatible with Version 2.1. Kingfisher will Upgrade these files when the GUI is opened for the first time.
The job definition files are in the “conditions” and “status” folders in the product installation folder. If the new release is installed in a different location (which by default was installed under C:\ Aquaforest\kingfisher\), these folders may be copied to the new location.
License keys
This version has the same license key as version 2.0.
If you have any questions about upgrading to version 2.1 please contact Aquaforest support: support@nutrient.io
New features
SharePoint integration
We have added the ability to use SharePoint and Office 365 document libraries as source and destination locations for kingfisher. As a result, we have added a new tab to the kingfisher Job settings as shown below. For more details, refer to section 2.2.2 of the reference guide.

Filter locations by regular expression
You can now specify patterns that input file must match before they can be processed in Kingfisher. For more details, refer to section 2.2.2 of the reference guide.
Excluded locations
You can now specify paths that will be skipped by Kingfisher. For more details, refer to section 2.2.2 of the reference guide.
Skip-Row header
We have added the option for the “Advanced Extract to Excel” step to skip the header row if you wish to output many files to the same XLS/CSV.

Extract metadata to CSV
We have added the ability to extract Metadata from PDF Files as part of the “Advanced Export to CSV/XLSX”.

Improvements
Data matrix barcodes
The former versions of Kingfisher struggled with recognizing Data Matrix barcodes, this has been improved in this version.
Warning message is displayed if you try to open Kingfisher when it’s already running
Ref: KF-50
The application now displays a warning message to prevent users from opening multiple instances of Kingfisher simultaneously, which could cause conflicts or data corruption.
Bug fixes
Rename Step: Regular expressions not being applied properly
Ref: KF-70
Regular expressions in the Rename step now function correctly and are applied as expected to file renaming operations.
PDF to CSV/XLS – Table id numbering starting from zero
Ref: KF-69
Tables are automatically numbered from 0 to n, but the product asserts that the minimum table id should be 1, as a result, you get a validation error when you try to exclude a table with id zero.
In this version, the table id will start from 1.
PDF to CSV-XLS – Scrolling through the grouped tables crashes the GUI
Ref: KF-68
Scrolling through the grouped table list using the controls highlighted below causes the GUI to crash.
This has been fixed in this version.

PDF to CSV/XLS: Remove the option to exclude tables/groups from the Document View Tab, as it doesn’t work
Ref: KF-67
The non-functional option to exclude tables and groups from the Document View Tab has been removed from the interface to avoid confusion.
Export to PDF to CSV/XLS: Empty message when no tables are found
Ref: KF-64
The application now properly displays an informative message when no tables are detected during the PDF to CSV/XLS export process, rather than showing an empty message.
Some conditions exist where kingfisher wasn’t returning a message when it failed to detect any tables.
Special characters in text expressions where not getting escaped
Ref: KF-60
If a special character (. Or “)”) exist in an expression, it might produce an unpredictable output because kingfisher wasn’t escaping the special characters.
Kingfisher doesn’t cope with rotated pages and multiple zones
Ref: KF-58
The application now properly handles documents containing rotated pages when multiple zones are defined, ensuring accurate text extraction and processing across all page orientations.
Split and Extract pages not labeling the output files accurately
Ref: KF-55
This is caused by inaccurately ordering the split files before renaming it. In Kingfisher we perform the whole split in one operation, as a result, we:
- Split the files into integer named files e.g. 1,2,3,4,5,6,7,8,9,10,11,12,13,14.
- We rely on the ordering of the file to correctly match the extracted text to its file counterpart.
- When the temp is on a network location, the algorithm used picked up the file in the following order 1,10,11,12,13,14,2,3,4 instead of 1,2,3,4,5.
When processing UNC path’s on a single file, we are incorrectly generating the output path
Ref: KF-35
The output path generation for UNC (Universal Naming Convention) paths has been corrected to properly handle single file operations and generate the correct destination path.
Split by Page Range & Repeating Page Ranges Step not showing some user controls
Ref: KF-48
The Split by Page Range and Repeating Page Ranges configuration screens now correctly display all user controls and options that were previously hidden or missing.
When using Split by Text Match, Split by Text Change & Extract Pages based on Text Match the OCR stops at page 10
Ref: KF-48
The OCR process now continues beyond page 10 when using Split by Text Match, Split by Text Change, or Extract Pages based on Text Match operations, ensuring all pages in the document are processed.
Barcode values that have been matched aren’t used to determine the split condition
Ref: KF-44
The split condition logic now correctly uses the refined and matched barcode values instead of the raw barcode data initially picked up from the page, ensuring accurate split decisions based on processed barcode information.
This is a bug, we are returning the barcode picked up from the page instead of the refined and matched barcode. As a result, we use the original barcode picked up to decide whether to split the page or not.