Imprimer un fichier PostScrip [Résolu]

Signaler
Messages postés
77
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
22 février 2011
-
Messages postés
77
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
22 février 2011
-
Bonjour,

Je développe sur Delphi depuis pas longtemps et je bloque depuis quelques jours sur l'impression PostScript.

En effet, je dois créer une unité qui envoie un fichier .ps à une imprimante choisie (PostScript). J'ai déjà beaucoup cherché sur internet et j'ai vu que GhostScript faisait très bien cela.

Par contre je n'ai pas réussi à l'intégrer en Delphi...

Est-ce que qqun l'a déjà fait ou pourrait m'aider à ce sujet ?

Merci d'avance de vos réponses.

5 réponses

Messages postés
77
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
22 février 2011

Alors si ça peut intéresser des personnes j'ai trouvé comment résoudre l'impression sur une imprimante PS.

Voilà le code :

  if(FileExists(CHEMIN_FICHIERS_PS_SERVEUR + nom_fichier_ps)) then begin
    //Copie du fichier PS dans les jobs d'impression de l'imprimante passée en paramètre
    CopyFile(PChar(CHEMIN_FICHIERS_PS_SERVEUR + nom_fichier_ps), PChar('\\serveurImpression\' + nomImprimante), False);
    //Suppression du fichier PS du serveur
    DeleteFile(PChar(CHEMIN_FICHIERS_PS_SERVEUR + nom_fichier_ps));
  end;

 j'espère que ça pourra aider qqun...
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Il serait plus prudent d'utiliser la valeur retournée par la fonction CopyFile avant de procéder à la destruction du fichier original :
if(FileExists(CHEMIN_FICHIERS_PS_SERVEUR + nom_fichier_ps)) then begin
    //Copie du fichier PS dans les jobs d'impression de l'imprimante passée en paramètre
    if CopyFile(PChar(CHEMIN_FICHIERS_PS_SERVEUR + nom_fichier_ps), PChar('\\serveurImpression\' + nomImprimante), False) <> 0 then
  begin;
    //Suppression du fichier PS du serveur
    DeleteFile(PChar(CHEMIN_FICHIERS_PS_SERVEUR + nom_fichier_ps));
  end;
  end;

May Delphi be with you<hr />Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Pourrais-tu être plus précis ? Sur quoi butes-tu exactement ?
1- la création d'une unité qui génère du PostScript
2- Le choix d'une imprimante PostScript par le code
3- Comment faire dialoguer ton appli avec GhostScript

Tu voi, si tu veux avoir une chance d'obtenir une réponse, encore faut-il que la question soit comprise par les membres.

May Delphi be with you<hr />Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
77
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
22 février 2011

En fait je veux simplement lancer un job d'impression sur une imprimante.

Mais j'ai découvert aujourd'hui que les imprimantes utilisées ont toutes un driver PostScript... Oui j'aurais quand même dut regarder ça en premier...Javascript:Insert_Emoticon('/imgs2/smile_blush.gif');

Du coup, il me suffit juste de copier mon fichier PS dans la file d'impression à l'aide d'une commande copy via ShellExec et mon document est imprimé.

Mon problème est donc quasiment résolu. En effet j'utilise ShellExec pour effectuer cela, je me demande s'il existe une manière plus intégrée à Delphi pour envoyer un fichier PS à l'imprimante ?

J'espère que j'ai été assez clair, Javascript:Insert_Emoticon('/imgs2/smile.gif');

Merci de votre aide !
Messages postés
77
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
22 février 2011

C'est noté, merci beaucoup pour les conseils.

Je suis justement en train d'analyser comment gérer au mieux les erreurs d'exécution avec Delphi.