webForumDet fria alternativet
Logga in / Bli medlem

Skriva ut med printer, problem.

.NET

5 svar · 217 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Trådstart#1

Jag har hittat lite koder, som jag försöker att använda när jag skall skriva ut till min skrivare.
Felet med koden är att jag får inte till det med vänster-marginalen.

Const MarginLeft As Single = 30 'millimeters
Const MarginRight As Single = 20 'millimeters
Const MarginTop As Single = 20 'millimeters
Const MarginBottom As Single = 20 'millimeters

Dim del As String
Dim AreaWidth As Single
Dim AreaHeight As Single

del = Trim(Mid(Form1.Combo2.text, 3))
Form1.Info.Caption = "Översätt ifrån svenska till språk som talas i " & del
    
Printer.ScaleMode = vbMillimeters
AreaWidth = Printer.ScaleWidth - (MarginLeft + MarginRight)
AreaHeight = Printer.ScaleHeight - (MarginTop + MarginBottom)
Printer.CurrentY = MarginTop

Printer.FontName = "MS Sans Serif"
Printer.FontBold = True
Printer.FontSize = 14

Printer.Print "Översätt ifrån svenska till språk som talas i " & del
Printer.Print
Printer.Print
Printer.Print

Printer.FontSize = 8
Printer.FontBold = False
Printer.Print ; Tab(1); Form1.Text2.text
   
Printer.EndDoc

Någon som har förslag till förbättringar?

Medlem sedan okt. 20023 030 inlägg
#2
Const MarginLeft As Single = 30 'millimeters
Const MarginRight As Single = 20 'millimeters
Const MarginTop As Single = 20 'millimeters
Const MarginBottom As Single = 20 'millimeters

Dim del As String
Dim AreaWidth As Single
Dim AreaHeight As Single

del = Trim(Mid(Form1.Combo2.text, 3))
Form1.Info.Caption = "Översätt ifrån svenska till språk som talas i " & del
    
Printer.ScaleMode = vbMillimeters
AreaWidth = Printer.ScaleWidth - (MarginLeft + MarginRight)
AreaHeight = Printer.ScaleHeight - (MarginTop + MarginBottom)
Printer.CurrentY = MarginTop

Printer.FontName = "MS Sans Serif"
Printer.FontBold = True
Printer.FontSize = 14

Printer.CurrentX = MarginLeft  ' måste finnas före varje print
Printer.Print "Översätt ifrån svenska till språk som talas i " & del
Printer.CurrentX = MarginLeft  ' måste finnas före varje print
Printer.Print
Printer.CurrentX = MarginLeft  ' måste finnas före varje print
Printer.Print
Printer.CurrentX = MarginLeft  ' måste finnas före varje print
Printer.Print

Printer.FontSize = 8
Printer.FontBold = False

Printer.CurrentX = MarginLeft  ' måste finnas före varje print
Printer.Print ; Tab(1); Form1.Text2.text
   
Printer.EndDoc
Medlem sedan mars 20011 880 inlägg
#3

Du skall ha tack för att du tar dig tid, men det blev inte riktigt bra.
Jag ville ju ha lite större marginaler, så därför ändrade jag till:
Const MarginLeft As Single = 40 'millimeters

Det enda som ändrade sig var den första raden ""Översätt ifrån svenska osv"
De andra raderna är fortfarande för långt åt vänstersidan.

Vad tror du?

Medlem sedan okt. 20023 030 inlägg
#4

Byt ut

Printer.CurrentX = MarginLeft  ' måste finnas före varje print
Printer.Print ; Tab(1); Form1.Text2.text

mot

Printer.CurrentX = MarginLeft  ' måste finnas före varje print
Printer.Print 
Printer.CurrentX = MarginLeft  ' måste finnas före varje print
Printer.Print Tab(1)
Printer.CurrentX = MarginLeft  ' måste finnas före varje print
Printer.Print Form1.Text2.text

så bör det fungera.

Medlem sedan mars 20011 880 inlägg
#5

Jag är ledsen att säga det, men nu blev det om möjligt ännu sämmre.
Nu har överskriften flyttats långt till mitten, första raden av texten kommer ganska så långt in, men resterande rader är fortfarande för långt åt vänster.

Medlem sedan mars 20011 880 inlägg
#6

Efter väldigt lång tid med testande, inköp av nya papper osv så har jag löst problemet.
Jag var tvungen att lägga det i en array, för att jag skulle få med marginalen på vänster sida.

Hela = Split(Form1.Text2.Text, vbCrLf)
    Dim i As Integer
    Printer.CurrentX = 2.5
        For i = 0 To UBound(Hela)
            Bit = Hela(i)
            Printer.CurrentX = 2.5
            Printer.Print Bit
        Next
    Printer.Print

Nu kan jag änteligen gå vidare till nästa problem.

258 ms totalt · 4 externa anrop · v20260731065814-full.c32e866c
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)