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 :

Shell Ghostscript erreur de compilation


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 478
    Par défaut Shell Ghostscript erreur de compilation
    Bonjour,
    Je reconconter une erreur de compilation pour ce bout de code:
    (Désolé, les balises ne fonctionnent plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    uses:gsapi, ghosttools, shellapi,...
    var: Filenamein, FilenameOut : string;...
    Filenamein:=   ExtractFilePath(opendialog1.FileName)+sid+' - '+IntToStr(myYear)+' '+Month+' '+Day+' '+Hour+''+Min+''+Sec+' - '+Prof+'.pdf';
      FilenameOut:=   ExtractFilePath(opendialog1.FileName)+sid+' - '+IntToStr(myYear)+' '+Month+' '+Day+' '+Hour+''+Min+''+Sec+' - '+Prof+'.tif';
         ShellExecute(Handle,'Open','gs -dBATCH -dNOPAUSE -sDEVICE=tiffg4 -r600x600 -sDither=fast -sOutputFile='+FilenameOut+' '+Filenamein,nil,Nil,SW_SHOWDEFAULT);
    Erreur de compilation: (le pointeur s'arrète derrière 'Filenamein' de la ligne ShellExecute)
    [DCC Avertissement] pdf_to_txt.pas(203): W1058 Transtypage de chaîne implicite avec perte de données potentielle de 'string' en 'AnsiString'
    [DCC Erreur] pdf_to_txt.pas(256): E2010 Types incompatibles : 'PWideChar' et 'string'
    [DCC Avertissement] pdf_to_txt.pas(431): W1058 Transtypage de chaîne implicite avec perte de données potentielle de 'string' en 'AnsiString'
    [DCC Erreur fatale] Project1.dpr(5): F2063 Impossible de compiler l'unité utilisée 'pdf_to_txt.pas'

    J'ai tenté plusieurs variantes mais sans résultat


    Merci pour vos suggestions...


    Joyeux Noël

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 658
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    problème "classique"
    je suggère cette approche par les Formats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var: Filenamein, FilenameOut, Shellparams : string;...
    const FParams : 'gs -dBATCH -dNOPAUSE -sDEVICE=tiffg4 -r600x600 -sDither=fast -sOutputFile=%s %s';
    ...
    Filenamein:=Format('%s%s-%s-%s.pdf',
                               [ExtractFilePath(opendialog1.FileName),
                                sid,
                                FormatDateTime('yyyy mm dd hh nn ss',ladate),
                                Prof ]);
    //même processus pour FileNameOut
    ShellParams:=Format(FParams,[QuotedStr(FileNameIn),QuotedStr(FileNameOut)]); // quotedStr car il y a des espaces dans les noms de fichiers, pas bon ça pour des paramètres Shell
    ShellExecute(Handle,'Open',ShellParams,nil,Nil,SW_SHOWDEFAULT);

  3. #3
    Membre éclairé
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 478
    Par défaut
    Merci SergioMaster,
    Jusque là j'utilise la dll: gsdll32.dll
    et les uses: gsapi, ghosttools
    L'appel à gs dans le shell via cette procédure fait il appel à gswin32c.exe?

    Merci pour ton aide,
    Très joyeux Noël,
    PhilLu

  4. #4
    Membre éclairé
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 478
    Par défaut
    Hello SergioMaster,
    Aussi, après avoir installé gs dans le dossier (gswin32c.exe renommé gs.exe), j'ai testé le code suivant (pour obtenir les bons formats des fichiers - je suis contraint à garder les espaces;
    voici à quoi rescemble un fichier en entrée: "14864 - 2017 12 24 152425 - Daily QC.pdf"
    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
    if OutFormat='TIF' then
         begin
         Filenamein:=Format('%s%s%s%s-%s%s%s%s%s%s%s%s%s%s%S-%S%s.pdf',
                               [OutFolder,'\',
                                sid,' ',' ',
                          //      FormatDateTime('yyyy mm dd hh nn ss',ladate),
                                Year,' ', Month,' ', Day,' ', Hour, Min, Sec,' ',' ',
                                Prof ]);
     
         FilenameOut:=Format('%s%s%s%s-%s%s%s%s%s%s%s%s%s%s%S-%S%s.tif',
                               [OutFolder,'\',
                                sid,' ',' ',
                          //      FormatDateTime('yyyy mm dd hh nn ss',ladate),
                                Year,' ', Month,' ', Day,' ', Hour, Min, Sec,' ',' ',
                                Prof ]);
      ShellParams:=Format(FParams,[FileNameOut,FileNameIn]);
      ShellExecute(Handle,'Open',PChar(ShellParams),nil,Nil,SW_SHOWDEFAULT);
         end;
    J'ai aussi vu qu'il avait une inversion dans [FileNameOut,FileNameIn] mais...
    ... malheureusement toujours nok

    Très joyeux réveillon

  5. #5
    Membre éclairé
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 478
    Par défaut
    Pour info, voici le format de ShellParams:
    gs -dBATCH -dNOPAUSE -sDEVICE=tiffg4 -r600x600 -sDither=fast -sOutputFile=D:\Documents\RAD Studio\Projets\dll rename pdf\Win32\Debug\out\14864 - 2017 12 24 163403 - AHC.tif D:\Documents\RAD Studio\Projets\dll rename pdf\Win32\Debug\out\14864 - 2017 12 24 163403 - AHC.pdf

  6. #6
    Membre éclairé
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 478
    Par défaut
    J'ai testé en supprimant les espaces et en les remplaçant ar des '_':
    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
     if OutFormat='TIF' then
         begin
         Filenamein:=Format('%s%s%s%s%s%s%s%s%s%s%s%s%s.pdf',
                               [OutFolder,'\',
                                sid,'_',
                                Year, Month, Day,'_', Hour, Min, Sec,'_',
                                Prof ]);
     
         FilenameOut:=Format('%s%s%s%s%s%s%s%s%s%s%s%s%s.tif',
                               [OutFolder,'\',
                                sid,'_',
                                Year, Month, Day,'_', Hour, Min, Sec,'_',
                                Prof ]);
      ShellParams:=Format(FParams,[FileNameOut,FileNameIn]);
      logline(logFolder+'\log.txt',datetimetostr(now)+'   ShellParams:    '+ShellParams);
      ShellExecute(Handle,'Open',PChar(ShellParams),nil,Nil,SW_SHOWDEFAULT);
         end;
    Pas mieux

    Maintenant, je me rends compte que quand je tape gs /? dans cmd j'ai un message:
    'gs' n’est pas reconnu en tant que commande interne



    J'utilise déjà gsapi, ghosttools pour lire le contenu des pdf dans la même appli???

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  2. Réponses: 2
    Dernier message: 23/09/2003, 14h32
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

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