Etiketten / Label drucken

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von TheSaint.

    Etiketten / Label drucken

    Hallo Zusammen,

    komme einfach bei dem Problem des Etikettendruckens nicht weiter.

    Hab schon gegoogelt und dieses Forum durchsucht.

    Folgenden Code habe ich gefunden:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Dim pd As New Printing.PrintDocument
    4. 'sub zum drucken einhängen
    5. AddHandler pd.PrintPage, AddressOf PrintPage
    6. pd.Print()
    7. End Sub
    8. Public Sub PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
    9. e.Graphics.DrawString("mein testdruck", New Font("Arial", 20, FontStyle.Regular, GraphicsUnit.Pixel), Brushes.Black, New Point(10, 10))
    10. End Sub
    11. End Class


    Jetzt ist es nur so, dass das Blatt 4 Etiketten pro Zeile und 32 Zeilen hat.
    Jedes Etikett soll unter anderem eine fortlaufende Nr erhalten.

    Ich krieg es einfach nicht hin das umzusetzen.
    Hab auch schon mal geschaut ob das über Cristal Reports geht.

    Könnte mir bitte jemand hierbei helfen. Wäre toll.

    Schon mal vielen Dank

    Viele Grüße
    ???
    Ich versteh dein Problem nicht.
    Möchtest du deine Zeile alle 4 Zeilen drucken?

    VB.NET-Quellcode

    1. Dim Str As String = ""
    2. For index As Integer = 0 To 32/4 'Eigenlich klar,oder ?
    3. str = "Deine Zeile" & vbCrlf
    4. Next
    5. e.Graphics.DrawString(str, New Font("Arial", 20, FontStyle.Regular, GraphicsUnit.Pixel), Brushes.Black, New Point(10, 10))

    Schnell aus den Kopf geschrieben :rolleyes:

    Memo schrieb:

    ???
    Ich versteh dein Problem nicht.
    Möchtest du deine Zeile alle 4 Zeilen drucken?


    Hm, danke für Deine Geduld.
    Ich habe von Herma / Zweckform Etiketten.
    Pro Zeile sind 4 Etiketten.
    Ich weis nicht, wie es hinbekomme, die Abstände
    so einzurichten, dass alle 4 Etiketten richtig bedruckt werden.

    Anschließend sollen alle Zeilen bedruckt werden.

    Bin halt noch Anfänger. Sorry.

    Wie macht man das?

    Hoffe ich konnte es etwas klarer ausdrücken.

    Vielen Dank für Deine Hilfe

    Memo schrieb:

    Falls du sie als Bild hast.
    Könntest du Sie per DrawImage positionieren.
    Falls du Probleme mit der Position hast gibts nur ein Mittel: Selber herumexperimentieren :thumbsup: *

    *Schau dir das PrintPreview Control an falls du Papier sparen willst. 8-)



    Nein, habe es leider nicht als Bild.
    Das herumexperimentieren, der Abstände wäre nicht so schlimm.

    Nur, könntest Du ein Beispiel geben, wie ich das per Befehl mache,
    dass ich die Positionen pro Etikett in einer Zeile bestimmen kann.
    Also für jedes Etikett die Höhe, Breite, Anfang, Ende?
    Wie lautet der Befehl so für eine Zeile?
    Die Maße, die krieg ich durch herumexperimentieren raus.
    Nur wie lautet der Befehl dazu??

    Nochmals vielen Dank.

    Viele Grüße
    Vom Prinzip her ist das Drucken mit diesem Printing Object ja eigentlich eine
    normale Grafikausgabe. Und du hast durchaus die Möglichkeit ein Print Preview
    anzuschauen.
    Wenn ich deine Frage richtig verstanden habe, geht es dir jetzt darum, eine
    Formel zu finden, mit der man die Koordinaten der Etiketten auf dem Blatt
    bestimmen kann.
    Vor allem die MOD und DIV oder \ Funktionen solltest du dir dafür mal anschauen.
    Nehmen wir mal an du hast 5 Etiketten pro Zeile dann sieht das doch etwa so aus:

    Zeile 0 = 0.....1.....2.....3.....4
    Zeile 1 = 5.....6.....7.....8.....9
    Zeile 2 = 10..11...12...13...14

    In welcher Zeile steht also das Etikett Nummer 7?
    Zeilennummer = Etikettennummer \ AnzahlEtikettenproZeile (Achtung DIV-Funktion schreibt man mit Backslash)
    Zeilennummer = 1

    Mit der Zeilennummer kannst du nun die Y-Koordinate des Etikettes herausfinden
    Y-Koordinate = AbstandvomoberenRand + (Etikettenhöhe + Etikettenabstand) * Zeilennummer

    Die Spalte errechnet sich mit der Mod-Funktion
    Spaltennummer = Etikettennummer Mod AnzahlEtikettenproZeile
    Spaltennummer = 2

    Nun daraus die X-Koordinate:
    X-Koordinate = AbstandvomlinkenRand + (Etikettenbreite + Etikettenabstand) * Spaltennummer

    Noch mal für das 10te Etikett:
    10 ist auf der Nullten Spaltenposition der 2ten Zeile.

    10 \ 5 = 2 -> Zeile
    10 mod 5 = 0 -> Spalte


    Wie du in ein Grafikobject zeichnest oder schreibst, musst du dir mal in den Grundlagen anschauen.
    Da gibt es bestimmt genug Beispiele.