Vai al contenuto principale
Questo metodo apre un file immagine specificato e aggiunge le pagine corrispondenti al file aperto a un documento.

Sintassi

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] _
)

Parametri

ImageFileName [in] Questa variabile contiene il percorso completo del file immagine da aprire. PrepareMode [in] Questo parametro si riferisce all’oggetto PrepareImageMode, che specifica come un’immagine verrà preelaborata in fase di apertura. PageIndices [in] Questo parametro si riferisce all’oggetto IntsCollection, che specifica gli indici delle pagine da aggiungere a un documento. Si noti che gli indici duplicati non sono consentiti. Per aggiungere più volte la stessa pagina, chiamare questo metodo più volte.
Questo parametro è facoltativo e può essere 0; in tal caso, tutte le pagine del file aperto verranno aggiunte al documento.

Valori di ritorno

Questo metodo non ha valori di ritorno specifici. Restituisce i valori di ritorno standard delle funzioni di ABBYY FineReader Engine.

Osservazioni

  • Quando si apre un file PDF Portfolio con questo metodo, la sua copertina è sempre inclusa nel file di output.
  • Questo metodo può segnalare eventi ai listener associati all’interfaccia IConnectionPointContainer dell’oggetto FRDocument.
  • Per Linux e Windows:

Esempi

Questo esempio per Windows illustra come interrompere l’aggiunta di una pagina a un documento in caso di elaborazione prolungata.
// Attiva il timeout nel caso in cui il caricamento dell'immagine richieda troppo tempo
frDocumentCallback.SetShouldTrackTime( true );
frDocumentCallback.FlushTimer();
// Chiama il metodo AddImageFile per aprire un file immagine
CheckResult( frDocument->AddImageFile( imageFilePath, 0, pageIndices ) );
// Disattiva il timeout per l'elaborazione successiva
frDocumentCallback.SetShouldTrackTime( false );
...
// Utilizza l'interfaccia di callback IFRDocumentEvents per riportare gli eventi
class CFRDocumentCallback: public IFRDocumentEvents {
public:
    CFRDocumentCallback() : startTime( 0 ) {}
 
    // Implementa i metodi 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;
};
// Chiama il metodo FlushTimer per reimpostare startTime
void CFRDocumentCallback::FlushTimer() {
    time( &startTime );
}
// Questo callback può essere utilizzato in altri metodi, quindi imposta shouldTrackTime su FALSE se non si vuole più resettare il timeout 
void CFRDocumentCallback::SetShouldTrackTime( bool _shouldTrackTime ) {
    shouldTrackTime = _shouldTrackTime;
}
 
// Se la differenza tra l'ora corrente e "startTime" supera una certa soglia, il processo verrà interrotto. Il metodo AddImageFile passa 0 
invece della percentuale al metodo 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;
}
Questo metodo viene utilizzato negli esempi di codice EventsHandling e Document Comparison e nello strumento demo Document Comparison per Windows.

Vedi anche

FRDocument AddImageFileWithPassword AddImageFileWithPasswordCallback AddImageDocument Utilizzo delle immagini