IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Objet OLE et PDF


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut Objet OLE et PDF
    Bonjour,

    J'ai vu que l'on pouvait ouvrir une page d'un document pdf et l'afficher dans une fiche comme le montre cette discussion

    Par contre, l'utilisation de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CreateoleObject('AcroExch.App');
    CreateOleObject('AcroExch.avDoc')
    ne peut se faire que si une version pro ( donc payante ) d'Acrobat est installée ? J'ai fait l'essai en ayant que la version Reader et je n'ai pas pu l'utiliser, l'objet n'éxiste pas.
    J'ai vérifié en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IsCOMObjectExist('AcroExch.App')
    et cela retourne False indiquant que l'objet n'éxiste pas...

    En faisant des recherches, j'ai vu que cela pouvait fonctionner en installant le SDK Acrobat, j'ai essayé avec la version 7 du SDK mais cela ne fonctionne toujours pas...

    Est ce quelqu'un peut me confirmer qu'il faut absolument la version pro d'Acrobat ?

    Sinon, connaissez vous un composant ou une librairie pour afficher une page d'un document pdf et au mieux pour insérer une page pdf dans un autre document pdf ?

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut


    essai cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CreateOleObject('AcroExch.Document');

  3. #3
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Salut,

    Merci pour ton aide.

    J'avais essayé car je l'ai vu que la liste se trouve dans la base de registre ( HKEY_CLASSES_ROOT ) mais j'ai une exception EOleError car la méthode OpenInWindowex n'est pas supporté par l'objet automation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    l_AVDoc : OleVariant;
     
    l_AVDoc := CreateOleObject('AcroExch.Document');
    l_AVDoc.OpenInWindowex(OpenDialog.FileName, Handle, 4, 0, 1, 1, 1, 1, 0, 0);
    Je dois utiliser OpenInWindowex pour afficher la page pdf dans une fenêtre ( via son handle )

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut


    Fenêtre externe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       l_AVDoc : OleVariant;
     
          l_AVDoc :=  CreateOleObject('AcroExch.Document');
          if VarIsEmpty(l_AVDoc) or VarIsNull(l_AVDoc)  Then
            ShellExecute(0, 'open',Pchar(OpenDialog.FileName), nil, nil, SW_SHOWNORMAL)
          else
          begin
            l_AVDoc.Open(OpenDialog.FileName);
            l_AVDoc.WindowState := xlMaximized;
            l_AVDoc.Visible := TRUE;
            l_AVDoc := Unassigned;
          end;
    si tu utilise l'objet TOleContainer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       Ole  :  TOleContainer;
       ...
      Ole.CreateObjectFromFile(OpenDialog.FileName,False);
      Ole.Visible := true;
    sinon effectivement la fonction OpenInWindowex n’apparaît que dans le sdk ... je suppose qu'il faut avoir une version plus évoluer pour accéder a ces fonctionnalité

  5. #5
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Bonjour

    Et merci pour ton aide.

    Le problème est que je dois ouvrir la 1ère page d'un PDF dans une fenêtre interne à l'application ( dans un TImage, ce serait le mieux mais je ne sais pas si cela est possible )

    Je n'ai jamais utilisé TOleContainer, ce serait une solution dans mon cas ?

    Thierry

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    si c'est pour de l'affichage simple je viens de vois que l'on peut directement appeler l’active x d'Acrobat reader

    cherche l’unité "AcroPDFLib_TLB.pas" installe le composant et place le sur ta forme

Discussions similaires

  1. [CR 2008] Afficher dynamiquement un PDF dans un report via un objet OLE
    Par KleyLC68 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 11/10/2013, 20h16
  2. Objet OLE - pdf - probleme de taille/résolution
    Par Flamby38 dans le forum Word
    Réponses: 6
    Dernier message: 20/07/2008, 00h49
  3. [VB6] Modification objet OLE dans Word sous VB
    Par zworg dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/02/2004, 08h20
  4. [CR 8.5] Objet ole lié (BMP) ne se remet pas à jour .
    Par rodrigue50 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 12/02/2004, 10h43
  5. [VB6][DoVerb]Lancer automatiquement un objet OLE
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/11/2002, 13h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo