Bondrucker Grafikdruck Absturz

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Bondrucker Grafikdruck Absturz

Beitrag von flanelli »

Knifflige Frage an die Druckerexperten

OS: XP-SP3
Drucker: BIXOLON SRP-350plusIII Bondrucker via USB-Anschluß
Treiber: Alle beim Hersteller verfügbaren ausprobiert

Ausdruck BMP, JPG, GIF via
XbpBitmap():draw

Jeder Druck an "normale" Seitendrucker aller Marken, Kopierrdrucker,
PDF-Drucker funktioniert problemlos aber der BIXOLON killt.
FATAL ERROR LOG
Error within the error handling!
SYS Thread-ID: 388
Module: EXE
Error Codes: EH: 5 Sub: -1073741819(c0000005) OS: 0 XPP: 41
Call Stack of Thread 1 (388):
Danke gleich im Voraus :-)

LG. Marcel
Ahoile aus dem Süden
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von Werner_Bayern »

EXE = Expression Executer

0005 - [BASE] - "OS-exception occurred"
Associated with Gen Error: "41: Internal data structures corrupted"
Can be caused by: Various things, including: "Memory(0)", ":UpdateBuffer()", "AppEvent()", "ValType()", etc.
Remarks: Listed in PDRs 109-4341 and 109-6356
Remarks: (subErrorCode contains: Exception Number -- OS Error Code)
Also in Fatal Error Logs: "EH: 5"/"OS: 0"/"XPP: 41",
"Function: atmStartGCThread(void*)", "Module: ATM"
or: "Error within the error handling!", "Module: EXE"

OS 0: ERROR_SUCCESS The operation completed successfully.
XPP 41: XPP_ERR_CORRUPTION Internal data structures corrupted (an unexpected OS error occurred or corrupted XPF file)

Das finde ich bei den Errorcodes, gabs mal irgendwo zum runterladen.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Bondrucker Grafikdruck Absturz

Beitrag von brandelh »

Error within the error handling!

wenn das drinn steht, immer zunächst die eigene ErrorSys() suchen und für den Test abstellen.

Bei dem Bondrucker würde ich auch versuchen ob er mit z.B. Word bedruckt werden kann.
Ist das ein GDI Druckertreiber ?

Ich kenne welche mit ESC/POS Druckschnittstelle und die will bedient werden wie alte DOS Drucker.
Gruß
Hubert
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von flanelli »

@Werner_Bayern
Danke für deine Gedanken. Leider waren die Errorcodes in diesem Falle keine Lösung
da die Kiste ja im Atom landete und da ist dann eben alles finster

@brandelh
Nachdem ein Image-Druck mit Word und auch mit diversen Grafikprogrammen
problemlos funktioniert hat und der Drucker generell sowohl per ESC/POS als auch
via Wintreiber ansprechbar ist hatte ich das Ding schon halb im Schrottcontainer.
Nachdem aber sich unerwartet doch noch eine Supportmessage vom Hersteller
eingetrudelt ist habe ich den Container mit Xbase++ befüllt statt mit dem Drucker :angry5:

Thermolinedrucker haben lt. Hersteller oft ein Problem mit Pics die mehr als 1PP aufweisen.
Es sei denn das Programm mit dem gedruckt wird ist schlau genug um mit dem nun
geklärten Problem eines Speicherüberlaufes umzugehen. Mit Xbase++ via XbpBitmap():draw
geht das halt nicht, da wird der Drucker zugeschüttet und wehrt sich.

Als gelernter Clipperianer lasse ich jetzt einfach den Workaround-Drachen fliegen
unf via RunShell den Irfanview32 von der Commandline aus im Silentmodus aus dem
8PP-Pic ein 1PP-Pic machen und drucke dann dieses via Xbase++ ohne Probleme aus
Das war es auch schon. Geht alles binnen 1 Sekunde.

Jedenfalls danke für die Anregungen.

Gruß, Marcel
Ahoile aus dem Süden
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Bondrucker Grafikdruck Absturz

Beitrag von brandelh »

8PP - meinst du damit die Farbtiefe ?

Dann sieh man diese Eigenschaft:
XbpBitmap:bits
The number of bits per color.
Attribute: READONLY
Data type: Numeric

Description
The :bits instance variable contains the number of bits that are used for color coding in the bitmap.
This value is generally 8 for a color bitmap and 1 for a black and white bitmap.
24 bits indicate a true-color bitmap.
die kann man natürlich nicht ändern, da es eine Eigenschaft der geladenen Datei ist.
Wenn man aber eine neue erzeugt, kann man sehr wohl 1 für Schwarz/Weis setzen, siehe letzter Parameter:
XbpBitmap:make()
Requests memory for a new bitmap.

:make( [<nXsize>] , [<nYsize>], [<nPlanes>], [<nBits>] ) --> self

Parameters
<nXsize>
<nXsize> is a numeric value that can be used to specify the number of pixels in x direction (width) for the bitmap created.

<nYsize>
<nYsize> is a numeric value that can be used to specify the number of pixels in y direction (height) for the bitmap created.

<nPlanes>
<nPlanes> specifies the number of bit planes used in the bitmap. The default value is device dependent (it is 1 for most color monitors).

Multi-plane bitmaps are not supported under Windows.

<nBits>
The optional parameter <nBits> specifies the number of bits that are used to code color values in the bitmap.
The default value is device dependent (it is 8 for most color monitors).
Legal values are 1, 2, 4, 8 and 24 bits.
Platform specific color depths are supported but may be converted to true color (24 bits).

Return
This method returns .T. (true) when the memory could be provided for the bitmap, otherwise .F. (false) is returned
Gruß
Hubert
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von flanelli »

Hallo Hubert,
brandelh hat geschrieben:8PP - meinst du damit die Farbtiefe ?
Genau die meinte ich und das man über die Methode :make( [<nXsize>] , [<nYsize>], [<nPlanes>], [<nBits>] )
den Farbwert definieren kann ist mir klar.

Mein Problem liegt ja darin dass eine bestehende Grafik, im konkreten Fall ein QR-Code gedruckt wird
und wie du auch betont hast - eine geladene Grafik kann ich mit Xbase++ dahingehend eben nicht ändern
und beim Ausdruck auch nicht dahingehend beeinflußen.

Von dem Gedanken eine QR-Grafik von A bis Z selber zu erzeugen hab ich mich aus guten Gründen schon vor langem
verabschiedet. Dazu verwende ich halt z.B. eine QRCodeLib.Dll oder eine Methode aus dem RKSV-COM-Modul
aber da gibt es leider keine Möglichkeit die Farbbtiefe zu parametrieren.

Wäre natürlich toll wenn jemand eine DLL kennt mit der das machbar ist.

Jedenfalls ein weiteres Mal herzlichen Dank für die Reaktion.

Gruß, Marcel
Ahoile aus dem Süden
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Bondrucker Grafikdruck Absturz

Beitrag von brandelh »

das hatte ich so nicht verstanden.

Seltsam dass die eine Bitmap mit 8 PP machen bei einem 2 Farbigen QR-Code, aber sicherlich ist deine aktuelle schnelle Lösung einfacher als alles andere.
Gruß
Hubert
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von Werner_Bayern »

Servus Marcel,

Du kannst doch das Bitmap laden, die Farbtiefe ändern, dann drucken oder speichern? An was Ähnlichem arbeite ich gerade, sobald es funktioniert, wird aus dieser Hypothese eine Behauptung. :)
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Bondrucker Grafikdruck Absturz

Beitrag von brandelh »

Ich hab nix gefunden, was in der Klasse vor dem Speichern die Bit Tiefe ändern würde, aber ich lass mich gern belehren :-)

Eigentlich könnte man in dem einfachen Format auch den String einfach anpassen, aber die Mühe hab ich mir beim Suchen nicht gemacht.
Gruß
Hubert
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von flanelli »

Werner_Bayern hat geschrieben:Servus Marcel,

Du kannst doch das Bitmap laden, die Farbtiefe ändern, dann drucken oder speichern? An was Ähnlichem arbeite ich gerade, sobald es funktioniert, wird aus dieser Hypothese eine Behauptung. :)
Hallo Werner,
Je früher deine Hypothese zur Behauptung mutiert umso lauter der Applaus und ehrfürchtiger der Respekt.
Nach deinem aufmunterndem "Du kannst doch ..." habe ich natürlich ein weiteres Mal nach irgendwelchen
verborgenen Mechanismen in Xbase++ gesucht die bestätigen würden dass ich das doch kann aber das
einzige was ich kann ist mich Hubert anzuschließen und gerne auf eine Belehrung warten,

Gruß, Marcel
Ahoile aus dem Süden
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von AUGE_OHR »

flanelli hat geschrieben:Thermolinedrucker haben lt. Hersteller oft ein Problem mit Pics die mehr als 1PP aufweisen.
...
Mit Xbase++ via XbpBitmap():draw geht das halt nicht, da wird der Drucker zugeschüttet und wehrt sich.
wie hast du das gemacht ?
wenn du eine "leeres" Bitmap mit 1-bit anlegst und das dann, per o:Draw, in den Presentationspace überträgst "sollte" es S/W werden.

ich kann auch keine 1-Bit Umwandlung finden ... aber Günter Beyes hat ein Bitmap / Grayscale Functionen geschrieben.
flanelli hat geschrieben:QRCodeLib.Dll
ist das eine Dot Net DLL ? URL ?
gruss by OHR
Jimmy
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von flanelli »

AUGE_OHR hat geschrieben:...
wie hast du das gemacht ?
wenn du eine "leeres" Bitmap mit 1-bit anlegst und das dann, per o:Draw, in den Presentationspace überträgst "sollte" es S/W werden.
Hallo Jimmy,

Ich hab ja gar nichts gemacht weil ich lege ja kein Bitmap an sondern lade ein Bmp-file und drucke das dann auf dem Bondrucker
am Ende des Beleges aus ( Dank unserer Regierung ab 01.04.2017 generell verpflichtend )

QRCodeLib.Dll kannst du unter http://www.sait.com.mx/download/qrcodelib.dll downloaden

qr_Inhalt:="Hurra wir leben noch"
qr_file:="MeinQRPic"
qr_done:=DllCall("QRCODELIB.DLL", DLL_STDCALL, "FastQRCode",qr_Inhalt,qr_file)

Es wird ein BMP erzeugt aber man kann keinen weiteren Einfluß darauf nehmen, also weder
die Farbtiefe, Größe oder sonstwas beeinfliussen bzw. habe ich keinen Ansatz dafür gefunden.
Größe ist ja kein Problem, die skaliere ich gegebenfalls beim draw()

Gruß, Marcel
Ahoile aus dem Süden
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von Werner_Bayern »

Servus Marcel,

hier die Lösung:

Code: Alles auswählen

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

PROCEDURE Main

   LOCAL oPS, oBitmap, lIsLoaded, oBmp, oPresSpace

   SET CHARSET TO ANSI

   oPS := PrinterPS("Adobe PDF")
   oPS:device():startDoc()

   oBitmap := XbpBitmap():new():create( oPS )
   lIsLoaded := oBitmap:loadFile( "neues Bild.bmp" )
   IF lIsLoaded
      // Temp-Bitmap erzeugen
      oBmp:= XbpBitmap():New():Create()
      oPresSpace := XbpPresSpace():new():create()
      oBmp:presSpace( oPresSpace )

      // <nBits> The optional parameter <nBits> specifies the number of bits that are used to code color values in the bitmap.
      // The default value is device dependent (it is 8 for most color monitors). Legal values are 1, 2, 4, 8 and 24 bits.
      // Platform specific color depths are supported but may be converted to true color (24 bits).
      oBmp:make( oBitmap:XSize, oBitmap:YSize,, 1) // <nBits>

      // Zeichne das Originalbild auf oPresSpace in der gewünschten Farbtiefe
      oBitmap:draw( oPresSpace, {0,0,oBitmap:XSize, oBitmap:YSize} )

      // Zeichne das Ergebnis auf dem Drucker (oPS)
      oBmp:draw( oPS, {0,0,oBitmap:XSize, oBitmap:YSize}, {0,0,oBitmap:XSize, oBitmap:YSize} )

   ENDIF
   oBitmap:destroy()
   oPS:device():endDoc()
   DestroyDevice( oPS )
   oBmp:destroy()

RETURN


// Presentation-Space erzeugen und mit Device-Context
// für einen Drucker assoziieren. Die Einheit für das
// Koordinatensystem ist 1/10 Millimeter
//
static FUNCTION PrinterPS( cPrinterObjectName )

   LOCAL oPS, oDC := XbpPrinter():New()
   LOCAL aSize, aList, nPrinterPos

   cPrinterObjectName := Lower(cPrinterObjectName)

   aList := oDC:list()
   nPrinterPos := AScan( aList, {|cPrinter| cPrinterObjectName $ Lower(cPrinter)} )
   IF nPrinterPos == 0
      RETURN NIL
   ENDIF

   oDC:Create( aList[nPrinterPos] )

   oPS   := XbpPresSpace():New()
   aSize := oDC:paperSize()

   aSize := { aSize[5] - aSize[3], aSize[6] - aSize[4]  }
   oPS:Create( oDC, aSize, GRA_PU_LOMETRIC )
RETURN oPS


static PROCEDURE DestroyDevice( oPS )

   LOCAL oDC := oPS:device()

   IF oDC <> NIL
      oPS:configure()
      oDC:destroy()
   ENDIF
RETURN
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von AUGE_OHR »

flanelli hat geschrieben:QRCodeLib.Dll kannst du unter http://www.sait.com.mx/download/qrcodelib.dll downloaden

qr_Inhalt:="i love Xbase++"
qr_file:="MeinQRPic.BMP"
qr_done:=DllCall("QRCODELIB.DLL", DLL_STDCALL, "FastQRCode",qr_Inhalt,qr_file)
WOW ... ein 3-Zeiler der alles macht =D>

[Die Dateierweiterung bmp wurde deaktiviert und kann nicht länger angezeigt werden.]

der Code von Werner zeigt das was ich meinte mit leerem Bitmap wo du dann dein QRcode Bitmap "in" den Presentationspace des leeren "malst". das erzeugte S/W Bitmap lässt sich dann sicherlich auch auf dem Bon Drucker ausgeben.
gruss by OHR
Jimmy
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von flanelli »

Sehr verehrter Herr Werner,
was soll ich jetzt noch dazu sagen außer eben dir diese Anrede zuzuweisen =D> =D> =D>
Jetzt sieht das ganze ja so logisch aus aber auf die Idee wäre ich niemals gekommen obwohl
mein Xbase-Hirn sehr oft Doppelsaltos schlägt.
Jedenfalls nochmals DANKE für deine Behauptung und die Lehrstunde, u made my day :blob8:

@Jimmy,
ich hab das leider nicht kapiert so wie du das meintest aber jetzt verstehe ich es auch.
Nun speichere ich das, dank Werner erzeugte 1PP-Pic ab und drucke es dann zum gegebenen Zeitpunkt am Bon aus.

Leute, das Forum ist schon ein Hammer ...

Gruß, Marcel
Ahoile aus dem Süden
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von Werner_Bayern »

Servus Marcel,

jetzt muss Du aus Deinem Container das Xbase++ wieder rauskramen :)

Danke für das Lob, aber ohne Hilfe von Alaska hätte ich mein damit verbundenes Problem auch nicht selbst hinbekommen. Daraus entstand dann auch die Lösung für Dein Problem.
... und von mir ein Bugfix für Alaskas Beispiel Imgview 8)
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Bondrucker Grafikdruck Absturz

Beitrag von Jan »

flanelli hat geschrieben:Leute, das Forum ist schon ein Hammer ...
Marcel,

deswegen treffen wir uns auch jedes Jahr persönlich auf den Forentreffen, um das noch ein wenig zu toppen. Wolfgang ist auch dabei, da kannst Du ihm dann ja einen asgeben :-D

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: Bondrucker Grafikdruck Absturz

Beitrag von flanelli »

@Werner Ehre wem Ehre gebührt

@Jan Irgendwie habe ich das Gefühl dass auf meiner Agenda im nächsten Jahr eine Frohsinnreise nach Norden stehen wird.
Gibt es in Willingen auch gutes Essen? :D
Ahoile aus dem Süden
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Bondrucker Grafikdruck Absturz

Beitrag von Jan »

Marcel,

klar gibts da gutes Essen! Und am Freitag einen super oppulenten Grillabend in der Hütte am See! Meld Dich einfach mal an, bis Ende November gibt es noch den EarlyBird-Rabatt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Bondrucker Grafikdruck Absturz

Beitrag von brandelh »

flanelli hat geschrieben: QRCodeLib.Dll kannst du unter http://www.sait.com.mx/download/qrcodelib.dll downloaden

Code: Alles auswählen

qr_Inhalt:="Hurra wir leben noch"
qr_file:="MeinQRPic"
qr_done:=DllCall("QRCODELIB.DLL", DLL_STDCALL, "FastQRCode",qr_Inhalt,qr_file)
Suchbegriffe, das ist ein wichtiges Thema:

QR-CODE QRCODE BARCODE DLL erzeugen XBASE XBASE++ qrcodelib.dll
Gruß
Hubert
Antworten