Accueil > Manip’s > Delphi > Imprimer > Détourner l’impression vers Adobe PDF
Détourner l’impression vers Adobe PDF
mercredi 1er août 2012, par
Pour imprimer un PDF à partir de n’importe quel traitement de texte.
Il suffit de détourner temporairement l’impression vers l’imprimante virtuelle ADOBE (si Adobe PDF est installé)
SetDefaultPrinter(’Adobe PDF’) ; |
Voir procédure SetDefaultPrinter
Mémoriser l’imprimante par défaut
DEFAULT_PRINTER := Printer.Printers[Printer.PrinterIndex] ; |
Restituer l’imprimante Oroginale
SetDefaultPrinter( DEFAULT_PRINTER ) ; |
procedure SetDefaultPrinter(PrinterName: String) ;
var
j: Integer;
Device : PChar;
Driver : Pchar;
Port : Pchar;
HdeviceMode: Thandle;
aPrinter : TPrinter;
begin
Printer.PrinterIndex := -1;
getmem(Device, 255) ;
getmem(Driver, 255) ;
getmem(Port, 255) ;
aPrinter := TPrinter.create;
for j := 0 to Printer.printers.Count-1 do
begin
if Printer.printers[j] = PrinterName then
begin
aprinter.printerindex := j;
aPrinter.getprinter
(device, driver, port, HdeviceMode) ;
StrCat(Device, ',') ;
StrCat(Device, Driver ) ;
StrCat(Device, Port ) ;
WriteProfileString('windows', 'device', Device) ;
StrCopy( Device, 'windows' ) ;
SendMessage(HWND_BROADCAST, WM_WININICHANGE,
0, Longint(@Device)) ;
end;
end;
Freemem(Device, 255) ;
Freemem(Driver, 255) ;
Freemem(Port, 255) ;
aPrinter.Free;
end;