Farbigen Text drucken

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Farbigen Text drucken

    Die folgenden Beiträge wurden aus dem Thema Drucken mehrseitiger Dokumente ausgelagert.

    Wie kann ich einen Text in individueller Farbe drucken? Der erste Gedanke wäre dieser:

    VB.NET-Quellcode

    1. al = Label1.ForeColor.A
    2. ro = Label1.ForeColor.R
    3. gr = Label1.ForeColor.G
    4. bl = Label1.ForeColor.B
    5. g.DrawString(Label1.Text, New Font(Schrift, Größe, 0, Einheit, Satz, Vertikal), Brushes.FromArgb(al, ro, gr, bl), New Point(x, y))


    Doch leider ist FromArgb keim Member von Brusches

    Eine Möglichkeit wäre, für jede Farbe eine Zeile zu schreiben, doch das ist wohl nicht im Simme eines Programiierers. Außerdem wäre ein ARGB-Code, der keine der vorgegebenen Farbe entspricht, nicht abrufbar. Im diesem Fall würde der Text erst garnicht gedruckt werden.

    VB.NET-Quellcode

    1. If Label1.ForeColor = Color.AliceBlue Then g.DrawString(Label1.Text, New Font(Schrift, Größe, 0, Einheit, Satz, Vertikal), Brushes.AliceBlue, New Point(x, y))
    2. If Label1.ForeColor = Color.AntiqueWhite Then g.DrawString(Label1.Text, New Font(Schrift, Größe, 0, Einheit, Satz, Vertikal), Brushes.AntiqueWhite, New Point(x, y))
    3. If Label1.ForeColor = Color.Aqua Then g.DrawString(Label1.Text, New Font(Schrift, Größe, 0, Einheit, Satz, Vertikal), Brushes.Aqua, New Point(x, y))
    4. ...


    ~blaze~: Ausgelagert

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „~blaze~“ ()

    Selter98 schrieb:

    Wie kann ich einen Text in individueller Farbe drucken?
    Drucke den Text einer RichTextBox, nutze dazu die RichTextBoxEx, gugst Du hier.

    Selter98 schrieb:

    Doch leider ist FromArgb keim Member von Brusches
    Da musst Du Dir mit New den richtigen Brush erzeugen:

    VB.NET-Quellcode

    1. Dim br As Brush = New SolidBrush(Color.FromArgb(1, 2, 3, 4))
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Selter98 schrieb:

    Kann man diese noch irgendwie setzen?


    Ja, indem du eine andere Ueberladung von Graphics.DrawImage nimmst. Hierfuer waere es DrawImage(Image, Rectangle)
    msdn.microsoft.com/de-de/library/yws82c40(v=vs.110).aspx

    VB.NET-Quellcode

    1. Dim destRect As New Rectangle(0, 0, 100, 100)
    2. g.DrawImage(PictureBox1.Image, destRect)
    And i think to myself... what a wonderfuL World!
    @Selter98 Du kannst dem Graphics-Objekt sagen, in welcher Einheit Deine Größenangaben sind, z.B. Pixel oder Millimeter. Da kannst Du Dein Bild absolut positionieren und sizen.
    Graphics.PageUnit
    GraphicsUnit-Enumeration
    Und gib mal bitte diesem Deinem Thread einen passenderen Titel, zB. "Text drucken in Farbe". Der aktuelle Titel ist nämlich meiner.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Selter98 schrieb:

    Leider finde ich keinen Button, der den Titel ändert.
    => Thema bearbeiten.

    Selter98 schrieb:

    ... übergeben kann
    Ja.
    Was soll damit passieren?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Selter98: Deinen letzten Post versteh ich nicht. Ist das Bild (welches besser mit der forumsinternen Uploadfunktion den Weg zu uns hätte finden sollen) Dein Wunschziel? Dein aktueller Status? Ein weit entferntes Beispiel, was Du meinst?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Selter98 Poste eine vollständige und belastbare Problembeschreibung / Aufgabenstellung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    z.B. so:

    VB.NET-Quellcode

    1. al = Wochentage(j).ForeColor.A
    2. ro = Wochentage(j).ForeColor.R
    3. gr = Wochentage(j).ForeColor.G
    4. bl = Wochentage(j).ForeColor.B
    5. br = New SolidBrush(Color.FromArgb(al, ro, gr, bl))
    6. g.DrawString(Wochentage(j).Text, New Font(Schrift, Größe, 0, Einheit, Satz, Vertikal), br, New Point(x, y))
    7. g.DrawRectangle(Wochentage(j).BackColor, x, y, x2, y2)


    Aber kriege ich die Backcolor-Werte in ein Pen, wie es in br der Fall ist? Natürlich soll das Rechteck auch mit der Hintergrundfarbe ausgefüllt sein.
    @Selter98 Löse genau dieses in einem separaten kleinen Projekt.
    Ein Rechteck hat keine Hintergrundfarbe :!: Ein Rechteck kann eine Farbe haben.
    Male ein gefülltes Rechteck und danach den Text in dasselbe Rechteck. Sieh Dir die Überladungen der eintelnen Draw-Befehle an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!