Use this file to discover all available pages before exploring further.
Este método abre un archivo de imagen desde la memoria global, donde el usuario lo había cargado previamente, y añade al documento las páginas correspondientes al archivo abierto.
Sub AddImageFileFromMemory( _ HGlobal As Int64, _ Callback As IImagePasswordCallback, _ [PrepareMode As IPrepareImageMode = Nothing], _ [PageIndices As IIntsCollection = Nothing], _ [FileName As String = "0"] _)
DataPtr[in] Linux: Especifica la dirección del bloque de memoria que contiene el archivo de imagen.DataSize[in] Linux: Especifica el tamaño de la imagen cargada en memoria.HGlobal[in] macOS y Windows: Especifica el handle HGLOBAL del bloque de memoria que contiene el archivo de imagen. El handle se pasa como __int64. Este handle debe ser válido.Callback[in] Esta variable hace referencia a la interfaz del objeto implementado por el usuario del tipo ImagePasswordCallback, que se utiliza para atender posibles solicitudes de contraseña para acceder a imágenes en formato PDF. Este parámetro es opcional y puede ser 0; en ese caso, no se podrán procesar archivos protegidos con contraseña.PrepareMode[in] Hace referencia al objeto PrepareImageMode, que especifica cómo se preprocesará una imagen al abrirla. Este parámetro es opcional y puede ser 0; en ese caso, se utilizan los parámetros predeterminados o, si se ha cargado un perfil, los parámetros establecidos por ese perfil.PageIndices[in] Este parámetro hace referencia al objeto IntsCollection, que especifica los índices de las páginas que deben añadirse al documento. Tenga en cuenta que no se permiten índices repetidos. Para añadir la misma página varias veces, llame a este método varias veces. Este parámetro es opcional y puede ser 0; en ese caso, se añadirán al documento todas las páginas del archivo abierto.FileName[in] Especifica el nombre del archivo de imagen. Esta información se utiliza para determinar el formato del archivo, si no se especifica explícitamente, y para los mensajes de error. Este parámetro es opcional y puede ser 0.Para abrir formatos ofimáticos (solo en Linux y Windows), pase el nombre del documento con su extensión.
Este método no funciona si el Engine se carga como un servidor fuera del proceso en Linux o si el objeto se crea mediante el objeto OutprocLoader en Windows. En ese caso, considere usar el método AddImageFileFromStream (Win).
Según el valor de la propiedad IEngine::MultiProcessingParams, ABBYY FineReader Engine puede distribuir la apertura de documentos de varias páginas entre los núcleos de CPU.
En Windows, este método no admite la apertura de archivos compatibles con WIC.
// Este ejemplo muestra cómo cargar un archivo de imagen en memoria// y luego agregarlo a FineReader Engine para su procesamiento...// En este ejemplo de código, usamos el espacio de nombres System.IO para trabajar con un archivo en memoriausing System.IO;// y el espacio de nombres System.Runtime.InteropServices para trabajar con bloques de memoriausing System.Runtime.InteropServices;...// Suponemos que ya hemos creado el objeto Engine// Crear documentoFREngine.IFRDocument document = engine.CreateFRDocument();// Imagen de origenstring imagePath = "D:\\Demo.tif";FileInfo file = new FileInfo(imagePath);// Tamaño de la imagen de origenlong len = file.Length;// Abrir la imagenBinaryReader br = new BinaryReader(File.Open(imagePath, FileMode.Open));// Leer el número especificado de bytes del flujo actual y guardarlo en una matriz de bytesbyte[] byteArray = br.ReadBytes((int)len);// Asignar un bloque de memoriaIntPtr handle = Marshal.AllocHGlobal((int)len);// Copiar datos desde un puntero de memoria no administrada a una matriz administrada de enteros con signo de 32 bitsMarshal.Copy(byteArray, 0, handle, (int)len);// Agregar una imagen desde la memoria al documentodocument.AddImageFileFromMemory((Int64)handle, null, null, null, "Demo.tif");// Liberar la memoria previamente asignada de la memoria no administrada del procesoMarshal.FreeHGlobal(handle);// Reconocer el documentodocument.Process(null);