webForumDet fria alternativet

Skriva ut med printer, problem.

5 svar · 217 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#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?

Nexus86Medlem 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
sawMedlem 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?

Nexus86Medlem 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.

sawMedlem 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.

sawMedlem 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.

252 ms totalt · 3 externa anrop · v20260731065814-full.30151723
128 ms — hämta forumlista (db)
121 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)