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.
- Let's separate the whole string to the array of strings by "\" separator for import from the hot folder and "\\" for mailbox import.
- 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:
Note: The method doesn't work on web stations.
Comments
2 comments
Stanislav Neifeld
is it possible to get the file owner name this way?
Dmytro Bezus
Hello Stanislav,
It isn't possible to get the file owner name using the default FlexiCapture tools. The possible properties for iPage object are available in the guide:
https://help.abbyy.com/en-us/flexicapture/12/distributed_administrator/ipage/
Kind regards,
Dmytro
Please sign in to leave a comment.