Este tipo de coleção representa um conjunto de referências a objetos existentes. São coleções temporárias; geralmente, são usadas para passar diferentes conjuntos de parâmetros para métodos que os exigem. Você cria a coleção, adiciona elementos a ela (os elementos são adicionados como referências a objetos existentes), passa-a para o método necessário e, em seguida, destrói a coleção, enquanto os objetos adicionados a ela permanecem. Essas coleções possuem o sufixo Collection em seus nomes (por exemplo, StringsCollection, IntsCollection).Para trabalhar com uma coleção desse tipo:
Crie a coleção usando o método de criação correspondente do objeto Engine. Por exemplo, para o objeto IntsCollection, o método é CreateIntsCollection. Essas coleções também podem ser valores de retorno de alguns métodos.
Adicione objetos existentes à coleção usando seu método Add. É possível iterar pela coleção usando sua propriedade Count somente leitura, a propriedade Element de leitura e escrita e o método Item. A primeira retorna o número de elementos efetivamente contidos na coleção; a segunda e a terceira fornecem acesso ao elemento no índice especificado. A propriedade Element permite acessar um elemento da coleção usando o operador [] em C#.
Se necessário, modifique a coleção usando outros métodos disponíveis: InsertAt, DeleteAt, DeleteAll.
Passe a coleção para o método que a requer como parâmetro.
Um exemplo de uso do objeto IntsCollection em C#:
Código C#
for( int i = 0; i < Document.Pages.Count; i++ ){ if( Document.Pages[i].PageStructureOutOfDate ) { pageIndices.Add( i ); }}// Passa a coleção criada de índices de página para um método de processamentoif( pageIndices.Count > 0 || Document.DocumentStructureOutOfDate ){ Document.SynthesizePages( pageIndices, null );}
Outro tipo representa uma coleção de objetos filhos de um objeto pai. Essas coleções existem enquanto o objeto pai existir. Por meio delas, você pode adicionar ou remover objetos filhos do objeto pai. Quando você adiciona um elemento à coleção, um novo objeto é criado internamente e, em seguida, adicionado à coleção. Exemplos dessas coleções: DictionaryDescriptions – uma coleção de objetos de descrição de dicionário; BaseLanguages – uma coleção de idiomas base.Para usar essas coleções:
Obtenha a coleção por meio da propriedade do objeto pai. Por exemplo, se você quiser acessar a coleção de idiomas base de um idioma de reconhecimento, use a propriedade DictionaryDescriptions do objeto BaseLanguage.
Percorra a coleção usando as propriedades somente leitura Count e Element e o método Item. A primeira retorna o número de elementos efetivamente contidos na coleção; a segunda e a terceira retornam o elemento no índice especificado. A propriedade Element permite acessar um elemento da coleção usando o operador [] em C#.
Se necessário, adicione novos elementos à coleção usando o método AddNew. Os métodos AddNew de diferentes coleções podem ter uma sintaxe ligeiramente diferente, mas todos fazem a mesma coisa: criam um novo elemento da coleção e o adicionam a ela. Você pode excluir elementos usando os métodos DeleteAt e DeleteAll.
Um exemplo de uso do objeto DictionaryDescriptions em C#:
Código C#
FREngine.IEngine Engine = null;FREngine.IBaseLanguage baseLanguage = null;// Inicialize o Engine e obtenha um idioma base de um idioma de texto...// Obtenha a coleção de descrições de dicionário de um idioma base e remova todos os itensIDictionaryDescriptions dictionaryDescriptions = baseLanguage.DictionaryDescriptions;dictionaryDescriptions.DeleteAll();// Crie uma descrição de dicionário do usuário e adicione-a à coleçãoIDictionaryDescription dictionaryDescription = dictionaryDescriptions.AddNew( DictionaryTypeEnum.DT_UserDictionary );
Algumas coleções de objetos filhos são somente leitura. Isso significa que elas não têm métodos de edição; você só pode iterar por seus elementos e visualizá-los. Exemplos dessas coleções são: PredefinedLanguages – uma coleção de idiomas predefinidos, Paragraphs – uma coleção de parágrafos de um texto.Para visualizar os elementos dessas coleções:
Obtenha a coleção por meio da propriedade do objeto pai. Por exemplo, se você quiser acessar a coleção de parágrafos de um texto, use a propriedade Paragraphs do objeto Text.
Percorra a coleção usando as propriedades somente leitura Count e Element e o método Item. A primeira retorna o número de elementos efetivamente contidos na coleção; a segunda e a terceira retornam o elemento no índice especificado. A propriedade Element permite acessar um elemento da coleção usando o operador [] em C#.
Um exemplo de uso do objeto Paragraphs em C#:
Código C#
FREngine.IEngine Engine = null;FREngine.IBlock block = null;// Inicialize o Engine, reconheça um documento e obtenha um bloco de texto de um layout...FREngine.ITextBlock textBlock = block.GetAsTextBlock();// Percorra os parágrafos do texto do blocoint paragraphsCount = textBlock.Text.Paragraphs.Count;for (int iPar = 0; iPar < paragraphsCount; iPar++){ FREngine.IParagraph par = textBlock.Text.Paragraphs[iPar]; string text = par.Text;}
Abaixo está a lista completa das coleções disponíveis no FineReader Engine. Algumas dessas coleções oferecem métodos adicionais para trabalhar com elementos. Veja os detalhes na tabela abaixo.
– esta coleção tem um método adicional Find.
– esta coleção tem um método adicional Find,
enquanto o método AddNew é substituído pelo
método Add.
– esta coleção também é um dicionário; portanto, a propriedade
Element é substituída pela propriedade
Value.
– esta coleção de objetos filhos difere das demais do mesmo tipo.
Ela não possui o método AddNew; em vez disso,
é possível usar o método AddPage do objeto pai
FRDocument. Ela também não possui o método
DeleteAll e conta com os métodos adicionais
IndexOf, Remove e
Swap.
– esta coleção não possui o método DeleteAt .
– esta coleção tem o método AddFromFile e o método AddFromMemory (Windows)
em vez do método AddNew.
– esta coleção tem um método adicional IndexOf.
– esta coleção tem um método adicional Find.
– esta coleção tem um método adicional IndexOf.
– esta coleção tem um método adicional Find.
– esta coleção tem um método adicional
GetSourcePageIndex.
– esta coleção tem os métodos adicionais IndexOf,
Merge e Split.
(somente Linux e Windows) – Esta coleção se diferencia de todas as outras
por conter constantes de enumeração, e não objetos. Ela também possui
um método adicional Find.
– esta coleção possui os métodos adicionais Delete,
Has.
– esta coleção possui os métodos adicionais Delete,
Has, e as propriedades CustomMenuEnabled
, StandardMenuEnabled.
Todas as interfaces de collection derivam da interface IEnumerable. Isso significa que você pode usar a instrução foreach em C# (for each no Visual Basic) para manipular collections. Observe que trabalhar com collections usando foreach tem algumas particularidades — por exemplo, enumeradores não podem ser usados para modificar a collection, apenas para ler os dados nela contidos. Consulte as observações em msdn.microsoft.com.Um exemplo de uso do foreach com a collection FRPages em C#:
Código C#
FREngine.IFRDocument document;// Presumimos que o documento contém algumas páginas...foreach( FREngine.IFRPage page in document.Pages ) { // faça algo com a página}