HbPrinterX - Version 1.32 / 1.33 - OEM / ANSI freigegeben

Wenn Ihr selbstentwickelte Tools und sonstige eigene Software anzubieten habt ...
Nicht vergessen, ggf. Links zu legen.

Moderator: Moderatoren

Antworten
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14504
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

HbPrinterX - Version 1.32 / 1.33 - OEM / ANSI freigegeben

Beitrag von brandelh » So, 13. Sep 2009 15:55

Hallo,

die neue Version meiner Druckerklasse ist nun in 2 Versionen erhältlich, ANSI / OEM ;-)
-> http://www.familie-brandel.de

Neben einigen Fehlerverbesserungen gibt es 3 wichtige Neuerungen:
  • oP:say(nZeile,nSpalte,cTxt ...) erleichtert die Migration -> linke obere Ecke ist 1,1 :!: ;-)
  • XbpPrinterDialog() kann jetzt genutzt werden um einen Drucker auszusuchen und mit diesem dann HBPrinter zu starten.
  • Die Texte des HBPrinterDialog() wurden in #defines vorangestellt und auch ins englische übersetzt.
    Das erleichtert Textanpassungen.
Beispiele:

Code: Alles auswählen

oHBPrinter := HBPrinter():New():create()
if ! oHBPrinter:IsPrinterError()             // Fehler verhindern, avoid errors
   oHBPrinter:addFont("12.Courier New" ) // -> 10CPI
   oHBPrinter:SetFont(1)
   oHBPrinter:StartDoc("SAY Print")
   for nRow := 5 to 60
        oHBPrinter:say(nRow,10,aZeile[nRow])
   next
   oHBPrinter:say(3,60,"Seite: "+str(nSeite,3))
   oHBPrinter:EndDoc()
endif
? "END"

Code: Alles auswählen

#include "Gra.ch"
#include "Xbp.ch"
#include "Common.ch"
#include "Appevent.ch"
#include "Font.ch"

#pragma Library( "XppUI2.lib" )

PROCEDURE Main
   LOCAL oXbpPrinter, oDlg, oHBPrinter

   oDlg := XbpPrintDialog():new()
   oDlg:enablePrintToFile := .f.
   oDlg:printToFile       := .f.
   oDlg:create()
   oXbpPrinter := oDlg:display()
   oDlg:destroy()

   if oXbpPrinter # NIL

      oHBPrinter := HBPrinter():New(oXbpPrinter):create()

      if oHBPrinter:IsPrinterError()             // Fehler verhindern, avoid errors

         ? "Standarddrucker ist nicht verfgbar !"
         ? "Standardprinter is not ready !"
         ?
         ? "Status: ",oHBPrinter:printerStatus(),"=",cPrinterStatus(oHBPrinter:printerStatus())

      else

         oHBPrinter:addFont("12.Arial")
         oHBPrinter:setFont(1)

         oHBPrinter:StartDoc()
         oHBPrinter:say(15,30,"Hello World")
         oHBPrinter:say(20,10,"Drucker: ")
         oHBPrinter:say(20,20,oHBPrinter:DevName)
         oHBPrinter:say( 5,70,dtoc(date()))
         oHBPrinter:EndDoc()

      endif

      oXbpPrinter:destroy()
      oHBPrinter:destroy()

   endif

return
Gruß
Hubert

Dieter
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 198
Registriert: Do, 14. Aug 2008 14:59
Wohnort: Straelen

Re: HbPrinterX - Version 1.32 - OEM / ANSI freigegeben

Beitrag von Dieter » Mo, 21. Sep 2009 16:20

Hallo Hubert,

ich habe mir deine neue Say()-Funktion angeschaut. Sieht alles sehr vielversprechend aus. Ich verstehe nur nicht, warum folgender Code unterschiedliche Druckergebnisse erzeugt:

Code: Alles auswählen

oHBPrinter:say(nRow,1,"         1         2         3         4         5         6         7         8         9",,nCPI)
for nCol := 1 to 9
   oHBPrinter:say(nRow,nCol*10,nCol,,nCPI)
next
Das würde ja bedeuten, dass mit Blank-Zeichen formatierte Überschriften nicht die gleichen Abstände erzeugen (analog zum Clipper-Druck). Bei 10-CPI-Zeichen sollte ein Blank doch auch 1/10 Zoll lang sein.
Trotzdem bin ich dir sehr dankbar, dass du deine Klasse mit Quellcode zur verfügung stellst. :D :D
Viele Grüße

Dieter

Was man nicht versteht, besitzt man nicht.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14504
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: HbPrinterX - Version 1.32 - OEM / ANSI freigegeben

Beitrag von brandelh » Mo, 21. Sep 2009 18:03

Hallo Dieter,

im Prinzip hast du natürlich Recht und wenn du bei Courier New 12 auf den Acrobat PDF druckst und danach den Acrobat ausdruckst, wirst du (habe zumindest ich) keinen Unterschied festgestellt.
Leider sind die Schriftgrößen die wir bei anderen Druckern bekommen nicht immer gleich, Windowsschriften sind sowieso nur "in etwa" mit den alten CPI gleichzusetzen.

Einmal davon abgesehen, dass ich es eh nicht ändern kann (welche Schrift ausgewählt wird, ist sehr speziell ;-)), ist es fast auch ein Vorteil:

1. Wenn man den ganzen Text in einem String vom linken Rand in Courier New formartiert druckt, dann macht es nix, dass die tatsächlichen Abstände auf 20 cm etwas abweichen.
2. Wenn man das nicht will, kann man ja jedes Zeichen einzeln ansteuern, soviel Arbeit macht das auch nicht ;-)
3. DER Vorteil ist aber, dass man jede Windowsschriftart nehmen kann (variable Breite) und einfach den Anfang oder Endpunkt (je nach Ausrichtung) angibt, den Rest der Schrift dann so akzeptiert, wie er ausfällt.
Das ist dann programmiert wie zu alten Zeiten, sieht aber aus wie mit dem Satzprogramm :-)
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14504
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: HbPrinterX - Version 1.32 - OEM / ANSI freigegeben

Beitrag von brandelh » Mi, 23. Sep 2009 23:09

Hi,

ein kleiner Fehler mit großer Wirkung zwingt mich zur nächsten Version ... 1.33 wurde freigegeben ;-)
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14504
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: HbPrinterX - Version 1.32 / 1.33 - OEM / ANSI freigegeben

Beitrag von brandelh » Mi, 23. Sep 2009 23:22

Hi,

sollte sich der eine oder andere Denken, "das schaff ich nie ..." kann ich anbieten die alten Druckausgaben
oder (gescannte) Papiervorlagen im Quellcode umzusetzen. Bei Bedarf einfach eine PN oder eMail senden,
wir werden uns da sicher einig ;-)
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14504
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: HbPrinterX - Version 1.32 / 1.33 - OEM / ANSI freigegeben

Beitrag von brandelh » Mi, 11. Nov 2009 17:24

Hi,

weil ich sie gerade zur Hand habe stelle ich mal 2 PDF Testausdrucke hier rein.
Erstellt wurden diese mit TEST.EXE (leicht erweitert), das der Druckerklasse beiliegt.
Auf diesen Seiten kann man grob sehen, was man alles so drucken kann:
Dateianhänge
HB-Printer-Testseite 1 und 2 mit 1.90.355.pdf
(28.05 KiB) 178-mal heruntergeladen
HB-Printer-Testseite 1 und 2 mit 1.90.331.pdf
(28.05 KiB) 163-mal heruntergeladen
Gruß
Hubert

Antworten