13. februar 2007 - 21:50
Der er
1 kommentar og
2 løsninger
Udprint af TextBox
Jeg har en TextBox som indeholder en mængde tekst. Denne vil jeg gerne have udskrevet, hvilket jeg gør således:
dlgDialog.ShowPrinter
Printer.ScaleLeft = -0.75 * 1440
Printer.ScaleTop = -0.75 * 1440
Printer.CurrentX = 0
Printer.CurrentY = 0
Printer.Print txtPrint.Text
Printer.EndDoc
Jeg har dog et mindre problem: der er ikke wordwrap på teksten når den kommer ud af printeren. Er der en nem måde at omgå dette på?
13. februar 2007 - 23:44
#1
Hej.
Skal det være nemt, vil jeg anbefale at du skriver til en fil, der så med shell åbnes i f.eks. notepad.
Open app.path & "\printfil.txt" for output as #1
print #1, txtprint.text
close #1
x=shell("notepad.exe " & app.path & "\printfil.txt",1)
Bær over med hvis der er glemt et citationstegn el. lign.
14. februar 2007 - 10:27
#2
Jeg tror desværre ikke helt det er hvad jeg har brug for. Jeg er nødt til at kunne klare alt arbejdet fra mit eget program, og ikke have nødt til at åbne det i notepad.
Er der en (evt. sværere) måde som kan klare opgaven for mig?
14. februar 2007 - 13:07
#3
Hej.
Jeg kender ingen anden måde, at at skrive det selv. Det gjorde jeg for mange år siden i et VB3-program. Jeg talte 90 tegn ind i filen og derpå "baglæns" til et ordmellemrum. Dette blev gentaget i en løkke indtil teksten var udskrevet.
Jeg har ikke VB3 installeret mere, men her er sub'en fra den gamle form-fil. Du kan lade dig inspirere, men jeg vil ikke gå mere ind i spørgsmålet.
Sub knapprint_Click ()
Dim linie, linie0 As String
Dim x, Y, z As Integer
x = 30
printer.Print ""
printer.FontName = "Times New Roman"
printer.FontSize = 12
printer.Print " "
printer.Print " "
printer.FontBold = 1
printer.Print Space$(x) & "Resultat af søgning efter: " & kalender.skudaar.Caption & " d. " & Left$(Now, 14)
printer.Print Space$(x) & "______________________________________________________________________"
printer.FontBold = 0
printer.Print " "
linie0 = fundet.SelText
1 : If Len(linie0) > 90 Then
linie = Left$(linie0, 90)
For Y = 90 To 70 Step -1 'funktion for ikke at
If Mid$(linie, Y, 1) = " " Then 'dele linier midt i et ord
linie = Left$(linie0, Y)
Exit For
End If
Next
If Val(Right$(linie1, 1)) > 0 Then x = 38 '??? hvorfor 18/3-97 17:55
printer.Print Space$(x) & linie
linie0 = Mid(linie0, Y + 1)
GoTo 1
End If
printer.Print Space$(x) & linie0
printer.EndDoc
End Sub
Sub knapslutsøg_Click ()
resultat.Visible = False
End Sub