I ett formulär har jag en RichTextBox där användaren skriver in flera rader text. Denna text skall kunna skrivas ut med en viss vänstermarginal. När jag skriver Ang vänsterkanten finns det 2 sätt. Glömde den andra metoden med API SendMessage. Tack det gick alldeles utmärkt med bild-utskriften. Det var lurigt. Det är OK att det fungerar med en tomrad före. Mycket märkligt, men huvudsaken är att det funkar. Det visade sig att när jag skrev löpande text i Rich (alltså utan Enter mellan raderna) så kom utskriften som en enda rad. Slog jag däremot Enter mellan radbytena när jag skrev texten i Rich så blev det OK. Skulle detta lösas med API-metoden? Jag lägger in texten i en Access-databas och hämtar den sedan därifrån. Nej det löser inte API metoden.Du måste betrakta Rich som en vanlig ordbehandlare. Jag har börjat titta på detta igen, men får det inte att fungera. Du nämnde Split-metoden, har du något bra kodexempel på detta? De kanske kunde vara lösningen på problemet. För att vara säker på att inte texten ska rinna utanför kanten så får man använda TextWidth-metoden för att kontrollera de rader eller ord man ska skriva ut. Att räkna antal ord eller tecken är inte en bra metod om man vill att resultatet ska bli snyggt.Utskriftsproblem i VB6
Printer.Print Tab(15);Form1.RichTextBox1.Text så hamnar bara första raden rätt. Resten av raderna ligger ända ut i papperskanten. Hur löser man detta?
Jag har ytterligare en fråga. I formuläret har jag också en bild som PictureBox . Hur kan man göra för att få denna bild utskriven på papperet?Sv: Utskriftsproblem i VB6
1. Ställ in din printers Default Settings till vänsterkant 2.5 cm.
Detta kan man göra via PrinterObjektet,kommer inte i skrivande stund på hur .
Eller så gör du det via Windows normalt på aktuell printer.Då behöver du inte Tab(15).
Picture skriver du ut enl detta exempel.
Printer.ScaleMode = 7
'ScaleMod = centimeter
'******* Print Huvud ***********
Printer.PaintPicture Picture1.Picture, 2, 0.5, 3, 2
alla mått i cm. på ditt A4
vänsterkant,topp,widd,höjd på bilden
Du får experimentera lite om du ändra storlek med höjd och bredd på bilden.
Du kan utelämna dom två sista.
Detta exempel Printar bilden 2 cm in fr vänster och 0.5 cm ner från topp på ett A4
Bilden blir 3 cm bred och 2 cm högSv:Utskriftsproblem i VB6
Då kan du i en loop stega genom varje rad i din Rich och via Tab(15) skriva rad för rad.
Kan ge dig ett exempel om du väljer denna metod.Sv:Utskriftsproblem i VB6
Det är dock fortfarande problem med vänstermarginalen. Jag testade med följande:
Printer.ScaleMode = vbCharacters
Printer.ScaleLeft = -15
Printer.Print Form6.RichTextBox1.Text
Resultatet blev att nu hamnade rad 1 ut i kanten medan de övriga raderna kom rätt. Har du någon lösning på detta?
/GunnarSv: Utskriftsproblem i VB6
Skulle testa med att skriva ut en tomrad först
Printer.Print
och sedan Rich dokumentet enl din metodSv:Utskriftsproblem i VB6
Sv: Utskriftsproblem i VB6
Sv:Utskriftsproblem i VB6
Dvs trycka <Enter> när du vill byta rad.
Då genereras ett Carrige Return Chr$(10) och Chr$(13)
Sen kan man givetvis scanna av hela Linen och göra vbCrLf efter ca 80 tecken men det blir ganska
bökigt att inte hugga sönder hela ord.
Då skulle man kunna tänka sig använda Split metoden och lägga upp en Array som man hugger
efter ca 20 ord och inför ett vbCrLf.Sv: Utskriftsproblem i VB6
Sv:Utskriftsproblem i VB6