Logo mit Text ausdrucken
Moderator: Moderatoren
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Logo mit Text ausdrucken
Hallo, bin noch in einem relativ jungen Stadium mit xbase++ (1.82) unterwegs (mehr prozedural als objektorientiert ). Habe folgendes Problem. Ich muß Listen ausdrucken auf denen oben ein Logo mit ausgedruckt werden soll.
Die Listen klappen prima. Nur wie kriege ich das Logo mit in den Text.
Hier mal ein Auszug aus meinem Quelltext:
oPrinter := XbpPrinter():new()
IF oPrinter:list() == NIL
MsgBox( "Fehler - Es sind keine Drucker installiert!", "" )
RETURN NIL
ENDIF
oDlg := XbpPrintDialog():new()
oDlg:enablePrintToFile := .F.
oDlg:printToFile := .F.
oDlg:enableNumCopies := .T.
oDlg:numCopies := 1
oDlg:create()
oDlg:configure()
oPrinter := oDlg:display()
IF oPrinter <> NIL
// Neuen Presentation-Space erzeugen
oPS := XbpPresSpace():new()
// Bedruckbarer Bereich auf dem Papier
aSize := oPrinter:paperSize()
aSize := { aSize[5] - aSize[3], aSize[6] - aSize[4] } // bedruckbarer Bereich
oPS:create( oPrinter, aSize, GRA_PU_LOMETRIC )
oPrinter:startDoc()
// Füllen eines Arrays mit Listeninhalt
AADD(aF, {xpos+50, ypos, aMit[1], oFont3})
ypos := ypos - zeilenabst
AADD(aF, {xpos+50, ypos, aMit[2], oFont3})
ypos := ypos - zeilenabst
AADD(aF, {xpos+50, ypos, aMit[3], oFont3})
// usw.
// Seiteninhalt drucken
FOR i = 1 TO LEN(aF)
GraSetFont( oPS,aF[i,4])
GraStringAt(oPS, { aF[i,1], aF[i,2] }, aF[i,3] )
NEXT
oPrinter:endDoc()
ENDIF
2. Problem
Wie bekomme ich eine Titelseite beim Programmaufruf hin. z.B. ein Hintergrundbild mit Programmname und "START"-Button, der dann zum eigentlichen Programm führt?
Bin für jede Hilfe dankbar
Gruß Wolfgang
Die Listen klappen prima. Nur wie kriege ich das Logo mit in den Text.
Hier mal ein Auszug aus meinem Quelltext:
oPrinter := XbpPrinter():new()
IF oPrinter:list() == NIL
MsgBox( "Fehler - Es sind keine Drucker installiert!", "" )
RETURN NIL
ENDIF
oDlg := XbpPrintDialog():new()
oDlg:enablePrintToFile := .F.
oDlg:printToFile := .F.
oDlg:enableNumCopies := .T.
oDlg:numCopies := 1
oDlg:create()
oDlg:configure()
oPrinter := oDlg:display()
IF oPrinter <> NIL
// Neuen Presentation-Space erzeugen
oPS := XbpPresSpace():new()
// Bedruckbarer Bereich auf dem Papier
aSize := oPrinter:paperSize()
aSize := { aSize[5] - aSize[3], aSize[6] - aSize[4] } // bedruckbarer Bereich
oPS:create( oPrinter, aSize, GRA_PU_LOMETRIC )
oPrinter:startDoc()
// Füllen eines Arrays mit Listeninhalt
AADD(aF, {xpos+50, ypos, aMit[1], oFont3})
ypos := ypos - zeilenabst
AADD(aF, {xpos+50, ypos, aMit[2], oFont3})
ypos := ypos - zeilenabst
AADD(aF, {xpos+50, ypos, aMit[3], oFont3})
// usw.
// Seiteninhalt drucken
FOR i = 1 TO LEN(aF)
GraSetFont( oPS,aF[i,4])
GraStringAt(oPS, { aF[i,1], aF[i,2] }, aF[i,3] )
NEXT
oPrinter:endDoc()
ENDIF
2. Problem
Wie bekomme ich eine Titelseite beim Programmaufruf hin. z.B. ein Hintergrundbild mit Programmname und "START"-Button, der dann zum eigentlichen Programm führt?
Bin für jede Hilfe dankbar
Gruß Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo,
wenn du noch recht neu dabei bist schau dir mal meine Druckerklasse und den Thread davor an. Dort habe ich eben ein Beispiel mit meiner Druckerklasse gezeigt.
Bei meiner Druckerklasse kann man mit:
oHBPrinter:PrintBmp(nX,nY,nXSize,nYSize,cFileName,nID)
direkt eine Datei oder aber eine Resource drucken lassen.
In der Klasse ist u.a. vorgesehen, dass man eine PrintForm() Methode mit allen Druckausgaben die einmalig je Seite sind definiert und eine Print()-Methode für den Rest. Das geht dann auch mit Druckvorschau.
Direkt in Xbase++ Code müsste man so vorgehen wie ich es in der Druckerroutine auch mache.
wenn du noch recht neu dabei bist schau dir mal meine Druckerklasse und den Thread davor an. Dort habe ich eben ein Beispiel mit meiner Druckerklasse gezeigt.
Bei meiner Druckerklasse kann man mit:
oHBPrinter:PrintBmp(nX,nY,nXSize,nYSize,cFileName,nID)
direkt eine Datei oder aber eine Resource drucken lassen.
In der Klasse ist u.a. vorgesehen, dass man eine PrintForm() Methode mit allen Druckausgaben die einmalig je Seite sind definiert und eine Print()-Methode für den Rest. Das geht dann auch mit Druckvorschau.
Direkt in Xbase++ Code müsste man so vorgehen wie ich es in der Druckerroutine auch mache.
Code: Alles auswählen
// nx=xKoordinate, ny=yKoordinate, cFileName
// nXSize=Breite in X, nYSize=H”he in Y
aPos1 := {?,?} wohin
oBitmap := XbpBitmap():new():create( oPrinterPresentationSpace)
// jenachdem wo die Bitmap her ist ???
if IsNil(nID) // Dateiname der Bitmap wurde
Gruß
Hubert
Hubert
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Hallo Armin,Armin hat geschrieben:hallo wolfgang,
ich mach das alles mit xbpBitmap().
So z.B. auch einen Briefbogen (DIN A4) zuerst ein Bild über ganze Seite, danach der Druck mit GraString(...
Dein Eingangsbildschirm sollte auch so funktionieren (PresentationSpace)
Grüsse, Armin
das mit xbpBitmap hat prima hingehauen. Mit dem Eingangsbilschirm bin ich noch am kämpfen.
Gruß Wolfgang