ich erstelle PDF-Dateien die auf verschiedenen Druckern ausgegeben werden können.
Das Problem:
Diverse Laser, Tintenstrahler alle mit der gleichen identischen Druckausgabe.
Nadeldrucker (aber nicht alle): Druckbild verschoben, Größe nicht identisch zur Laser oder Tintenausgabe.
Gedruckt wird in der Regel mit Adobe Reader:
StarteDatei(cDruckDatei, "D")
Code: Alles auswählen
FUNCTION StarteDatei(cDatei, cArt, cDir, cPara)
RETURN ShellExecute(NIL, if(cArt == "D", SHELL_PRINT, SHELL_OPEN), cDatei, cPara, cDir)
static Function ShellExecute(nWhnd, cMode, cFile, cPara, cDir, nShow )
Local cBin := DllPrepareCall( "SHELL32.DLL", DLL_STDCALL, "ShellExecuteA")
Local nErg, cPfad
DEFAULT nWhnd to 0 //AppDesktop():GetHWnd()
DEFAULT cMode to SHELL_OPEN
DEFAULT nShow to 1
iif( empty(cPara), cPara := 0, )
iif( empty(cDir), cDir:= "", )
cPfad := Programmpfad()
nErg := DllExecuteCall(cBin, nWhnd, @cMode, @cFile, @cPara, @cDir, nShow)
curdir(cPfad)
RETURN ( IIF( nErg <= 32, .F., .T.))
Gruß Stefan