Technical FAQs

Question

How can I improve the performance and memory usage of scanning/recognition in Barcode Xpress?

Answer

Barcode Xpress supports a number of optimization settings that can improve your recognition performance, sometimes up to 40%, along with memory usage. The best way to optimize Barcode Xpress is to fine-tune the properties of the Reader class to be specific to your application’s requirements.

BarcodeTypes

  • The best way to increase performance is to limit which barcodes Barcode Xpress should search for. By default, BarcodeTypes is set to UnknownBarcode which targets all 1D barcodes.

MaximumBarcodes

  • This property will instruct Barcode Xpress to halt searching after finding a specified number of barcodes. The default value is 100.

Area & Orientation

  • If you know the location or orientation of your barcodes in your image, specifying an orientation (such as Horizontal) and area can prevent Barcode Xpress from searching for vertical or diagonal barcodes, or in places where barcodes would not exist.

ScanDistance

  • Raising this value increases performance by applying looser recognition techniques by skipping rows of an image. However, this may fail to detect barcodes.

Finally, BarcodeXpress Professional edition does not impose a 40 page-per-minute limit on processing.

Question

Why do I get a “File Format Unrecognized” exception when trying to load a PDF document in ImageGear .NET?

Answer

You will need to set up your project to include PDF support if you want to work with PDF documents. Add a reference to ImageGear24.Formats.Pdf (if you’re using another version of ImageGear, make sure you’re adding the correct reference). Add the following line of code where you specify other resources:

using ImageGear.Formats.PDF;

Add the following lines of code before you begin working with PDFs:

ImGearFileFormats.Filters.Insert(0, ImGearPDF.CreatePDFFormat());
ImGearPDF.Initialize();

The documentation page linked here shows how to add PDF support to a project.

Watch our webinar to discover how PrizmDoc, leveraging IBM watsonx.ai, can revolutionize your document workflows. Learn how AI-powered features streamline document management, boost development speed, and enhance security in Enterprise Content Management (ECM) applications. Whether you’re looking to improve eDiscovery or automate document processing, this session will provide valuable insights into how cutting-edge AI can give your business a competitive edge. 

 

To learn more about how Accusoft’s PrizmDoc can provide the document management features you need, visit our PrizmDoc page or talk to one of our integration specialists.

 

Question

We are saving files to the PDF/A standard and are running into a few cases where the file cannot be saved as PDF/A by ImageGear .NET. Why is this, and how do we do it properly?

Answer

First, determine whether a PDF document can be converted to PDF/A by creating an ImGearPDFPreflight object from your document, and generating an ImGearPDFPreflightReport object from it:

using (ImGearPDFPreflight preflight = new ImGearPDFPreflight((ImGearPDFDocument)igDocument))
{
    report = preflight.VerifyCompliance(ImGearPDFPreflightProfile.PDFA_1A_2005, 0, -1);
}

The first argument of the VerifyCompliance() method is the standard of PDF/A you want to use. ImageGear .NET is currently able to convert documents to adhere to the PDF/A-1A and PDF/A-1B standards:

PDF/A-1 Standard

ImageGear and PDF/A

There are parts of the PDF/A-2 and PDF/A-3 standards which may allow for more documents to be converted, but ImageGear .NET currently does not support those. This could possibly be why your document cannot be converted in ImageGear .NET.

Once the report is generated, you can access its Status, which will tell you if the document is fixable. You can also access its Code which will let you know if it’s a fixed page or if it has issues; it will return Success if fixed, or some error code otherwise. You can check these conditions to determine whether it’s worth attempting to convert the document:

// If the document is not already PDFA-1a compliant but can be converted
if ((report.Code == ImGearPDFPreflightReportCodes.SUCCESS) ||
(report.Status == ImGearPDFPreflightStatusCode.Fixable))
{
    ImGearPDFPreflightConvertOptions pdfaOptions = new ImGearPDFPreflightConvertOptions(ImGearPDFPreflightProfile.PDFA_1A_2005, 0, -1);
    ImGearPDFPreflight preflight = new ImGearPDFPreflight((ImGearPDFDocument)igDocument);
    preflight.Convert(pdfaOptions);
    saveFile(outputPath, igDocument);
}

// Create error message if document was not converted.
else if (report.Status != ImGearPDFPreflightStatusCode.Fixed)
{
    printAllRecordDescriptions(report);
    throw new ApplicationException("Given PDF document cannot be converted to PDFA-1a standard.");
}

If you want more information on why a document may not be convertible, you can access the preflight report for its records and codes. A preflight’s "Records" member is a recursive list of preflight reports. A preflight report will have a list of reports under Records, and each of those reports may have more reports, etc. You can recursively loop through them as seen below to output every reason a document is not convertible:

    private static void printAllRecordDescriptions(StreamWriter file, ImGearPDFPreflightReport report)
    {
        foreach (ImGearPDFPreflightReport rep in report.Records)
        {
            file.WriteLine(rep.Description);
            file.WriteLine(rep.Code.ToString() + "\r\n");
            printAllRecordDescriptions(file, rep);
        }
    }

Ultimately, the failure of a document to convert to PDF/A is non-deterministic. While some compliance failures can be corrected, in combination they may not be correctable. Therefore, the unfortunate answer is that to determine if it can be converted, conversion must be attempted.

Question

After restarting the Prizm Services, you may notice that the http://localhost:18681/admin status page shows a status of “unhealthy” and in the Internal Services section, the mongo-manager-service is showing a clock, and the text-service is showing a red x.

How can this be fixed?

Answer

Reason:

This will typically occur when the mongo-manager-service detects an unclean shutdown and the cache gets corrupted.

How to Verify:

You can do a search in the C:\Prizm\logs\mongod.log file on Windows or the /usr/share/prizm/logs/mongod.log file on Linux for the word "unclean" and you may find the following error:

Detected unclean shutdown -
C:\Prizm\cache\mongo-manager-service\data\mongod.lock is not empty.

Resolution:

  1. Stop the Prizm Services.

  2. For PrizmDoc 13.3 and above, clear out all subfolders under prizm\cache (leave the prizm\cache folder).

  3. For PrizmDoc 13.2 and prior, clear out all files and subfolders under C:\Prizm\services\mongo-manager-service\bin\mongodb\data

  4. Start the Prizm Services.

Question

How can I enable content encryption in PrizmDoc Viewer?

Answer

First, you need to enable content encryption on the PrizmDoc Server in the central configuration file. To do this, find the viewing.contentEncryption.enabled section and change the value to true. Save the changes to the file and restart the PrizmDoc services for the change to take effect.

The file paths for the central configuration file are:

Linux: /usr/share/prizm/prizm-services-config.yml
Windows: C:\Prizm\prizm-services-config.yml

Next, you need to enable content encryption in the Viewer. To do this, in the index page of your viewer (Default.aspx in C#, index.php in the PHP sample, index.html, etc.), provide the encryption option in the viewer options parameter as follows so that the Viewer can handle encrypted data:

function buildViewerOptions() {
    ...
    var optionsOverride = args.pop(); // always last arg
    var options = {
        ...
        encryption: true
    };
    var combinedOptions = _.extend(optionsOverride, options);
    embedViewer(combinedOptions);
}

For more in-depth information on enabling content encryption in PrizmDoc, please refer to our documentation here.

Question

Is it possible to automatically annotate a document, similar to the Auto-Redaction feature, using PrizmDoc?

Answer

An auto-annotation feature isn’t an out-of-the-box feature but with some work, it can be done. This would involve creating a searchTask and using the information from it to programmatically create XML markup that can be used in the MarkupBurner.

To do this you would need to create a searchTask for the pattern you would like to annotate. You can then get the results of the searchTask as JSON which will contain all occurrences of that pattern/search. Each search result will include the selected text, the page on which it occurs, the starting index of the result, and the dimensions and coordinates of the bounding rectangles for that search result.

All this information can be used to construct the markup XML to add the annotations with the markup burner.

Once you have constructed the XML you would post to the MarkupBurner with the XML as the body to burn the document.

Question

I need to store a unique ID with each of my marks. Is the ID returned by Mark.GetID() unique?

Answer

The ID generated by Mark.GetID() is only unique for that instance of the viewing session (for example, if you refresh the page, the counter for mark IDs will reset to 1).

If you are saving your marks to markup layers using the SaveMarkupLayers() method, then each mark will have a unique ID generated which will be stored in the “uid” key in the markup layer JSON.

If you are saving your marks as XML, using the SaveMarks() method, then each mark’s unique ID will be stored in the key “nodeId”.

If you want to generate your own unique ID for your marks, you can include the code below in your viewer.js to generate a UUID. A UUID contains 122 randomly generated bits so you shouldn’t need to worry about any duplicate IDs:

    function uuidv4() {
      return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
        (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
      )
    }

You can store this UID in the marks data using Mark.SetData("ID", uuidv4());.

You can then use Mark.GetData("ID"); to retrieve the ID at a later time.

Question

How accurate is PrizmDoc Viewer’s auto-redaction process? Is there any estimate of the percentage of matches that it will fail to redact?

Answer

If you’re performing auto-redaction as described in our documentation, then all matches for the input regular expression will be redacted in the final document. However, it’s difficult to express that confidence in the form of a percentage. PrizmDoc is subjected to a suite of automatic testing to ensure that its services are behaving as intended, including redactions. We never release a new version unless it passes 100% of those tests.

That being said, the primary way that inaccuracy could enter the system is if you’re attempting to redact scanned documents that have been OCRed. In this case, it’s a matter of your OCR software’s accuracy, rather than the accuracy of PrizmDoc’s redaction process. If the searchable text of the document doesn’t accurately reflect the visible text on the page (for example, if a smudged “discovery” is incorrectly recognized as “disccvery”), then the auto-redaction will be unable to recognize it due to the incorrect input it has been given. This isn’t a problem if the documents were not OCRed.

Question

How does the PrizmDoc print function work exactly?

Answer

Every page of the specified print range is being loaded and sent to the printer. This occurs in an iframe separate from what is shown in the Viewer so the user does not actually see this happening.

The actual method being used is one of the following, depending on the browser:

  • _iframe.contentWindow.document.execCommand('print', false, null);
  • _iframe.contentWindow.print();
Question

If you have a copy of ImagXpress, there are cases where calling certain functions will trigger the following message:

"This function is available in another edition of ImagXpress v13.00
control"

What could cause this error?

Answer

This error can occur if ImagXpress Standard Edition is licensed on a system, but you’re trying to call operations that are only available in ImagXpress Professional Edition. So, you will need to ensure you’re using the proper license.

This documentation page specifies the functions that are supported for each edition.

This can also occur if you own both Barcode Xpress and ImagXpress Professional. Barcode Xpress includes ImagXpress Standard Edition, so if you install the ImagXpress Professional license first, and then install Barcode Xpress, the included Standard license will overwrite the Professional license. The resolution in this case is to re-install the ImagXpress license to overwrite Standard with Professional.

document management bank

The COVID-19 crisis has permanently changed the way banks do business. While many financial firms were already shifting away from brick-and-mortar branches toward both mobile and digital alternatives, pervasive pandemic priorities required a rapid shift in physical presence — forcing companies to rapidly react with remote work alternatives.

Some — such as JPMorgan — were already prepping for potential shifts in early March, deploying a pilot project that saw 10% of its 125,000 employees working from home. Banks like BMO, meanwhile, have embraced the new normal. The company says that around 36,000 staff members may permanently split their time between home and corporate offices. 

While this focus on employee efficacy and engagement is critical, productive people aren’t the only element of remote work success. Security and speed are two of the qualities that consumers now expect across all key banking functions, and firms must prioritize digital processes that streamline these processes without compromising financial requirements. 

But what does this look like in practice? How do organizations handle document management, process automation, and employee collaboration at a distance — without breaking the bank?


Facing Financial Frustrations

When work-from-home went from “maybe” to mandate, Deutsche Bank found itself racing to keep up. With just a few thousand out of its 90,000-strong workforce already working remotely, the firm was under pressure to scale capabilities quickly — from reimbursing staff for device purchase to rolling out video conferencing tools for more than 50,000 employees in less than two weeks, the bank has been under pressure to deliver remote work processes that deliver both continuity and compliance.

With finance firms historically lagging on technology adoption, however, this presents a significant problem. While cloud-based communication and collaboration tools are now commonplace — and can be readily adapted to work-from-home environments — the tools and tech necessary to underpin key financial functions are often tied to in-house server stacks and legacy applications. 

This creates a digital disconnect. While staff may have access to corporate networks, many of the secure document management and financial processing solutions they need to complete day-to-day operations simply weren’t designed to operate at a distance. Security accounts for part of this separation — regulatory control is critical for banks to ensure client privacy — but many banks have also focused on familiarity over functionality, adopting a “good enough” approach to cumbersome, on-site applications. As a result, firms now face financial frustration across critical workflows, including:

  • Consumer Vetting — How do banks effectively evaluate potential client credit histories and financial foundations to deliver tailored service recommendations at a distance? Insecure credit or personal data access could have significant regulatory and legal repercussions.
  • Credit Approvals — Necessary credit checks require secure connections and the assurance that data won’t be subject to theft or man-in-the-middle attacks.
  • Loan Applications — Bank staff must complete complex forms at a distance and firms must ensure work-from-home employees have the tools they need to handle multiple file formats.
  • Account Management — Opening, closing, and modifying account information requires secure access and the ability to share key documents with specific data removed or redacted. Financial data shared outside secure workflows could result in compliance failures.

 


Solving for Scale

While many big banks are preparing partial return-to-work strategies or ramping up remote work solutions, smaller financial firms don’t have this luxury. The scale of large enterprises affords bigger budgets for IT management and deployment, giving them a deeper pool of resources to pull from when deciding how best to support staff and systems at a distance. From in-house IT teams capable of creating custom-built apps to legacy software solutions that can be updated to work with new collaboration tools, the scale of big banks offers a marked advantage.

For smaller financial firms with the bulk of their workforce already at home and a return to the office unlikely in the near future, fragmentation is the familiar framework. Many SMEs now use multiple document management applications to streamline key processes — but these apps don’t always work well together.

In the office, this doesn’t pose a significant problem — staff might lose time switching between software tools or moving data across digital divides — but at home, access and agility are both restricted. This becomes more complicated thanks to the rise of multi-cloud computing. While purpose-built cloud services empower small banks to keep pace with their enterprise counterparts, they introduce complexity as access points both multiply and diversify.


Driving Digital Dividends

To drive digital dividends at a distance, smaller banks are well-served by the implementation of advanced software development kits (SDKs) and application programming interfaces (APIs). These tools make it possible to integrate advanced functionality into existing apps without compromising the security of critical banking data. To deliver remote work potential, firms need SDKs capable of:

  • Collaboration Integrate key collaboration functions including in-app document viewing to enhance data security, easy annotation and commenting options to ensure all staff are on the same page for multi-step application or approval processes, and burn-in redaction to enhance the protection of client or corporate data. 
  • ConversionAs complex, compliance-heavy processes such as loan applications, credit evaluations, and financial investments move to remote, on-demand models, banks need no-touch data processing that makes it possible to view multiple file types — including familiar Word and Excel files along with more specialized image formats — and convert these files to PDF documents for easy search. 
  • Capture Automated data capture, field recognition, and forms processing not only reduce the amount of time staff spend creating new forms and completing current applications, they also reduce the risk of human error. Enable your team to take complete control of document management functions with powerful character recognition, scanned document cleanup, and form identification — all from within your own application.

The “new normal” for banking relies on digital services. Advanced SDKs and APIs make it possible for firms to succeed over both time and distance by delivering comprehensive collaboration, conversion, and data capture without breaking the bank.