Seite 9 von 9

Re: Drucken mit HBPrinter - Was geht wie warum ???

Verfasst: Fr, 22. Mai 2020 7:09
von Koverhage
Beispiel ?

Re: Drucken mit HBPrinter - Was geht wie warum ???

Verfasst: Fr, 22. Mai 2020 9:04
von brandelh
es reicht, wenn man die Methode der XbpPrinter() ... oder PS() ... Klasse nutzt, so wie ich es auch weitergebe:

oHBP:setPrintFile( "TEST-BOLD - Probeausdruck PrintToFile.PDF" ) // EXE Verzeichnis in meinem Beispiel

Re: Drucken mit HBPrinter - Was geht wie warum ???

Verfasst: Fr, 22. Mai 2020 11:29
von brandelh
Ich habe es grad mal mit der 1.90.355 getestet, funktioniert auch.

Re: Drucken mit HBPrinter - Was geht wie warum ???

Verfasst: Fr, 22. Mai 2020 12:36
von Koverhage
Ich bzw. der Anwender hat die Vorschau und wählt dann den Drucker "Microsoft Print to PDF" aus.
Da kann ich dann die Ausgabedatei nicht mehr auswählen oder täusche ich mich da ?

Re: Drucken mit HBPrinter - Was geht wie warum ???

Verfasst: Fr, 22. Mai 2020 13:30
von brandelh
Du kannst den Dateinamen vor Startdoc() füttern.
Welche Druckerauswahl nutzt du denn, meine oder die von Xbase++ ?

Re: Drucken mit HBPrinter - Was geht wie warum ???

Verfasst: So, 24. Mai 2020 10:19
von Koverhage
Die von Express++

Re: Drucken mit HBPrinter - Was geht wie warum ???

Verfasst: Mo, 25. Mai 2020 15:45
von brandelh
OK, dann musst du sehen ob du dem Druckerobjekt zwischen Create() und StartDoc() noch den Namen mit setPrintFile() einfügen kannst.

Re: Drucken mit HBPrinter - Was geht wie warum ???

Verfasst: Mo, 25. Mai 2020 16:19
von Koverhage
Werde mal am Mittwoch testen, da muss ich wieder PDF Dateien mit Microsoft Print to PDF erstellen.

Re: Drucken mit HBPrinter - Was geht wie warum ???

Verfasst: Di, 26. Mai 2020 0:00
von Dieter
Hallo zusammen,

ich benutze Huberts Drucker- und PDF-Klasse schon seit einigen Jahren. Vielen Dank an Hubert --- wirklich großartige Software! =D>
Sowohl die PDF-Anzeige, als auch den PDF-Druck der über Huberts Druckerklasse erzeugt wird, zeige ich immer erst mit dem extrem schlanken Sumatra-PDF-Reader an. Man kann aber auch sofort auf den Standarddrucker drucken oder einen Drucker auswählen. Sumatra ist Open-Source und somit lizenzkostenfrei installierbar. Da Sumatra keinen eigenen PDF-Drucker-Treiber beinhaltet, habe ich mir einen eigenen Ghostscript-Druckertreiber (ebenfalls Open Source) zusammengebaut, der grundsätzlich die Druckdatei in einem festgelegten temp-Verzeichnis mit dem User-Namen ablegt (username.pdf). Somit ist auch auf Servern sichergestellt, dass die Druckjobs der unterschiedlichen User sich nicht in die Quere kommen. Somit gibt es auch auf Terminalservern keinerlei Lizenzprobleme mit PDF-Reader-Software, die in der Regel nur für Privatnutzung kostenfrei ist.
Wenn der Anwender im Menu den PDF-Druck als Standdard ausgewählt hat, dann kommt der Ghostscript-Drucker zum Einsatz (siehe im nachfolgenden Code -> Variable cPDF_Drucker).

Code: Alles auswählen

	IF oMenu:isAuswahl
		*******       Huberts Printdialog ******************************
		oListe:PrintingDialog( .t. ,;   // ESC -> close
		       .t. ,;               // ALT+Enter and Enter will Print
		       xbeK_ALT_P)          // ALT+P will print
		oListe:create()
		****************************************************************
	ELSEIF oMenu:isPDF
		oListe:create(cPDF_Drucker)	// Ghostscript-Drucker
	ELSE
		 oListe:create()    // Standarddrucker
	ENDIF 
Sumatra kommt dann wie folgt ins Spiel:

Code: Alles auswählen

	// der Druck landet im PDF-Austauschverzeichnis von Ghostscript und muss noch von Sumatra angezeigt werden
	cDatei =cPDF_Austausch+"\"+cUser+".PDF"
	IF !lIsDir(cAustausch)    // OT4xb
		lMakePath(cAustausch)  // OT4xb
	ENDIF
	cPDFneu=cAustausch+"\"+cDruckname+".PDF"
	IF FILE(cDatei)
		DO WHILE nSize1<nSize2 .OR. nSize1==0
			nSize1= FSIZE(cDatei)
			SLEEP(50)
			nSize2= FSIZE(cDatei)
		ENDDO
		SLEEP(10)
		Copy FILE (cDatei) TO (cPDFneu)
	ENDIF
	cAcrobat := GetStandardProgramm(cDruckname+".PDF", cAustausch)
      	runshell(cPDFneu,cAcrobat,.t.) 
 
Wenn Interesse besteht, wie man selbst einen Ghostscript-Drucker installiert, der die Druckdatei cPDF_Austausch+"\"+cUser+".PDF" erzeugt, dann kann ich bei Gelegenheit diese Informationen hier in das Forum einstellen.

Re: Drucken mit HBPrinter - Was geht wie warum ???

Verfasst: Di, 02. Jun 2020 18:18
von Schorsch
Hallo Hubert,
vielen Dank für die Hinweise. Ich habe in meinem Fall deinen Vorschlag mit der Zwischenablage gelöst.