Drucken mit HBPrinter - Was geht wie warum ???
Moderator: Moderatoren
- brandelh
- Foren-Moderator
- Beiträge: 15701
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Drucken mit HBPrinter - Was geht wie warum ???
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
oHBP:setPrintFile( "TEST-BOLD - Probeausdruck PrintToFile.PDF" ) // EXE Verzeichnis in meinem Beispiel
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15701
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Drucken mit HBPrinter - Was geht wie warum ???
Ich habe es grad mal mit der 1.90.355 getestet, funktioniert auch.
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Drucken mit HBPrinter - Was geht wie warum ???
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 ?
Da kann ich dann die Ausgabedatei nicht mehr auswählen oder täusche ich mich da ?
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15701
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Drucken mit HBPrinter - Was geht wie warum ???
Du kannst den Dateinamen vor Startdoc() füttern.
Welche Druckerauswahl nutzt du denn, meine oder die von Xbase++ ?
Welche Druckerauswahl nutzt du denn, meine oder die von Xbase++ ?
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15701
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Drucken mit HBPrinter - Was geht wie warum ???
OK, dann musst du sehen ob du dem Druckerobjekt zwischen Create() und StartDoc() noch den Namen mit setPrintFile() einfügen kannst.
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Drucken mit HBPrinter - Was geht wie warum ???
Werde mal am Mittwoch testen, da muss ich wieder PDF Dateien mit Microsoft Print to PDF erstellen.
Gruß
Klaus
Klaus
-
- Rekursionen-Architekt
- Beiträge: 237
- Registriert: Do, 14. Aug 2008 14:59
- Wohnort: Straelen
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 3 Mal
Re: Drucken mit HBPrinter - Was geht wie warum ???
Hallo zusammen,
ich benutze Huberts Drucker- und PDF-Klasse schon seit einigen Jahren. Vielen Dank an Hubert --- wirklich großartige Software!
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).
Sumatra kommt dann wie folgt ins Spiel:
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.
ich benutze Huberts Drucker- und PDF-Klasse schon seit einigen Jahren. Vielen Dank an Hubert --- wirklich großartige Software!
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
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.)
Viele Grüße
Dieter
Was man nicht versteht, besitzt man nicht.
Dieter
Was man nicht versteht, besitzt man nicht.
- Schorsch
- Cut&Paste-Entwickler
- Beiträge: 45
- Registriert: So, 21. Sep 2008 19:21
- Wohnort: Sinsheim im Kraichgau
Re: Drucken mit HBPrinter - Was geht wie warum ???
Hallo Hubert,
vielen Dank für die Hinweise. Ich habe in meinem Fall deinen Vorschlag mit der Zwischenablage gelöst.
vielen Dank für die Hinweise. Ich habe in meinem Fall deinen Vorschlag mit der Zwischenablage gelöst.
Gruß
Schorsch
Schorsch