DCPRINT Text senkrecht drucken [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

DCPRINT Text senkrecht drucken [ERLEDIGT]

Beitrag von Koverhage »

Hallo,

kann mir jemand auf die Sprünge helfen, wie ich einen Text vertikal drucken kann ?
Zuletzt geändert von Koverhage am So, 26. Jun 2011 10:42, insgesamt 1-mal geändert.
Gruß
Klaus
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: DCPRINT Text senkrecht drucken

Beitrag von AUGE_OHR »

Koverhage hat geschrieben:kann mir jemand auf die Sprünge helfen, wie ich einen Text vertikal drucken kann ?
gute Frage ... den Drucker auf "quer" zu stellen hilft dir wohl nicht, oder ?

Ich würde die Frage gerne erweitern :
wie drucke ich von rechts oben nach rechts unten und dann die nächste Spalte links wieder von oben nach unten ?
das wäre dann in "alt" Chinesisch wie man es öfter in "Büchern" findet.
gruss by OHR
Jimmy
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Tom »

Hallo, Klaus.

DCPRINT ORIENTATION (In der Doku zusammengeschrieben). Soll angeblich auch innerhalb eines Jobs funktionieren.
Herzlich,
Tom
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Koverhage »

Hallo Tom,

erstmal Update installieren um die Hilfe (wie auch die von Xbase++) unter Windows 7 anzuzeigen.

DCPRINT ORIENTATION gilt immer nur für eine komplette Seite.

Ich habe aber folgendes Problem:

Ganz normaler Text (horizontal) und eine Balkengrafik, zu der ich links oder rechts daneben einen Text
(vertikal) drucken möchte.
Werde wohl jedes Zeichen (pro Zeile) extra drucken müssen.
Gruß
Klaus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Tom »

Hallo, Klaus.

DCPRINT ORIENTATION gilt m.E. auch innerhalb einer Seite, wenn Du kein DCPRINT EJECT auslöst. So steht's auch in der Doku. Mal ausprobiert?
Herzlich,
Tom
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Koverhage »

Denke mal das ist die einzige Möglichkeit

Code: Alles auswählen

static function printvtext(nStartRow, nCol, lFromBottom, cString, cFont)
Local nStringLength := len(cString), i:= 0
if nStringLength > 0
   DCPRINT FONT cFont PRINTER oPrinter
   for i:=1 to nStringLength
       @ nStartRow, nCol DCPRINT say cString[i] PRINTER oPrinter
       if lFromBottom
          nStartRow--
       else
          nStartRow++
       endif
   next
endif
return NIL
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Koverhage »

Hallo Tom,

folgendes steht bei mir in der Hilfe.

This command may be used only after a DCPRINT ENDPAGE and before
a DCPRINT STARTPAGE.

Auch das Beispiel dazu ist immer für eine ganze Seite.

Aber ich werde das mal probieren, danke.
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Koverhage »

Die Funktion printvtext, die ich gepostet habe ist nicht das was ich möchte.
Sieht bescheiden aus.

Denke mal das geht nur mit GraStringAt, aber geht das auch wenn ich sonst nur DCPRINT
benutze ?

Oder ich erstelle für die Texte eine Grafik und drucke die.
Gruß
Klaus
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: DCPRINT Text senkrecht drucken

Beitrag von brandelh »

Hallo Klaus,

ich drehe in meiner Druckerklasse die Schriften und das müsste mit express auch gehen.
Du mußt nur den PS ermitteln und an die GraFunktion übergeben. Dort zuvor die Schrift gedreht werden.
Ich schneide mal aus der Druckerklasse die passenden Pasagen aus

Code: Alles auswählen

   aAttribNeu :=  {}
   ...
   if ! IsNil(nDrehen)
      aadd(aAttribNeu, { GRA_AS_ANGLE , HbGradToXppArray(nDrehen,100) } )
   endif
   if ! IsNil(nFarbe)
      aAltColor := GraSetColor(::oPS,nFarbe)        // So nur den Fordergrund bestimmen - only foreground color
   endif
   if ! Empty( aAttribNeu )
      aAltAttr   := ::SetAttrString( aAttribNeu )
   endif
   ...
   GraStringAt(::oPS, aPos, cTxt )
   ...
*-------------------------------------------------------------
METHOD _HBPrinter:SetAttrString( aAttribNeu )
   local aAttrib, aAttribAlt
   aAttrib := Array( GRA_AS_COUNT )
   aeval(aAttribNeu,{|aAttNeuWert| aAttrib[aAttNeuWert[1]] := aAttNeuWert[2] } )
   aAttribAlt := GraSetAttrString( ::oPS, aAttrib )
return aAttribAlt
*----------------------------------------------------------
function HbGradToXppArray(nDrehen,nFaktor)         // noch nicht perfekt ########### prüfen !!!"
   local nX, nY, aCosSin, nDrehenInt

   DEFAULT nFaktor TO 1                            // Werte zwischen -1 und 1, für Ausgabe in Bildpunkten sind diese Werte zu klein
                                                   // über Faktor kann die Länge bestimmt werden:   1 = 1/10mm, 10 = 1 mm etc.
                                                   // Valuerange is -1 to 1, for printtext etc. are the values to low
                                                   // the length could be defined with nFaktor:   1 = 1/10mm, 10 = 1 mm etc.

   aCosSin :=  { {1.0000000000000000,0.0000000000000000} , ;   // 0 Grad -> nDrehenInt+1 -> 1. Element
                 {0.9998476951563913,0.0174524064372835} , ;   // 1 Grad -> nDrehenInt+1 -> 2. Element
                 {0.9993908270190958,0.0348994967025010} , ;
                 {0.9986295347545739,0.0523359562429438} , ;
                 {0.9975640502598243,0.0697564737441253} , ;
                 {0.9961946980917455,0.0871557427476582} , ;   // Falls jemand eine bessere Funktion weiß, bitte mitteilen.
                 {0.9945218953682733,0.1045284632676535} , ;   // if someone knows a better (fast) way, let me know.
                 {0.9925461516413220,0.1218693434051475} , ;
                 {0.9902680687415704,0.1391731009600654} , ;
                 {0.9876883405951378,0.1564344650402309} , ;
                 {0.9848077530122080,0.1736481776669303} , ;
                 {0.9816271834476640,0.1908089953765448} , ;
                 {0.9781476007338058,0.2079116908177593} , ;
                 {0.9743700647852353,0.2249510543438650} , ;
                 {0.9702957262759965,0.2419218955996677} , ;
                 {0.9659258262890683,0.2588190451025208} , ;
                 {0.9612616959383189,0.2756373558169992} , ;
                 {0.9563047559630355,0.2923717047227367} , ;
                 {0.9510565162951535,0.3090169943749474} , ;
                 {0.9455185755993169,0.3255681544571567} , ;
                 {0.9396926207859084,0.3420201433256687} , ;
                 {0.9335804264972018,0.3583679495453003} , ;
                 {0.9271838545667874,0.3746065934159120} , ;
                 {0.9205048534524404,0.3907311284892738} , ;
                 {0.9135454576426009,0.4067366430758001} , ;
                 {0.9063077870366499,0.4226182617406994} , ;
                 {0.8987940462991670,0.4383711467890774} , ;
                 {0.8910065241883679,0.4539904997395468} , ;
                 {0.8829475928589270,0.4694715627858908} , ;
                 {0.8746197071393958,0.4848096202463371} , ;
                 {0.8660254037844388,0.4999999999999999} , ;
                 {0.8571673007021124,0.5150380749100541} , ;
                 {0.8480480961564260,0.5299192642332049} , ;
                 {0.8386705679454240,0.5446390350150271} , ;
                 {0.8290375725550418,0.5591929034707468} , ;
                 {0.8191520442889918,0.5735764363510460} , ;
                 {0.8090169943749475,0.5877852522924731} , ;
                 {0.7986355100472929,0.6018150231520483} , ;
                 {0.7880107536067219,0.6156614753256583} , ;
                 {0.7771459614569709,0.6293203910498374} , ;
                 {0.7660444431189780,0.6427876096865393} , ;
                 {0.7547095802227720,0.6560590289905073} , ;
                 {0.7431448254773943,0.6691306063588583} , ;
                 {0.7313537016191706,0.6819983600624985} , ;
                 {0.7193398003386513,0.6946583704589973} , ;
                 {0.7071067811865476,0.7071067811865475} , ;
                 {0.6946583704589973,0.7193398003386511} , ;
                 {0.6819983600624985,0.7313537016191705} , ;
                 {0.6691306063588583,0.7431448254773941} , ;
                 {0.6560590289905073,0.7547095802227720} , ;
                 {0.6427876096865394,0.7660444431189780} , ;
                 {0.6293203910498375,0.7771459614569709} , ;
                 {0.6156614753256583,0.7880107536067219} , ;
                 {0.6018150231520484,0.7986355100472929} , ;
                 {0.5877852522924731,0.8090169943749475} , ;
                 {0.5735764363510461,0.8191520442889918} , ;
                 {0.5591929034707468,0.8290375725550418} , ;
                 {0.5446390350150272,0.8386705679454240} , ;
                 {0.5299192642332049,0.8480480961564260} , ;
                 {0.5150380749100544,0.8571673007021123} , ;
                 {0.5000000000000001,0.8660254037844386} , ;
                 {0.4848096202463371,0.8746197071393958} , ;
                 {0.4694715627858909,0.8829475928589269} , ;
                 {0.4539904997395468,0.8910065241883678} , ;
                 {0.4383711467890774,0.8987940462991670} , ;
                 {0.4226182617406994,0.9063077870366499} , ;
                 {0.4067366430758002,0.9135454576426009} , ;
                 {0.3907311284892737,0.9205048534524404} , ;
                 {0.3746065934159122,0.9271838545667874} , ;
                 {0.3583679495453004,0.9335804264972018} , ;
                 {0.3420201433256688,0.9396926207859084} , ;
                 {0.3255681544571568,0.9455185755993168} , ;
                 {0.3090169943749474,0.9510565162951535} , ;
                 {0.2923717047227368,0.9563047559630354} , ;
                 {0.2756373558169992,0.9612616959383189} , ;
                 {0.2588190451025208,0.9659258262890683} , ;
                 {0.2419218955996677,0.9702957262759965} , ;
                 {0.2249510543438652,0.9743700647852353} , ;
                 {0.2079116908177595,0.9781476007338056} , ;
                 {0.1908089953765449,0.9816271834476640} , ;
                 {0.1736481776669304,0.9848077530122080} , ;
                 {0.1564344650402309,0.9876883405951378} , ;
                 {0.1391731009600655,0.9902680687415704} , ;
                 {0.1218693434051475,0.9925461516413220} , ;
                 {0.1045284632676535,0.9945218953682733} , ;
                 {0.0871557427476581,0.9961946980917455} , ;
                 {0.0697564737441255,0.9975640502598243} , ;
                 {0.0523359562429440,0.9986295347545739} , ;
                 {0.0348994967025011,0.9993908270190958} , ;
                 {0.0174524064372836,0.9998476951563913} , ;
                 {0.0000000000000000,1.0000000000000000} }

   nDrehenInt  := int(nDrehen)                          // 23.123 -> aCosSin[23, X/Y ]

   do case
      case nDrehenInt >=  0 .and. nDrehenInt <= 90
           nX := aCosSin[nDrehenInt+1,1]
           nY := aCosSin[nDrehenInt+1,2]
      case nDrehenInt >  90 .and. nDrehenInt <=180
           nDrehenInt := 180-nDrehenInt
           nX := aCosSin[nDrehenInt+1,1] * -1
           nY := aCosSin[nDrehenInt+1,2]
      case nDrehenInt > 180 .and. nDrehenInt<=270
           nDrehenInt -= 180
           nX := aCosSin[nDrehenInt+1,1] * -1
           nY := aCosSin[nDrehenInt+1,2] * -1
      case nDrehenInt > 270 .and. nDrehenInt<=360
           nDrehenInt := 360-nDrehenInt
           nX := aCosSin[nDrehenInt+1,1]
           nY := aCosSin[nDrehenInt+1,2] * -1
   endcase

return {nX*nFaktor,nY*nFaktor}
wie man GraSetAttrStr... nutzt musst du in der Hilfe nachsehen.
Ich meine dort steht auch ein passables Beispiel.
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Koverhage »

Hallo Hubert,

auf den ersten Bick ist mir das zu hoch.
Werde mal schauen, wie ich an den PS drankomme und dann
versuchen das umzusetzen.

Danke
Gruß
Klaus
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Martin Altmann »

Moin Klaus,
was für ein senkrecht meinst Du denn eigentlich genau?
Den Text um 90° nach links gekippt (also die Buchstaben auf der Seite liegend - man muss den Kopf auf die Schulter legen, um zu lesen)?
Oder von oben nach unten senkrecht verlaufend (wie Jimmy das meint, die Reihe läuft von oben nach unten, die Buchstaben stehen aber senkrecht)?

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von brandelh »

Hallo,

Klaus will die Schrift um 90 oder 270 Grad drehen, ich mache sowas bei uns im Büro um den Formularnamen in 8.Arial im linken Seitenrand parallel zur Seitenkante zu drucken.
Ich habe mal aus der Hilfe die Befehle zusammengesucht. Das eXpress++ Drucker PS weiß ich aber nicht wie du das bekommst.

Code: Alles auswählen

local  aAttr, aOldAttr, oEPS, nDrehen
...
nDrehen := 90 // oder 270
aAttr := ARRAY( GRA_AS_COUNT )  // ein Array für die Schriftänderung (drehen etc.)
aAttr [ GRA_AS_ANGLE ] := HbGradToXppArray(nDrehen,100)
aOldAttr := GraSetAttrString( oEPS , aAttr ) 
GraStringAt( oEPS , {10,250}, oFont:compoundName ) 
// zurücksetzen
GraSetAttrString( oEPS , aOldAttr ) 

*----------------------------------------------------------
function HbGradToXppArray(nDrehen,nFaktor)         // noch nicht perfekt ########### prüfen !!!"
   local nX, nY, aCosSin, nDrehenInt

   DEFAULT nFaktor TO 1                            // Werte zwischen -1 und 1, für Ausgabe in Bildpunkten sind diese Werte zu klein
                                                   // über Faktor kann die Länge bestimmt werden:   1 = 1/10mm, 10 = 1 mm etc.
                                                   // Valuerange is -1 to 1, for printtext etc. are the values to low
                                                   // the length could be defined with nFaktor:   1 = 1/10mm, 10 = 1 mm etc.

   aCosSin :=  { {1.0000000000000000,0.0000000000000000} , ;   // 0 Grad -> nDrehenInt+1 -> 1. Element
                 {0.9998476951563913,0.0174524064372835} , ;   // 1 Grad -> nDrehenInt+1 -> 2. Element
                 {0.9993908270190958,0.0348994967025010} , ;
                 {0.9986295347545739,0.0523359562429438} , ;
                 {0.9975640502598243,0.0697564737441253} , ;
                 {0.9961946980917455,0.0871557427476582} , ;   // Falls jemand eine bessere Funktion weiß, bitte mitteilen.
                 {0.9945218953682733,0.1045284632676535} , ;   // if someone knows a better (fast) way, let me know.
                 {0.9925461516413220,0.1218693434051475} , ;
                 {0.9902680687415704,0.1391731009600654} , ;
                 {0.9876883405951378,0.1564344650402309} , ;
                 {0.9848077530122080,0.1736481776669303} , ;
                 {0.9816271834476640,0.1908089953765448} , ;
                 {0.9781476007338058,0.2079116908177593} , ;
                 {0.9743700647852353,0.2249510543438650} , ;
                 {0.9702957262759965,0.2419218955996677} , ;
                 {0.9659258262890683,0.2588190451025208} , ;
                 {0.9612616959383189,0.2756373558169992} , ;
                 {0.9563047559630355,0.2923717047227367} , ;
                 {0.9510565162951535,0.3090169943749474} , ;
                 {0.9455185755993169,0.3255681544571567} , ;
                 {0.9396926207859084,0.3420201433256687} , ;
                 {0.9335804264972018,0.3583679495453003} , ;
                 {0.9271838545667874,0.3746065934159120} , ;
                 {0.9205048534524404,0.3907311284892738} , ;
                 {0.9135454576426009,0.4067366430758001} , ;
                 {0.9063077870366499,0.4226182617406994} , ;
                 {0.8987940462991670,0.4383711467890774} , ;
                 {0.8910065241883679,0.4539904997395468} , ;
                 {0.8829475928589270,0.4694715627858908} , ;
                 {0.8746197071393958,0.4848096202463371} , ;
                 {0.8660254037844388,0.4999999999999999} , ;
                 {0.8571673007021124,0.5150380749100541} , ;
                 {0.8480480961564260,0.5299192642332049} , ;
                 {0.8386705679454240,0.5446390350150271} , ;
                 {0.8290375725550418,0.5591929034707468} , ;
                 {0.8191520442889918,0.5735764363510460} , ;
                 {0.8090169943749475,0.5877852522924731} , ;
                 {0.7986355100472929,0.6018150231520483} , ;
                 {0.7880107536067219,0.6156614753256583} , ;
                 {0.7771459614569709,0.6293203910498374} , ;
                 {0.7660444431189780,0.6427876096865393} , ;
                 {0.7547095802227720,0.6560590289905073} , ;
                 {0.7431448254773943,0.6691306063588583} , ;
                 {0.7313537016191706,0.6819983600624985} , ;
                 {0.7193398003386513,0.6946583704589973} , ;
                 {0.7071067811865476,0.7071067811865475} , ;
                 {0.6946583704589973,0.7193398003386511} , ;
                 {0.6819983600624985,0.7313537016191705} , ;
                 {0.6691306063588583,0.7431448254773941} , ;
                 {0.6560590289905073,0.7547095802227720} , ;
                 {0.6427876096865394,0.7660444431189780} , ;
                 {0.6293203910498375,0.7771459614569709} , ;
                 {0.6156614753256583,0.7880107536067219} , ;
                 {0.6018150231520484,0.7986355100472929} , ;
                 {0.5877852522924731,0.8090169943749475} , ;
                 {0.5735764363510461,0.8191520442889918} , ;
                 {0.5591929034707468,0.8290375725550418} , ;
                 {0.5446390350150272,0.8386705679454240} , ;
                 {0.5299192642332049,0.8480480961564260} , ;
                 {0.5150380749100544,0.8571673007021123} , ;
                 {0.5000000000000001,0.8660254037844386} , ;
                 {0.4848096202463371,0.8746197071393958} , ;
                 {0.4694715627858909,0.8829475928589269} , ;
                 {0.4539904997395468,0.8910065241883678} , ;
                 {0.4383711467890774,0.8987940462991670} , ;
                 {0.4226182617406994,0.9063077870366499} , ;
                 {0.4067366430758002,0.9135454576426009} , ;
                 {0.3907311284892737,0.9205048534524404} , ;
                 {0.3746065934159122,0.9271838545667874} , ;
                 {0.3583679495453004,0.9335804264972018} , ;
                 {0.3420201433256688,0.9396926207859084} , ;
                 {0.3255681544571568,0.9455185755993168} , ;
                 {0.3090169943749474,0.9510565162951535} , ;
                 {0.2923717047227368,0.9563047559630354} , ;
                 {0.2756373558169992,0.9612616959383189} , ;
                 {0.2588190451025208,0.9659258262890683} , ;
                 {0.2419218955996677,0.9702957262759965} , ;
                 {0.2249510543438652,0.9743700647852353} , ;
                 {0.2079116908177595,0.9781476007338056} , ;
                 {0.1908089953765449,0.9816271834476640} , ;
                 {0.1736481776669304,0.9848077530122080} , ;
                 {0.1564344650402309,0.9876883405951378} , ;
                 {0.1391731009600655,0.9902680687415704} , ;
                 {0.1218693434051475,0.9925461516413220} , ;
                 {0.1045284632676535,0.9945218953682733} , ;
                 {0.0871557427476581,0.9961946980917455} , ;
                 {0.0697564737441255,0.9975640502598243} , ;
                 {0.0523359562429440,0.9986295347545739} , ;
                 {0.0348994967025011,0.9993908270190958} , ;
                 {0.0174524064372836,0.9998476951563913} , ;
                 {0.0000000000000000,1.0000000000000000} }

   nDrehenInt  := int(nDrehen)                          // 23.123 -> aCosSin[23, X/Y ]

   do case
      case nDrehenInt >=  0 .and. nDrehenInt <= 90
           nX := aCosSin[nDrehenInt+1,1]
           nY := aCosSin[nDrehenInt+1,2]
      case nDrehenInt >  90 .and. nDrehenInt <=180
           nDrehenInt := 180-nDrehenInt
           nX := aCosSin[nDrehenInt+1,1] * -1
           nY := aCosSin[nDrehenInt+1,2]
      case nDrehenInt > 180 .and. nDrehenInt<=270
           nDrehenInt -= 180
           nX := aCosSin[nDrehenInt+1,1] * -1
           nY := aCosSin[nDrehenInt+1,2] * -1
      case nDrehenInt > 270 .and. nDrehenInt<=360
           nDrehenInt := 360-nDrehenInt
           nX := aCosSin[nDrehenInt+1,1]
           nY := aCosSin[nDrehenInt+1,2] * -1
   endcase

return {nX*nFaktor,nY*nFaktor}
oEPS steht hier für den Express Presentation Space der von DCPRINT verwendet wird.
Du könntest mit /P compilieren und nachsehen, was aus DCPRINT wird.
Irgendwie muss es ja auch einen XbpPrinter() Objekt verwenden, und dieses braucht einen PS ...
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Martin Altmann »

OK,
dann sollten die beiden sich mal GraSetAttrString() anschauen.
Jimmy: für das Attribut GRA_AS_DIRECTION entweder GRA_CHDIRN_TOPBOTTOM oder GRA_CHDIRN_BOTTOMTOP
Klaus: mit dem Attribut GRA_AS_ANGLE kann man den Winkel bestimmen, in dem die Zeichen ausgegeben werden sollen. Ein Beispiel ist bei der Erklärung zu GraQueryTextBox() dazu vorhanden.

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
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: DCPRINT Text senkrecht drucken

Beitrag von AUGE_OHR »

Martin Altmann hat geschrieben:OK,
dann sollten die beiden sich mal GraSetAttrString() anschauen.
Jimmy: für das Attribut GRA_AS_DIRECTION entweder GRA_CHDIRN_TOPBOTTOM oder GRA_CHDIRN_BOTTOMTOP
Ja das sieht gut aus ... aber
Win32 - Windows unterstützt nur die Ausgaberichtung von Links nach Rechts.
nun ist die Hilfe ja "alt" Stand XP 32bit ...

ich versuche mich z.Z. an der Win 7 Ultimate und nur mit der Version "soll" so was wohl möglich sein.
... aber ich muss noch das Problem lösen wie ich die Zeichen "trenne" ... SUBSTR(cChina,n,2) ergibt leider "nicht immer" ein "darstellbares" Zeichen ...
gruss by OHR
Jimmy
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: DCPRINT Text senkrecht drucken

Beitrag von Jan »

In den Alaska-Samples gibt es das Programm Fancyfnt.prg. Da wird das mit GraRotate() gemacht.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Koverhage »

Martin,

wenn ich das richtig verstehe müsste mir doch auch
GRA_AS_DIRECTION
reichen.
Wenn ich dort vertikal angebe, müsste es doch das machen. Werde die verschiedenen
Anregungen probieren.
Danke
Gruß
Klaus
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: DCPRINT Text senkrecht drucken

Beitrag von brandelh »

Hallo Klaus,

wenn express++ die Gra Routinen unterstützt, sind die speziellen Befehle dort natürlich besser.
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCPRINT Text senkrecht drucken

Beitrag von Koverhage »

Hier noch die Lösung damit ich das Thema als erledigt kennzeichnen kann.

aAttrVertical[ GRA_AS_ANGLE ] := { 0, 1 }

@nVZeile,0 DCPRINT SAY progversion() FONT '6.Verdana' ATTRIBUTE aAttrVertical PRINTER oPrinter
Gruß
Klaus
Antworten