Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [D7] Créer un postScript depuis une imprimante lambda [ Divers / Débutant(e) ] (nitrique)

mercredi 19 novembre 2008 à 10:20:27 | [D7] Créer un postScript depuis une imprimante lambda

nitrique

Bonjour à tous,

Je cherche à créer un Fichier postScript valide qui pourra être distillé avec GhostScript.
Donc, je pend un fichier (Word, par exemple), je fait "Imprimer dans un fichier", et ça me fait un fichier PRN que je renomme en PS, et ça fonctionne très bien.
... Enfin, sur quelques imprimantes seulement. :-(

En effet, certaines imprimantes n'ont pas l'air de savoir faire du PostScript standard, ça doit être un format propriétaire ou un truc comme ça.
Et je ne veux pas installer d'imprimante PDF virtuelle (enfin, je ne veux pas de procédure d'installation, tout gérer par le code).

J'ai donc été chercher le driver de l'imprimante PDF Adobe (ADIST5.PPD), et j'aimerais savoir comment soit:

- Créer par le code une imprimante virtuelle s'appuyant sur ce driver.
- Prendre une imprimante déjà installée et la faire pointer temporairement sur ce driver.
- Savoir générer un postScript standard avec une imprimante lambda.

Je cherche depuis un bout de temps et j'ai eu des pistes, genre:

New(pDriverInfo); // Neu Struktur erstellen
pDriverInfo^.pDataFile := PCHar(DataFile); // On peut mettre un fichier ppd ici

Ou alors

http://support.microsoft.com/kb/142057/fr
(Je n'arrive pas à le mettre en application... )

Mais ce sont des types d'instructions que je n'ai pas l'habitude de manipuler... Je ne sais pas si ça peut vraiment résoudre mon pb.

Pouvez vous m'aider ?

Merci d'avance.

mercredi 19 novembre 2008 à 15:28:18 | Re : [D7] Créer un postScript depuis une imprimante lambda

nitrique

Bon, j'arrive à récupérer le fichier PPD pour chacune de mes imprimantes installées sur mon poste:

function SetPrinterOptions(NewFilePPD: String=''): String;
var ret: String;
  passe: Boolean;
  DeviceMode, hPrinter: THandle;
  Device, Driver, Port: array[0..MAX_PATH] of Char;
  DriverInfo2: PDriverInfo2;
  DriverInfo2Size: DWORD;
begin
  passe := False;
  ret := '';
  Printer.GetPrinter(Device, Driver, Port, DeviceMode);
  OpenPrinter(Device, hPrinter, nil);
  try
    GetPrinterDriver(hPrinter, nil, 2, nil, 0, DriverInfo2Size);
    GetMem(DriverInfo2, DriverInfo2Size);
    try
      GetPrinterDriver(hPrinter, nil, 2, DriverInfo2, DriverInfo2Size, DriverInfo2Size);
      //StrPCopy(Driver, ExtractFileName(StrPas(DriverInfo2^.PDriverPath)));
      ret := DriverInfo2^.pName+': '+#09+DriverInfo2^.pDataFile;
      if (Trim(NewFilePPD)<>'') and (FileExists(NewFilePPD)) then begin // Réaffecter le driver (RIEN NE MARCHE...)
        //StrPCopy(DriverInfo2^.PDriverPath, NewFilePPD);
        //DriverInfo2^.PDriverPath := PChar(NewFilePPD);
        //StrPCopy(Driver, StrPas(DriverInfo2^.PDriverPath));
        //StrPCopy(Driver, NewFilePPD);
        passe := True;
      end;
    finally
      FreeMem(DriverInfo2, DriverInfo2Size);
    end;
  finally
    ClosePrinter(hPrinter);
  end;
  if passe then
    Printer.SetPrinter(Device, Driver, Port, DeviceMode);
  Result := ret;
end;
 
procedure TForm1.btnGetImpClick(Sender: TObject);
var i, tmp: Integer;
  strTmp: String;
begin
  strTmp := '';
  Printer.Refresh;
  tmp := Printer.PrinterIndex;
  for i:=0 to Printer.Printers.Count-1 do begin
    Printer.PrinterIndex := i;
    strTmp := strTmp+sLineBreak+SetPrinterOptions();
  end;
  Printer.PrinterIndex := tmp;
  ShowMessage(strTmp);
end;
 
procedure TForm1.btnSetImpClick(Sender: TObject);
var strTmp: String;
begin
  strTmp := 'C:\WINNT\system32\spool\DRIVERS\W32X86\3\ADIST5.PPD';
  SetPrinterOptions(strTmp); // Ne fonctionne pas
  ShowMessage('Driver changé: '+IntToStr(Printer.PrinterIndex));
end;

Mais je n'arrive pas à le changer... Le SetPrinter ne prend pas en paramètre le DriverInfo2 qui contient l'info...

Avez vous une piste ?



Cette discussion est classé dans : fichier, imprimante, créer, postscript, lambda


Répondre à ce message

Sujets en rapport avec ce message

fichier db sans db ? [ par barbulille ] voila, j'ai besoin de créer une base de données mais mon application fonctionnera sous linux & windows donc je voudrais créer cette base de données sa Problème fichier INI [ par TiDaN326 ] Bonjour à tous :)Bon je me sert de la fonction pour créer/lire des fichiers INI... jusque là, tout va bien, mais comment je fait pour créer le fichier Créer une visionneuse de fichier quickreport... [ par orelien ] Bonjour,J'aimerais créer une visionneuse de fichier quickreport.Le fichier exe se présentera comme "adobe acrobat" et je souhaiterais que le fichier " Comment créer correctement un fichier de ressource ? [ par rguef ] Je cherche à créer un fichier de ressource externe. Je n'y arrive plus ! Windows me met comme message "L'application ou la DLL 'XXXXXXXXXXXX' n'est pa fichier .res [ par cricri_b34 ] j'ai créer trois image bmp que j'aimerais mettre dans un fichier .res , mais le pb c que lorsque j'essaie d'ouvrir un image on me dit que celle ci me Créer une imprimante virtuelle ? [ par locas ] Bonjour, Je souhaiterais créer une imprimante virtuelle afin de pouvoir analyser le texte du document à imprimer. Je n'ai pas trouvé de tuto ou d'ex Créer et uiliser une ressource de fichiers text [ par yvessimon ] Bonjour,Je souhaite créer une ressource d'un fichier text.Questions: commant créer cette resource. comment  lire ce fichier text dans le programme, po Delphi: Base de données [ par jdudoret ] Bonjour,J'ai créer une table sous Excel 2000 avec des données texte et images.Pas de problèmes pour afficher du texte dans des DBText  .. par les tabl comment peut on créer un fichier pdf en delphi? [ par poulcra2 ] developper une application en delphi permettant de gérer une médiathèque cotenant des documents audio et pdf?mon adresse : poulcris@yahoo.fr Comment capturer et créer un fichier son à partir du microphone? [ par BEM ] Comment capturer et créer un fichier son à partir du microphone?Je suis en train de concevoir une application pour automatiser les examens d'audiométr


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.