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

Delphi Discussion :

Lancer l'impression d'un document PDF sous Delphi


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 157
    Par défaut Lancer l'impression d'un document PDF sous Delphi
    Bonjour,

    Je développe une application sous Delphi 2005. Dans cette application je génère un document PDF. Je voudrais imprimer ce document dans l'application.

    Je voulais savoir est ce qu'il serait possible de lier le TPrintdialog de delphi qui permet de choisir l'imprimante et de paramétrer l'impression avec les méthodes ( TPrintdialog.Copies, TPrintdialog.MinPage, TPrintdialog.Options,...) avec la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(Handle,'Print','document.pdf',nil,nil,SW_SHOWDEFAULT);
    qui permet de lancer l'impression d'un fichier. serait' il ainsi possible de prendre en compte les paramètres d'impression mis par l'utilisateur dans la fonction ShellExecute.

    Si ce n'est pas possible. Est ce vous connaissez une méthode permettant de lancer l'impression d'un document PDF avec la possibilité pour l'utilisateur de l'application de paramétrer le process d'impression

    Merci.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 124
    Par défaut
    Oublie le ShellExecute, tu n'aurais pas grand capacité de pilotage
    D'ailleurs, le Print, cela imprime directement sur l'imprimante par défaut ou il lance avant un écran de mise en page ?

    Utilise directement l'ActiveX AcrobatReader pour faire une impression piloter par Delphi
    Attention, il faut potentiellement prévoir un code évolutif pour gérer les versions d'Acrobat

    Sinon, comment génère tu ton PDF ?
    Un Writer particulier ?
    Un code maison ?

    Et à quel moment
    tu veux imprimer le PDF ?
    1. Juste après la génération du PDF
      • Une imprimante Virtuelle ? Non ! tu n'aurais pas posé la question dans ce cas, la réponse est évidente
      • Un outil de reporting ? Non ! tu n'aurais pas non plus posé la question car, tout aussi évident, dans ce cas tu peux très bien l'utiliser une fois en sortie PDF et une fois en sortie imprimante
    2. le PDF est stocké et c'est quelques jours plus tard que tu veux l'imprimer
      • Si tu peux faire un "snapshot" des données, tu peux ré-imprimer via ton outil de reporting
      • On en revient à utiliser l'ActiveX puisqu'il n'est peut-être plus possible de régénérer le même document
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 157
    Par défaut
    Bonjour,

    Merci pour votre aide. Je génère mon PDF à partir d'un document OpenOffice (.odt) que j'édite avec les librairies com et sur lequel je fais un export en PDF.

    Avec le ShellExecute, ça imprime sur l'imprimante par défault si on met 'print' et sur une autre imprimante si on met 'printTo' dans les paramètres. Il n y a pas d’écran de mise en page

    Est ce qu'avec l'ActiveX AcrobatReader piloter par delphi on peut paramétrer l'impression (Nombre de copies, pages à imprimer, Couleur ou Noir) ?

    Merci

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 124
    Par défaut
    Pourquoi ne pas alors directement imprimer le document OpenOffice ?
    Si fichier ODT est le contenu original du PDF, autant imprimer l'original !


    Citation Envoyé par nassim1987 Voir le message
    Est ce qu'avec l'ActiveX AcrobatReader piloter par delphi on peut paramétrer l'impression (Nombre de copies, pages à imprimer, Couleur ou Noir) ?
    Cela dépend de la version, je m'y suis pas intéressé depuis la version 7/8 mais
    pour le nombre de copies, au pire tu lance l'impression plusieurs fois,
    pour les pages à imprimer, oui, j'ai le souvenir que l'on peut donner une page de début et une page de fin
    pour la couleur, je ne m'en suis jamais préoccupé
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 157
    Par défaut
    Bonjour,

    Pour répondre à votre question la génération du document PDF à partir de fichier odt se fait à un moment et la demande d'impression peut être demandé à un autre moment ( Pour éviter de faire un retraitement sur l'odt et la génération du PDF qui peut être long). Je vais regarder ce que propose l'ActiveX AcrobatReader comme option

    Merci

Discussions similaires

  1. Impression d'un document PDF
    Par schwuleur dans le forum Documents
    Réponses: 5
    Dernier message: 12/11/2008, 10h58
  2. [SOLARIS] Impression de documents pdf sous UNIX
    Par tyag dans le forum Solaris
    Réponses: 4
    Dernier message: 10/04/2007, 17h43
  3. impression d'un document pdf de site internet
    Par samimikha dans le forum Ordinateurs
    Réponses: 3
    Dernier message: 09/04/2007, 20h11
  4. Lancer l'impression d'un document quelquonque
    Par dany007 dans le forum Access
    Réponses: 5
    Dernier message: 23/02/2007, 01h30
  5. chargement et impression d'un document pdf
    Par waldo2188 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/02/2005, 12h28

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