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