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 :

Conversion Excel vers pdf en Delphi


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Points : 68
    Points
    68
    Par défaut Conversion Excel vers pdf en Delphi
    Bonjour à tous le monde.
    Voila j'ai un programme Delphi qui donne des résultats sous format de pages Excel. Mes responsables veulent que je transforme ses fichiers Excel en fichiers pdf.
    Est ce que c'est possible de le faire en Delphi Sinon JAVA Sinon C#

    Merci beaucoup à l'avance.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    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 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    pourquoi ne pas utiliser un utilitaire tels que pdfcreator
    celui-ci s'utilise comme une imprimante

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par anapurna Voir le message
    salut

    pourquoi ne pas utiliser un utilitaire tels que pdfcreator
    celui-ci s'utilise comme une imprimante

    @+ Phil
    Merci pour votre réponse mais le problème qu'on veux faire ça automatique sans l'intervention humain? donc ma question est-ce que possible de lancer pdfcreator et transformer mes fichier à partir de l'un des langage cité ci-dessus?

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    je ne comprends pas vraiment la question. S'il s'agit de creer directement un fichiers PDF pourquoi ne pas passer par RaveReport au lieu de creer un fichiers Excel ? ce n'est après tout qu'une édition
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Points : 68
    Points
    68
    Par défaut
    En fait l'application qui génère les fichier Excel existe depuis long temps!! et on a déjà des centaines ou même de milliers de fichier générés. Donc j'ai pas d'autre solution que faire ça avec un langage de programmation !
    Merci

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    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 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    tu ne paut pas lancer un print de ton fichier ecxel ?

    si oui je le repete pdfcreator est la meilleur alternative

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  7. #7
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    En effet, normalement il est possible d'automatiser l'impression en PDF avec PDFCreator (il y a des exemples à ce sujet dans le répertoire d'installation de PDFCreator (PDFCreator\COM)).
    Je n'ai jamais essayé, mais le principe c'est que tu disposes d'une interface COM pour configurer PDFCreator et piloter le fichier de sortie.

    Ensuite, tu lances EXCEL en OLE et tu lui demandes d'imprimer le doc sur l'imprimante PDF de PDFCreator (d'ailleurs je ne sais pas si PDFCreator n'est pas capable de le faire automatiquement).

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Points : 68
    Points
    68
    Par défaut
    Merci beaucoup pour vos messages je vais essayer de voir tout ça

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Points : 68
    Points
    68
    Par défaut
    Bonjour
    je vais reprendre ce poste après un peu d'absence. Bon j'ai réussi à trouver un code qui me fait la transformation de mes fichiers Excel à des fichiers pdf. mas le problème est que mes fichiers contiennent deux feuille est le code me transforme que la première.? voila mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
    unit ToPDF;
     
    interface
     
    uses
      SysUtils, Classes, PDFCreator_TLB, ExtCtrls, Forms, Windows, dialogs;
     
    type
      Tftopdf = class(TDataModule)
        Timer1: TTimer;
        procedure Timer1Timer(Sender: TObject);
      private
        { Instance de PDF Creator }
        PDFCreator: TclsPDFCreator;
        {Instance du gestionnaire d'erreurs de PDF Creator.
        Sera affecté en cas d'erreur uniquement.}
        PDFError: clsPDFCreatorError;
        {Flag indiquant la disponibilité du document produit}
        ReadyState: boolean;
        {Méthode chargée du lancement de l'impression.
        Le paramètre FileType indique le type de document à produire.}
        //procedure PrintIt(FileType: integer);
        {Gestionnaire des erreurs pour PDF Creator}
        procedure PDFCreatorError(Sender: TObject);
        {Gestionnaire permettant un traitement lorsque PDF Creator a fini
        la production d'un document PDF.}
        procedure PDFCreatorReady(Sender: TObject);
      public
        { Déclarations publiques }
        {Convertire le fichier vers pdf}
        procedure ConvertToPdf(FileType: integer; CheminFichier:String);
      end;
     
    var
      ftopdf: Tftopdf;
     
    implementation
     
     
    {$R *.dfm}
    const
      {Time-out}
      MaxTime = 20;
     
    procedure Tftopdf.ConvertToPdf(FileType: integer;CheminFichier : String);
    Var
      FName, Error, Parameters : String;
      DefaultPrinter: Widestring;
      Opt: clsPDFCreatorOptions;
    begin
     
       Error := '';
      //instanciation de PDF Creator
      Timer1.Enabled := False;
      PDFCreator := TclsPDFCreator.Create(Self);
      //Connexion des gestionnaires d'évènements
      PDFCreator.OneError := PDFCreatorError;
      PDFCreator.OneReady := PDFCreatorReady;
      //pas de traitement au démarrage
      Parameters := '/NoProcessingAtStartup';
     
      //teste si on peut démarrer le serveur
      if not PDFCreator.cStart(Parameters, False) then
        begin
          Error:= 'Status : Erreur[' + IntToStr(PDFError.Number)
            + '] : ' + PDFError.Description;
          MessageBox(0,'Erreur de connexion au PDFCreator','ERREUR',MB_ICONERROR or MB_OK);
        end;
      if Error = '' then
        begin
          FName := ExtractFileName(CheminFichier);
          FName := ChangeFileExt(FName,'');
          //Options de conversion du document
          Opt := PDFCreator.cOptions;
          Opt.UseAutosave := 1;
          Opt.UseAutosaveDirectory := 1;
          Opt.AutosaveDirectory := ExtractFilePath(CheminFichier);
          Opt.AutosaveFormat := FileType;
          if FileType = 5 then
            Opt.BitmapResolution := 72;
          Opt.AutosaveFilename := FName;
          PDFCreator.cOptions := Opt;
          PDFCreator.cClearCache;
          //non documenté !
          if FileType = 5 then
            Opt.BitmapResolution := 72;
          Opt.AutosaveFilename := FName;
          PDFCreator.cOptions := Opt;
          PDFCreator.cClearCache;
          //sauvegarde du nom de l'imprimante actuelle
          DefaultPrinter := PDFCreator.cDefaultPrinter;
          PDFCreator.cDefaultPrinter := 'PDFCreator';
          PDFCreator.cPrintFile(CheminFichier);
          PDFCreator.cPrinterStop := False;
          ReadyState := False;
          //Boucle d'attente de fin de traitement
          Timer1.Interval := MaxTime * 1000;
          Timer1.Enabled := True;
     
          while not ReadyState and Timer1.Enabled do
            Application.ProcessMessages;
              // si timeout...
          if not ReadyState then
            MessageBox(0, 'Une erreur s''est produite : dépassement du temps alloué',
              'Création de la page de test', MB_ICONEXCLAMATION or MB_OK);
     
          PDFCreator.cPrinterStop := True;
          //restauration du nom de l'imprimante
          PDFCreator.cDefaultPrinter := DefaultPrinter;
          //Fermeture du seveur
          PDFCreator.cClose;
          PDFCreator.Free;
        end;
    end;
     
    procedure Tftopdf.PDFCreatorError(Sender: TObject);
    begin
      //Affectation de l'interface
      PDFError := PDFCreator.cError;
    end;
     
    procedure Tftopdf.PDFCreatorReady(Sender: TObject);
    var
      Error : String;
    begin
      //La conversion en PDF s'est correctement déroulée
      Error := 'Status : "' + PDFCreator.cOutputFilename +
        '" créé !';
      PDFCreator.cPrinterStop := True;
      ReadyState := True;
    end;
     
    procedure Tftopdf.Timer1Timer(Sender: TObject);
    begin
      //arrêt du timer
      Timer1.Enabled := False;
    end;
     
    end.
    si vous pouvez m'aider SVP

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Points : 68
    Points
    68
    Par défaut Excel to pdf delphi
    Bonjour à tout le monde. Je voudrais transformer des fichier Excel en pdf et j'utilise pdfCreator. j'ai presque réussi à le faire, mais j'ai rencontrer un problème. voila déjà le code que j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
     
    unit ToPDF;
     
    interface
     
    uses
      SysUtils, Classes, PDFCreator_TLB, ExtCtrls, Forms, Windows, dialogs;
     
    type
      Tftopdf = class(TDataModule)
        Timer1: TTimer;
        procedure Timer1Timer(Sender: TObject);
      private
        { Instance de PDF Creator }
        PDFCreator: TclsPDFCreator;
        {Instance du gestionnaire d'erreurs de PDF Creator.
        Sera affecté en cas d'erreur uniquement.}
        PDFError: clsPDFCreatorError;
        {Flag indiquant la disponibilité du document produit}
        ReadyState: boolean;
        {Méthode chargée du lancement de l'impression.
        Le paramètre FileType indique le type de document à produire.}
        //procedure PrintIt(FileType: integer);
        {Gestionnaire des erreurs pour PDF Creator}
        procedure PDFCreatorError(Sender: TObject);
        {Gestionnaire permettant un traitement lorsque PDF Creator a fini
        la production d'un document PDF.}
        procedure PDFCreatorReady(Sender: TObject);
      public
        { Déclarations publiques }
        {Convertire le fichier vers pdf}
        procedure ConvertToPdf(FileType: integer; CheminFichier:String);
      end;
     
    var
      ftopdf: Tftopdf;
     
    implementation
     
     
    {$R *.dfm}
    const
      {Time-out}
      MaxTime = 20;
     
    procedure Tftopdf.ConvertToPdf(FileType: integer;CheminFichier : String);
    Var
      FName, Error, Parameters : String;
      DefaultPrinter: Widestring;
      Opt: clsPDFCreatorOptions;
    begin
     
       Error := '';
      //instanciation de PDF Creator
      Timer1.Enabled := False;
      PDFCreator := TclsPDFCreator.Create(Self);
      //Connexion des gestionnaires d'évènements
      PDFCreator.OneError := PDFCreatorError;
      PDFCreator.OneReady := PDFCreatorReady;
      //pas de traitement au démarrage
      Parameters := '/NoProcessingAtStartup';
     
      //teste si on peut démarrer le serveur
      if not PDFCreator.cStart(Parameters, False) then
        begin
          Error:= 'Status : Erreur[' + IntToStr(PDFError.Number)
            + '] : ' + PDFError.Description;
          MessageBox(0,'Erreur de connexion au PDFCreator','ERREUR',MB_ICONERROR or MB_OK);
        end;
      if Error = '' then
        begin
          FName := ExtractFileName(CheminFichier);
          FName := ChangeFileExt(FName,'');
          //Options de conversion du document
          Opt := PDFCreator.cOptions;
          Opt.UseAutosave := 1;
          Opt.UseAutosaveDirectory := 1;
          Opt.AutosaveDirectory := ExtractFilePath(CheminFichier);
          Opt.AutosaveFormat := FileType;
          if FileType = 5 then
            Opt.BitmapResolution := 72;
          Opt.AutosaveFilename := FName;
          PDFCreator.cOptions := Opt;
          PDFCreator.cClearCache;
          //non documenté !
          if FileType = 5 then
            Opt.BitmapResolution := 72;
          Opt.AutosaveFilename := FName;
          PDFCreator.cOptions := Opt;
          PDFCreator.cClearCache;
          //sauvegarde du nom de l'imprimante actuelle
          DefaultPrinter := PDFCreator.cDefaultPrinter;
          PDFCreator.cDefaultPrinter := 'PDFCreator';
          PDFCreator.cPrintFile(CheminFichier);
          PDFCreator.cPrinterStop := False;
          ReadyState := False;
          //Boucle d'attente de fin de traitement
          Timer1.Interval := MaxTime * 1000;
          Timer1.Enabled := True;
     
          while not ReadyState and Timer1.Enabled do
            Application.ProcessMessages;
              // si timeout...
          if not ReadyState then
            MessageBox(0, 'Une erreur s''est produite : dépassement du temps alloué',
              'Création de la page de test', MB_ICONEXCLAMATION or MB_OK);
     
          PDFCreator.cPrinterStop := True;
          //restauration du nom de l'imprimante
          PDFCreator.cDefaultPrinter := DefaultPrinter;
          //Fermeture du seveur
          PDFCreator.cClose;
          PDFCreator.Free;
        end;
    end;
    le problème avec ce code qu'il me transforme que la première feuil de mon fichier Excel. Moi je veux qu'il me transforme les deux feuil et si possible les mettre dans le même fichier pdf.

Discussions similaires

  1. Conversion .odt vers .pdf
    Par alaincnes dans le forum Documents
    Réponses: 7
    Dernier message: 19/10/2010, 01h34
  2. Excel vers pdf
    Par benjisan dans le forum Access
    Réponses: 3
    Dernier message: 25/06/2007, 09h19
  3. conversion excel vers open office
    Par djedje37et28 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/05/2007, 14h29
  4. [COM] Conversion WORD vers PDF sous PHP sans COM ?
    Par pdtor dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 31/01/2007, 22h27
  5. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 09h23

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