How to extract name of imported file to the field value?

Question

How to extract the name of the imported file to the field value?

Answer

If the challenge ahead is to extract only the filename then needed to find a way to split the achieved string. Built-in methods of FlexiCapture's interfaces don't allow to solve this task in one action.

It would be better to work with the interface IPage.

However, a huge string will be gotten. For different import methods (IMAP, Hot folder, etc) the string will be different too. As described in the article of ABBYY Support Center:

https://help.abbyy.com/en-us/flexicapture/12/distributed_administrator/ipage

The source of an image. If the image was imported from a file, this property will contain the path to the file. If the image was received from a scanner, ImageSource will contain the name of the source. Contains an empty value if the image was imported using a custom import.

 

The most appropriate way - is extraction via script rule into the regular field with turned-off recognition. Use the script rule. 

  1. Let's separate the whole string to the array of strings by "\" separator for import from the hot folder and "\\" for mailbox import. 
  2. Write the last array element as the field value.

Here is a code snippet:

using System;
using System.Text;

string s = Context.Document.Pages[0].ImageSource; //Whole source name
string[] words = s.Split('\\'); //Separator symbol, for the import from mailbox it should be '\"'

Context.Field("FileName").Text = words[words.Length -1]; //filename is in the end, it should be N-1th element

The result:

2021-07-20_11_07_14-EU_INV_PROJECT_-_ABBYY_FlexiCapture_12__Project_Setup_Station__-_Batch.png

Note: The method doesn't work on web stations.

 

 

 

 

Have more questions? Submit a request

Comments

2 comments

Please sign in to leave a comment.