Som jag har nämnt tidigare, så råkade jag ut för en krach och ingen backup så jag måste fråga igen. Du kan testa med: Tack för försöket Adres, men det blev bara första raden som hadde bra marginal, sen så blev det som vanligt 3 mm ifrån kanten. Du kan ju testa: Jag hr upptäckt en sak, men först är det någon referens som jag borde lägga till? Nä, du behöver inte lägga till något objekt. Däremot så visas inte alla kommandon av någon anledning. Vad jag ville uppnå, är en hyffsad utskrift där marginalen ligger på 3.5 cmPrint i vb
Jag har sökt tidigare inlägg och mycket har hjälpt, dock inte allt.
Ny gäller det en rutin för att skriva ut ifrån en textbox.
<code>
Dim Hela As Variant, Bit
Hela = Split(frMultiLanguage.txtSv.Text, vbTab)
frMultiLanguage.Info.Caption = "Skriver ut Svensk språkfil"
Dim i As Integer
Printer.ScaleMode = 7 'Centmeter
Printer.CurrentX = 3.5: Printer.CurrentY = 2.5
Printer.FontName = "MS Sans Serif"
Printer.FontBold = True
Printer.FontSize = 14
Printer.Print "Svensk Språkfil" & vbTab & Date
Printer.FontBold = False
Printer.FontSize = 8
Printer.Print
For i = 0 To UBound(Hela)
Printer.CurrentX = 3.5
Bit = Hela(i)
Printer.CurrentX = 3.5
Printer.Print Replace(Bit, "<BR>", vbCrLf)
Next
Printer.Print
Printer.EndDoc
</code>
Det är frågan om marginalerna igen, jag får inte dem att stämma. Den enda narginal som ändrar sig är Printer.Print "Svensk Språkfil" & vbTab & Date.
Fråga 1)
Hur fixar jag marginalerna på annat sätt så de ändras?
Fråga 2)
Går det att centrera text(Printer.Print "Svensk Språkfil" & vbTab & Date.)
Fråga 3)
Hur skriver man ut in linje (skulle ha en efter rubriken)
Tacksam för svar.Sv: Print i vb
<code>
Private Function CloneFont(Value As stdole.IFont) As StdFont
Value.Clone CloneFont
End Function
Private Sub Command1_Click()
Dim i As Long, j as Long
Dim Bit As String
Dim Rows() As String
Dim Hela() As String
Dim Font1 As stdFont
Dim Font2 As stdFont
frMultiLanguage.Info.Caption = "Skriver ut Svensk språkfil"
Set Font1 = New stdFont
Set Printer.Font = Font1
Font1.Name = "MS Sans Serif"
Font1.Bold = True
Font1.Size = 14
Printer.ScaleMode = 7 'Centmeter
Printer.CurrentX = 3.5: Printer.CurrentY = 2.5
Printer.Print "Svensk Språkfil" & vbTab & Date
Printer.Print
Set Font2 = CloneFont(Font1)
Set Printer.Font = Font1
Font2.Bold = False
Font2.Size = 8
Hela = Split(frMultiLanguage.txtSv.Text, vbTab)
For i = 0 To UBound(Hela)
Rows = Split(Hela(i), "<BR>")
For j = 0 To UBound(Rows)
Printer.CurrentX = 3.5
Printer.Print Rows(j)
Next
Next
Printer.Print
Printer.EndDoc
End Sub
</code>Sv: Print i vb
Sv: Print i vb
<code>
Dim Text As String
Text = frMultiLanguage.txtSv.Text
Text = Replace(Text, "<BR>", vbCrLf)
Hela = Split(Text, vbTab)
</code>Sv: Print i vb
När man skriver Printer och lägger till en punkt, så öppnas en outomeny där man kan lägga till egenskaper. I detta fallet t ex pring, alltså printer.print. Detta finns inte i min autolist...
Kan det vara det som ställer till mitt problem, att scriptet inte reagera på marginalen(CurentX)?
I autolisten så finns naturligtvis en massa annat(CurrentX, CurrentY osv)
Vad tror du?Sv: Print i vb
När det gäller marginalerna så måste du före varje printer.print sätta currentx eller currenty. Annars tappar systemet bort detta och börjar från början. Det kan till och med vara så att du måste hålla reda på såväl x som y-axeln för varje rad du skriver och öka den själv, men då lite beroende på vad du skall uppnå.Sv: Print i vb
<code>
Dim Hela As Variant, Bit
Hela = Split(frMultiLanguage.txtSv.Text, vbTab)
frMultiLanguage.Info.Caption = "Skriver ut Svensk språkfil för: " &
frMultiLanguage.StatusBar1.Panels(4).Text & " " & " " & Date
Dim i As Integer, Y As Single, X As Single
Printer.ScaleMode = 7 'Centmeter
Printer.CurrentX = 3.5:
Printer.CurrentY = 2.5
Y = Printer.CurrentY
X = Printer.CurrentX
Printer.FontName = "MS Sans Serif"
Printer.FontBold = True
Printer.FontSize = 14
Printer.CurrentX = (Printer.ScaleWidth / 2 - HWidth) - 7
Printer.Print "Svensk Språkfil för: " & frMultiLanguage.StatusBar1.Panels(4).Text &
vbTab & Date
Printer.FontBold = False
Printer.FontSize = 8
Printer.Print
Printer.CurrentX = X
For i = 0 To UBound(Hela)
Printer.CurrentX = X
Bit = Hela(i)
Printer.CurrentX = X
Printer.Print Replace(Bit, "<BR>", vbCrLf)
Next
Printer.Print
Printer.EndDoc
</code>
Det är så här som jag har det, och jag är inte f-n till att få till marginalerna.
Innan krachen så hadde jag ett script liknande det här, och det fungerade kanon, det var därför som jag funderade på någon referens.