Drucken DOS-Datei

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

Moderator: Moderatoren

Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Drucken DOS-Datei

Beitrag von Rolf Ramacher »

ich habe eine Druckdatei die durch clipper erzeugt wird. wenn ich diese über Word ausdrucke stimmt die formatierung überhaupt nicht und bekomme sie auch nicht ganz hin. wenn ich diese anzeige und mit memoread und im mle-feld anzeige - stimmt sie annähernd ist fas OK

jetzt habe ich sie versucht mit GraStringAt - auszudrucken - kommt gar nichts leeres Blatt, dann habe ich einen Text versucht auszudrucken - kommt auch nix. Irgendwo habe ich etwas übersehen, denn etiketten drucke ich auf diesem wEge aus.

Code: Alles auswählen

	If file("ker.lit")
		cZwText:=memoread("ker.lit")

	   oDlg := XbpPrintDialog():new() 

	   // Druckausgabe nicht standardmäßig in Datei umleiten 
   	oDlg:enablePrintToFile := .f. 
	   oDlg:printToFile       := .f. 
		oDlg:pageRange 		  := {1,99 }
	   oDlg:create() 
	
	   // Konfiguriertes Drucker Objekt erzeugen 
	   oPrinter := oDlg:display() 
	   oDlg:destroy() 
	
	   IF oPrinter <> NIL 
			oPrinter:setOrientation(XBPPRN_ORIENT_PORTRAIT)
	
	      // Neuen Presentation-Space erzeugen 
	      oPS   := XbpPresSpace():new() 
	      // Bedruckbarer Bereich auf dem Papier 
	      aSize := oPrinter:paperSize() 
	      aSize := { aSize[5] - aSize[3],aSize[6] - aSize[4]  } 
	      oPS:create( oPrinter, aSize, GRA_PU_LOMETRIC ) 
			aPos:={aSize[1]+50,aSize[2]-50}

			oPrinter:Startdoc()
				oFont := XbpFont():new():create( "18.Courier New" )
				GraSetFont( oPs, oFont )
		      GraStringAt( oPS, aPos , cZwtext ) 
				

			oPrinter:Enddoc()
	
	      oPrinter:destroy() 
	      oPS:destroy() 
	
		endif
	Endif
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2825
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 96 Mal
Danksagung erhalten: 13 Mal

Re: Drucken DOS-Datei

Beitrag von georg »

Hallo, Rolf -


wie sieht es aus, wenn Du beim Druck aus Word eine Schrift mit fester Breite verwendest, z.b. Lucida Console? Die proportionale Schrift versaut meistens eine Formatierung, die auf fester Zeichenbreite eingestellt ist.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Rolf Ramacher »

Hi Georg,

den WEg über Word - hatte ich schon Times New Roman, aber auch ,mit Lucia Console. nicth viel besser
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Wolfgang Ciriack »

Hallo Rolf,
probier mal COURIER NEW.
Viele Grüße
Wolfgang
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Rolf Ramacher »

das Drucken über Word, denke , werden wir vergessen können. Word macht da seine Interne Formatierung . egal welche Schriftart ich auswhähle.

Die Frage ist, warum kommt ein leeres Blatt raus wenn mit GraStringAt drucke ??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Tom »

Die Frage ist, warum kommt ein leeres Blatt raus wenn mit GraStringAt drucke ??
Mmmh. Deine Berechnung von "aPos" ist für mich nicht ganz schlüssig. Druck doch mal einfach nur ein "X" an diese Position - oder den Text an eine Position, die auf jeden Fall richtig sein müsste. Wenn man außerhalb des PP platziert, wird eben auch nichts angezeigt oder gedruckt. Außerdem willst Du, wenn ich das richtig sehe, einen längeren Text mit Umbrüchen drucken, und das geht m.E. ohnehin nicht auf diese Weise.
Herzlich,
Tom
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Rolf Ramacher »

Hi Tom.

ich habe jetzt aSize genommen - und einen Text mit angegeben - nix

so sieht es jetzt aus

Code: Alles auswählen

  oDlg := XbpPrintDialog():new() 

	   // Druckausgabe nicht standardmäßig in Datei umleiten 
   	oDlg:enablePrintToFile := .f. 
	   oDlg:printToFile       := .f. 
		oDlg:pageRange 		  := {1,99 }
	   oDlg:create() 
	
	   // Konfiguriertes Drucker Objekt erzeugen 
	   oPrinter := oDlg:display() 
	   oDlg:destroy() 
	
	   IF oPrinter <> NIL 
			oPrinter:setOrientation(XBPPRN_ORIENT_PORTRAIT)
	
	      // Neuen Presentation-Space erzeugen 
	      oPS   := XbpPresSpace():new() 
	      // Bedruckbarer Bereich auf dem Papier 
	      aSize := oPrinter:paperSize() 
	      aSize := { aSize[5] - aSize[3],aSize[6] - aSize[4]  } 
	      oPS:create( oPrinter, aSize, GRA_PU_LOMETRIC ) 
			aPos:={aSize[1]+50,aSize[2]-50}

			oPrinter:Startdoc()
				oFont := XbpFont():new():create( "18.Courier New" )
				GraSetFont( oPs, oFont )
		      GraStringAt( oPS, aSize , "CL-Sieger" ) 
				

			oPrinter:Enddoc()
	
	      oPrinter:destroy() 
	      oPS:destroy() 
	
		endif
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Drucken DOS-Datei

Beitrag von AUGE_OHR »

Rolf Ramacher hat geschrieben:ich habe jetzt aSize genommen - und einen Text mit angegeben - nix

Code: Alles auswählen

 aPos:={aSize[1]+50,aSize[2]-50}
Tom sprach von aPos ...

hm ... aSize[1] ist doch die maximale Papierbreite, oder ? was bekommst du bei o:paperSize() ?
1 Papierbreite in 1/10 mm (= nXsize)
2 Papierhöhe in 1/10 mm (= nYsize)
3 Linker Rand in 1/10 mm (= nLeftMargin)
4 Unterer Rand in 1/10 mm (= nBottomMargin)
5 Rechter Rand in 1/10 mm (= nRightMargin)
6 Oberer Rand in 1/10 mm (= nTopMargin)
7 Breite in Pixel
8 Höhe in Pixel
gruss by OHR
Jimmy
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Rolf Ramacher »

Könnt ihr mir mal auf ie Sprünge helfen.

asize hat folgende Daten {1979,2855} - das bedeutet maximale breite 1979, max. Höhe 2855 oder bin ich da falsch, wo muß ich denn da mit dem Druck anfangen ?
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16516
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Martin Altmann »

Moin Rolf,
denke nach - dann kommst Du drauf 8)
Wenn die Breite und Höhe 1979 und 2855 ist und Du an der Stelle 2029 und 2805 druckst, dann liegt das ausserhalb des sichtbaren Bereiches!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Rolf Ramacher »

alles klar Martin,

ich denke jetzt komme ich klar
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Rolf Ramacher »

irgendwie komme ich nicht ganz weiter.

die Datei wird richtig gelesen. die Anzahl der Zeilen ist richtig - aber er druckt nur die Überschrift - mit der Anzahl der Zeilen-. in diesem Fall 19 x

Code: Alles auswählen

	   IF oPrinter <> NIL 
			oPrinter:setOrientation(XBPPRN_ORIENT_PORTRAIT)
	
	      // Neuen Presentation-Space erzeugen 
	      oPS   := XbpPresSpace():new() 
	      // Bedruckbarer Bereich auf dem Papier 
	      aSize := oPrinter:paperSize() 
	      aSize := { aSize[5] - aSize[3],aSize[6] - aSize[4]  } 
	      oPS:create( oPrinter, aSize, GRA_PU_LOMETRIC ) 
			aPos:={30,aSize[2]-50}

			cZwText:=memoread("ker.lit")
			nZeile:=MLcount(cZwText,500)
num:=NumAt(CRLF,cZwtext)
msgbox(cZwText)
msgbox(var2lchar(nZeile))
msgbox(var2lchar(num))
			oPrinter:Startdoc()
				oFont := XbpFont():new():create( "18.Courier New" )
				GraSetFont( oPs, oFont )
		
				For i = 1 to nZeile
					cDatenSatz:=alltrim(MemoLine(cZwText,500,i,4,.f.))
					cZwtext:=strtran(cZwText,"(s16.66H","")
					cZwtext:=strtran(cZwText,"(s10H","")
			      GraStringAt( oPS, aPos , cZwText ) 
					aPos[02]-=20					
				Next i
			oPrinter:Enddoc()
	
	      oPrinter:destroy() 
ich habe auch memline - ohne parameter 4+5 gemacht - das gleiche ergebnis
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Rolf Ramacher »

So jetzt habe ich es fast. Hatte einen Fehler im Code.
aber ein Zeichen ein quadratisches Kästchen - bekomme ich nicht ersetzt. finde ich auch nicht in der Ascii-Tabelle. es ist nicht chr(10) oder chr(13)
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von brandelh »

es könnte 26 (Dateiende z.b. von MemoWrit() ) oder 141 (weiche Zeilenschaltung => HardCR() ) sein ...
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Rolf Ramacher »

Hi Hubert,

nein vom memowrit kann es nicht kommen das Zeichen, ich mache jetzt kein memowrit mehr. Chr(141) DOS oder Windows. bei Windows-Tabelle steht nichts und bei DOS ist dies ein anderes Zeichen.

vielleicht ContoAnsiCp() - werde mal probieren - hat nichts gebracht
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von brandelh »

gib doch den String Zeichen für Zeichen in eine alternate Datei mit dem ASC() Wert aus oder nimm einen Editor (wie MED) der anzeigt welcher Code ein Zeichen hat ...

Code: Alles auswählen

cT := "Ein String mit seltsamen Zeichen"
nStart := 1       // eventuell einschränken
nLen := len(cT)     // eventuell einschränken
for x := 1 to nLen
   nV := asc(cT[x])
   if nV >= 32 
     cV := cT[x]
   else
     cV := " "
   endif 
   ? "'"+cV+"'  => ",nV
next
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Tom »

Gegen Kästchen im Ausdruck gibt es doch die Funktion "NoSquares".

Code: Alles auswählen

GraStringAt( oPS, aPos , NoSquares(cZwText) ) 
Herzlich,
Tom
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Rolf Ramacher »

Hi Tom

diese Funktion habe ich nicht - vielleicht erst ab Version 3.55 ?
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Tom »

@Rolf: Das war ein Scherz. 8)
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16516
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Martin Altmann »

Tom,
das wird er schon so aufgefasst haben - warum sonst sollte er von Version 3.55 schreiben :?: :lol:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

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

Re: Drucken DOS-Datei

Beitrag von brandelh »

Tom hat geschrieben:@Rolf: Das war ein Scherz. 8)
Und wie sollte man ohne Hinweis darauf kommen [-X
Ich ging davon aus, dass es mit eXpress zusammen hängt :badgrin:
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Tom »

warum sonst sollte er von Version 3.55 schreiben
Originelle Schreibung der Build-Nummer (Rolf benutzt 331)? :wink:
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16516
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Martin Altmann »

Hmm - sei doch nicht so Vorurteilsbelastet 8)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Tom »

@Rolf: Welches Zeichen wird denn nicht gedruckt? Du kannst die Datei doch ansehen. Wenn es um Umlaute geht, kann auch das Gegenteil von ConvToAnsiCP(), nämlich ConvToOemCP(), Wirkung erzielen.

Sorry wegen des Scherzes. Konnte ich mir einfach nicht verkneifen. Deine Fehlerbeschreibungen sind halt manchmal etwas haarsträubend. 8)
Herzlich,
Tom
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken DOS-Datei

Beitrag von Rolf Ramacher »

Hi Tom

dabei habe ich gar nicht mehr so viele Haare auf'm Kopf. Ich habe es gefunden - es chr(27) aus dem dos-ascii-zeichensatz - wird dann wohl
umgewandelt autom. -
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Antworten