Bondrucker Grafikdruck Absturz

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

Moderator: Moderatoren

Bondrucker Grafikdruck Absturz

Beitragvon flanelli » Fr, 04. Nov 2016 10:58

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
flanelli
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 26
Registriert: Di, 11. Mai 2010 15:27

Re: Bondrucker Grafikdruck Absturz

Beitragvon Werner_Bayern » Fr, 04. Nov 2016 13:28

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 euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1215
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Bondrucker Grafikdruck Absturz

Beitragvon brandelh » Fr, 04. Nov 2016 14:17

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Bondrucker Grafikdruck Absturz

Beitragvon flanelli » Do, 10. Nov 2016 7:19

@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
flanelli
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 26
Registriert: Di, 11. Mai 2010 15:27

Re: Bondrucker Grafikdruck Absturz

Beitragvon brandelh » Do, 10. Nov 2016 7:35

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Bondrucker Grafikdruck Absturz

Beitragvon flanelli » Do, 10. Nov 2016 12:48

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
flanelli
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 26
Registriert: Di, 11. Mai 2010 15:27

Re: Bondrucker Grafikdruck Absturz

Beitragvon brandelh » Do, 10. Nov 2016 13:28

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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Bondrucker Grafikdruck Absturz

Beitragvon Werner_Bayern » Do, 10. Nov 2016 15:56

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 euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1215
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Bondrucker Grafikdruck Absturz

Beitragvon brandelh » Do, 10. Nov 2016 17:36

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Bondrucker Grafikdruck Absturz

Beitragvon flanelli » Fr, 11. Nov 2016 19:58

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
flanelli
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 26
Registriert: Di, 11. Mai 2010 15:27

Re: Bondrucker Grafikdruck Absturz

Beitragvon AUGE_OHR » Fr, 11. Nov 2016 21:15

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
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10205
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Bondrucker Grafikdruck Absturz

Beitragvon flanelli » Fr, 11. Nov 2016 22:42

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
flanelli
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 26
Registriert: Di, 11. Mai 2010 15:27

Re: Bondrucker Grafikdruck Absturz

Beitragvon Werner_Bayern » Fr, 11. Nov 2016 23:03

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 euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1215
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Bondrucker Grafikdruck Absturz

Beitragvon AUGE_OHR » Sa, 12. Nov 2016 1:59

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>
MeinQRPic.BMP
MeinQRPic.BMP (156.3 KiB) 3423-mal betrachtet
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
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10205
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Bondrucker Grafikdruck Absturz

Beitragvon flanelli » Sa, 12. Nov 2016 11:14

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
flanelli
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 26
Registriert: Di, 11. Mai 2010 15:27

Re: Bondrucker Grafikdruck Absturz

Beitragvon Werner_Bayern » Sa, 12. Nov 2016 11:29

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 euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1215
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Bondrucker Grafikdruck Absturz

Beitragvon Jan » Sa, 12. Nov 2016 11:36

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11618
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Bondrucker Grafikdruck Absturz

Beitragvon flanelli » Sa, 12. Nov 2016 12:29

@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
flanelli
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 26
Registriert: Di, 11. Mai 2010 15:27

Re: Bondrucker Grafikdruck Absturz

Beitragvon Jan » Sa, 12. Nov 2016 13:23

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11618
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Bondrucker Grafikdruck Absturz

Beitragvon brandelh » Mo, 14. Nov 2016 8:33

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim


Zurück zu Drucken und Export

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast