Skriva ut en fylld label eller shapes
Hej!
Mitt problem är att jag vet inte hur amn skriver ut en fylld label med bakgrundsfärg (utan text) eller
en solid shape.
koden jag provat är som följer där me.shpEff är
Printer.CurrentX = 10
Printer.CurrentY = 10
Printer.FillStyle = vbFSSolid
Printer.FillColor = 32768
Printer.Print Me.shpEff
printer.EndDoc
vid utskrift blir det en nolla utskrivet
Tacksam för hjälp
/Stefan H
Svara
Sv: Skriva ut en fylld label eller shapes
Du använder Line Operatorn för att skriva ut boxar:
<info>
Printer.Line [Step] (x1, y1) - [Step] (x2, y2), [color], [B][F]
</info>
Step är ett nyckelt ordet för att ange att kordinaterna är relativa utifrån aktuell position.
B - står för Box
F - står för Filled Box
Du kan inte använda F utan B.
Här är ett exempel där jag kapslat Line operatorn i en funktion. JAg ritar ut rutorna på skärmen istället för skrivaren:
1 2 3 4 5 6 7 8 9 10 11 12 13 | Private Sub Command1_Click() DrawFilledSquare Me , 1, 1, 1, 1, 32768, vbCentimeters DrawBorderSquare Me , 3, 1, 1, 1, 32768, vbCentimeters End Sub Private Sub DrawFilledSquare(Dest As Object , X As Single , Y As Single , Width As Single , Height As Single , Color As OLE_COLOR, Optional ScaleMode As ScaleModeConstants = vbTwips) Dest.Line ( Me .ScaleX(X, ScaleMode, Me .ScaleMode), Me .ScaleX(Y, ScaleMode, Me .ScaleMode))- Step ( Me .ScaleX(Width, ScaleMode, Me .ScaleMode), Me .ScaleX(Height, ScaleMode, Me .ScaleMode)), Color, BF End Sub Private Sub DrawBorderSquare(Dest As Object , X As Single , Y As Single , Width As Single , Height As Single , Color As OLE_COLOR, Optional ScaleMode As ScaleModeConstants = vbTwips) Dest.Line ( Me .ScaleX(X, ScaleMode, Me .ScaleMode), Me .ScaleX(Y, ScaleMode, Me .ScaleMode))- Step ( Me .ScaleX(Width, ScaleMode, Me .ScaleMode), Me .ScaleX(Height, ScaleMode, Me .ScaleMode)), Color, B End Sub |
För att istället skriva ut till skrivaren så ersätter du me med Printer i anropet:
1 2 3 4 5 | Private Sub Command1_Click() DrawFilledSquare Printer, 1, 1, 1, 1, 32768, vbCentimeters DrawBorderSquare Printer, 3, 1, 1, 1, 32768, vbCentimeters Printer.EndDoc End Sub |
Svara
Sv:Skriva ut en fylld label eller shapes
Hej Andreas!
Line operatorn funkar
Jag tackar för hjälpen.
Stefan H
Svara