Ik heb een kassasoftware geschreven voor een restaurant, alles werkt goed. Alleen zit ik nu met het probleem om mijn data mooi uit te lijnen op 1 regeltje. De printer ondersteund rechtstreekse commando's naar de printer ( zie code ).
De huidige layout:
De gewenste layout:
Ik heb 39 karakters op een lijn beschikbaar, alles wat meer is valt af ( getest met 12345... )
Hoe kan ik dit mooi uitlijnen, de productnaam mag evt afgekapt worden om layout te bewaren. Ik heb me al suf gezocht, sample code gedownload... Niets bruikbaars gezien/gevonden.
Als iemand mij in de goede richting kan duwen, evt met een klein voorbeeldje, zou me enorm helpen.
Overigens heb ik ook DataReport gemaakt, het lastige daarbij is dat je de paper size ( in dit geval, de length ) niet kan instellen. Hij print dus altijd papiertjes van 80mm x 297mm. Verspilling, en het oogt niet mooi als op je kasticket er een witte blok van 80mmx11cm aan zit. Vandaar het rechtstreeks aansturen, dan snijdt hij het papiertje mooi op maat.
Dit is de code die ik gebruik voor het printen van mijn ticket:
De huidige layout:
code:
1
2
| Aantal Productnaam
Subtotaal |
De gewenste layout:
code:
1
| Aantal Productnaam Subtotaal |
Ik heb 39 karakters op een lijn beschikbaar, alles wat meer is valt af ( getest met 12345... )
Hoe kan ik dit mooi uitlijnen, de productnaam mag evt afgekapt worden om layout te bewaren. Ik heb me al suf gezocht, sample code gedownload... Niets bruikbaars gezien/gevonden.
Als iemand mij in de goede richting kan duwen, evt met een klein voorbeeldje, zou me enorm helpen.
Overigens heb ik ook DataReport gemaakt, het lastige daarbij is dat je de paper size ( in dit geval, de length ) niet kan instellen. Hij print dus altijd papiertjes van 80mm x 297mm. Verspilling, en het oogt niet mooi als op je kasticket er een witte blok van 80mmx11cm aan zit. Vandaar het rechtstreeks aansturen, dan snijdt hij het papiertje mooi op maat.
Dit is de code die ik gebruik voor het printen van mijn ticket:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
| For Each prnPrinter In Printers If prnPrinter.DeviceName = "BIXOLON SRP-350" Then Set Printer = prnPrinter Exit For End If Next Printer.FontName = "FontControl" Printer.Font.Size = 9.5 Printer.Print "x" 'Tekst naar het midden uitlijnen Printer.FontName = "Arial" Printer.FontSize = 10 Printer.Font.Bold = True Printer.Print "Restaurant - Brasserie" + vbCrLf Printer.FontName = "FontControl" Printer.Font.Size = 9.5 Printer.Print "G" 'Printen van 1e NV bit image Printer.FontName = "Arial Black" Printer.FontSize = 12 Printer.Font.Bold = True Printer.Print "CHEZ FLUPPIE" Printer.FontName = "Arial" Printer.FontSize = 10 Printer.Font.Bold = True Printer.Print "Straat 1" Printer.Print "1000 Brussel" Printer.Print "Tel: +32 2 123 45 67" + vbCrLf Printer.FontName = "FontControl" Printer.Font.Size = 9.5 Printer.Print "w" 'Tekst naar links uitlijnen Printer.FontName = "Arial" Printer.FontSize = 10 Printer.Font.Bold = True Printer.Print "Tafelnummer: " & TafelNummerLbl.Caption + vbCrLf Printer.FontName = "Arial" Printer.FontSize = 9 Printer.Font.Bold = False With TestGridRecordset .MoveFirst For i = 1 To .RecordCount Printer.Print .Fields("Aantal") & vbTab & .Fields("Productnaam") + vbCrLf & vbTab & vbTab & vbTab & vbTab & vbTab & Format(.Fields("Subtotaal"), "€0.00") .MoveNext Next i End With Printer.FontName = "FontControl" Printer.Font.Size = 9.5 Printer.Print "w" 'Tekst naar links uitlijnen Printer.FontName = "Arial" Printer.FontSize = 12 Printer.Font.Bold = True Printer.Print vbCrLf + "Totaal te betalen: " & SubTotaalLbl.Caption + vbCrLf Printer.FontName = "FontControl" Printer.Font.Size = 9.5 Printer.Print "x" 'Tekst naar het midden uitlijnen Printer.FontName = "Arial" Printer.FontSize = 9 Printer.Font.Bold = False Printer.Print "Vriendelijke groeten, Philippe" Printer.FontName = "FontControl" Printer.Font.Size = 9.5 Printer.Print "A" 'Kassalade openen ! Printer.EndDoc 'Printer.FontName = "FontControl" 'Printer.Font.Size = 9.5 'Printer.Print "g" 'Papier snijden 'Printer.EndDoc |
