Hallo zusammen!
Ich habe da ein Problem mit dem Setzen des Druckers...
Hintergrund:
Ich möchte aus List & Label drucken OHNE das eine Auswahl (Dialog Box) angezeigt wird.
Die Vorlagendatei ist fertig und wird korrekt erzeugt, die Ausgabe wird auch korrekt auf dem "Standarddrucker" ausgegeben...
Hat jemand eine Idee (Code Reihenfolge der zu setzenden Befehle) für mich?
Viele Grüße
Bernd
Standarddrucker wechseln ohne DialogBox
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9345
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 100 Mal
- Danksagung erhalten: 359 Mal
- Kontaktdaten:
Re: Standarddrucker wechseln ohne DialogBox
Hallo, Bernd.
Code: Alles auswählen
IF lAskForPrinter
LlPrinterSetup(nJob, oOwner:GetHWND(), LL_PROJECT_LIST,cFormName)
ELSE
LlSetPrinterInPrinterFile(nJob,LL_PROJECT_LIST,cFormName,-1,cPrinterName,nil) // Achtung: cPrinterName ggf. mit ConvToAnsiCP(), wenn die App OEM ist
ENDIF
Herzlich,
Tom
Tom
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2932
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Standarddrucker wechseln ohne DialogBox
Um Tom zu ergänzen, hier ein Beispiel, um eine Druckdatei auf 2 verschiedene Drucker mit Hilfe des Storagesystems auszugeben.
Alle my.. sind variablen von mir, die must du deinen Bedürfnissen anpassen. myprinter1 und myprinter2 sind bei mir im Programm durch oPrinter := XbpPrinter():New(), aList := oPrinter:List() festgelegte Druckernamen.
Alle my.. sind variablen von mir, die must du deinen Bedürfnissen anpassen. myprinter1 und myprinter2 sind bei mir im Programm durch oPrinter := XbpPrinter():New(), aList := oPrinter:List() festgelegte Druckernamen.
Code: Alles auswählen
LlPreviewSetTempPath(hJob, mytmppfad )
*** Keine Ausgabe des Preview
LlsetOption(hjob, LL_OPTION_INCREMENTAL_PREVIEW, .F.)
LlsetOptionString(hjob, LL_OPTIONSTR_LICENSINGINFO, LL_LIZENZKEY)
nRet := LlPrintStart(hjob, prj_typ, mylistenpfad+cListenName, LL_PRINT_PREVIEW)
if nRet=0
*** Parameter fr Drucker-Dialog setzen
.....
... Ausdruck
...
LlPrint(hjob)
LlPrintEnd(hjob, 0)
** hier ist jetzt die LL-Datei vorhanden
** Ausgabe mit dem Storagesystem:
** jede Seite 1 Mal auf Drucker 1
** und 1 Mal auf Drucker 2
LS20ModuleInit()
fi:=mytmppfad+cListenName+".LL"
if file(fi)
fh:=LlStgsysStorageOpen(fi,"",.F.,.T.)
AnzSeit:=LlStgsysGetPageCount(fh)
for i:=1 to AnzSeit
nRet:=LlStgSysPrint(fh,myprinter1,i,i,0,LS_PRINTFLAG_METER,"Seite "+str(i,2)+" Original",nHandle)
if nRet=0
nRet:=LlStgSysPrint(fh,myprinter2,i,i,0,0,"Seite "+str(i,2)+" Kopie",nHandle)
endif
if nRet<>0
MyMsgBox("Fehler beim Druck: "+alltrim(str(nRet)),ERROR2)
exit
endif
next
LlStgsysStorageClose(fh)
LlStgsysDeleteFiles(fh)
else
MyMsgBox("Fehler beim Öffnen der LL-Datei",ERROR2)
endif
LS20ModuleExit()
Viele Grüße
Wolfgang
Wolfgang
Re: Standarddrucker wechseln ohne DialogBox
Ich habe das mit dem:
LlSetPrinterInPrinterFile(nJob,LL_PROJECT_LIST,cFormName,-1,cPrinterName,nil)
ausprobiert...
Bekomme aber den Fehler -3 (ERR_BAD_OBJECTTYPE) !?
Es handelt sich um eine Liste...
Was müsste in den Parametern stehen?
LlSetPrinterInPrinterFile(nJob,LL_PROJECT_LIST,cFormName,-1,cPrinterName,nil)
ausprobiert...
Bekomme aber den Fehler -3 (ERR_BAD_OBJECTTYPE) !?
Es handelt sich um eine Liste...
Was müsste in den Parametern stehen?
Re: Standarddrucker wechseln ohne DialogBox
Hab das DebWin mal mitlaufen lassen...
Der gibt völligen Blödsinn zurück:
CMLL20 : 19:38:19.341 00001694/00 6 [CobPrint.dll] >LlSetPrinterInPrinterFileA(1,1659994584,'E:\TestVerzeichnis\Test\adressen.LST',1659996648,'PDFCreator',0X62F299FC)
CMLL20 : 19:38:19.341 00001694/00 7 [CobPrint.dll] *** [Error in parameter #2: invalid type of project (LL_PROJECT_...)]
CMLL20 : 19:38:19.341 00001694/00 8 [CobPrint.dll] <LlSetPrinterInPrinterFileA() -> -3 (0XFFFFFFFD) (Einer Funktion, die den Projekttyp als Parameter benötigt, wurde ein ungültiger Projekttyp übergeben.)
???
Der gibt völligen Blödsinn zurück:
CMLL20 : 19:38:19.341 00001694/00 6 [CobPrint.dll] >LlSetPrinterInPrinterFileA(1,1659994584,'E:\TestVerzeichnis\Test\adressen.LST',1659996648,'PDFCreator',0X62F299FC)
CMLL20 : 19:38:19.341 00001694/00 7 [CobPrint.dll] *** [Error in parameter #2: invalid type of project (LL_PROJECT_...)]
CMLL20 : 19:38:19.341 00001694/00 8 [CobPrint.dll] <LlSetPrinterInPrinterFileA() -> -3 (0XFFFFFFFD) (Einer Funktion, die den Projekttyp als Parameter benötigt, wurde ein ungültiger Projekttyp übergeben.)
???
Re: Standarddrucker wechseln ohne DialogBox
Hab den Fehler gefunden!
Es musste ByVal übergeben werden, dann läuft es...
Danke für die Hilfe!!!
Es musste ByVal übergeben werden, dann läuft es...
Danke für die Hilfe!!!