Saltar al contenido principal
Este método abre el archivo de imagen especificado y agrega al documento las páginas correspondientes al archivo abierto.

Sintaxis

C++

HRESULT AddImageFile(
  BSTR               ImageFileName,
  IPrepareImageMode* PrepareMode,
  IIntsCollection*   PageIndices
);

C#

void AddImageFile(
  string           ImageFileName,
  IPrepareImageMode PrepareMode,
  IIntsCollection   PageIndices
);

Visual Basic .NET

Sub AddImageFile( _
  ImageFileName As String, _
  [PrepareMode As IPrepareImageMode = Nothing], _
  [PageIndices As IIntsCollection = Nothing] _
)

Parámetros

ImageFileName [in] Esta variable contiene la ruta de acceso completa al archivo de imagen que se va a abrir. PrepareMode [in] Este parámetro hace referencia al objeto PrepareImageMode, que especifica cómo se preprocesará una imagen durante la apertura. PageIndices [in] Este parámetro hace referencia al objeto IntsCollection, que especifica los índices de las páginas que deben agregarse a un documento. Tenga en cuenta que no se permiten índices repetidos. Para agregar 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, todas las páginas del archivo abierto se agregarán al documento.

Valores de retorno

Este método no tiene valores de retorno específicos. Devuelve los valores de retorno estándar de las funciones de ABBYY FineReader Engine.

Observaciones

  • Al abrir un archivo PDF Portfolio con este método, su portada siempre se incluye en el archivo de salida.
  • Este método puede notificar eventos a los receptores asociados a la interfaz IConnectionPointContainer del objeto FRDocument.
  • Para Linux y Windows:

Muestras

Este ejemplo para Windows muestra cómo abortar la adición de una página a un documento si la operación tarda demasiado.
// Active el tiempo de espera en caso de que la carga de la imagen tarde demasiado
frDocumentCallback.SetShouldTrackTime( true );
frDocumentCallback.FlushTimer();
// Llame al método AddImageFile para abrir un archivo de imagen
CheckResult( frDocument->AddImageFile( imageFilePath, 0, pageIndices ) );
// Desactive el tiempo de espera para el procesamiento posterior
frDocumentCallback.SetShouldTrackTime( false );
...
// Use la interfaz de callback IFRDocumentEvents para informar sobre los eventos
class CFRDocumentCallback: public IFRDocumentEvents {
public:
    CFRDocumentCallback() : startTime( 0 ) {}
 
    // Implemente los métodos de IUnknown
    ULONG STDMETHODCALLTYPE AddRef() { return 1; }
    ULONG STDMETHODCALLTYPE Release() { return 1; }
    HRESULT STDMETHODCALLTYPE QueryInterface( REFIID riid, void** ppObject );
    HRESULT STDMETHODCALLTYPE OnProgress( IFRDocument* document, int percentage, VARIANT_BOOL* ShouldContinue );
    HRESULT STDMETHODCALLTYPE OnWarning( IFRDocument* frPage, int pageNumber, BSTR recognizerTip, 
        VARIANT_BOOL* ShouldContinue );
    HRESULT STDMETHODCALLTYPE OnPageProcessed( IFRDocument* document, int pageNumber, PageProcessingStageEnum stage );
    void FlushTimer();
    void SetShouldTrackTime( bool _shouldTrackTime );
private:
    time_t startTime;
    bool shouldTrackTime = true;
};
// Llame al método FlushTimer para restablecer startTime
void CFRDocumentCallback::FlushTimer() {
    time( &startTime );
}
// Este callback puede usarse en otros métodos, así que establezca shouldTrackTime en FALSE si ya no quiere restablecer el tiempo de espera
void CFRDocumentCallback::SetShouldTrackTime( bool _shouldTrackTime ) {
    shouldTrackTime = _shouldTrackTime;
}
 
// Si la diferencia entre la hora actual y "startTime" supera un determinado umbral, se abortará el proceso. El método AddImageFile pasa 0 
// en lugar de percentage al método OnProgress
HRESULT STDMETHODCALLTYPE CFRDocumentCallback::OnProgress( IFRDocument* frDocument, int percentage, 
    VARIANT_BOOL* shouldTerminate )
{
    if( shouldTrackTime ) {
        time_t currentTime;
        time( ¤tTime );
        double seconds = difftime( currentTime, startTime );
        printf( "%f\n", seconds );
        *shouldTerminate = ( seconds > 100 ? VARIANT_TRUE : VARIANT_FALSE );
    }
    return S_OK;
}
Este método se usa en los ejemplos de código EventsHandling y Document Comparison, así como en la herramienta de demostración de Windows Document Comparison.

Consulte también

FRDocument AddImageFileWithPassword AddImageFileWithPasswordCallback AddImageDocument Trabajar con imágenes