Einstellung der Hintergrundfarbe eines contentbyte itextsharp
MVC3 VB.NET Anwendung, Verwendung Itextsharp. Ich habe einen Abschnitt von code, der generiert eine pdf-Datei sieht alles toll aber ich würde gerne zu alternativen die Linie Farben in dieser pdf-Datei zwischen 2 Farben, so dass die Werte sind einfach zu Folgen, für die person, es zu betrachten. Gibt es eine Möglichkeit, die Hintergrundfarbe einer ganzen Zeile, basierend auf der Schriftgröße, eine Farbe? Eine Funktion wäre ich mit diesem ist unten:
For Each _reg_ In _reg
Dim _registrant As reg_info = _reg_
If y_line1 <= 30 Then
doc.NewPage()
_Page = _Page + 1
y_line1 = 670
End If
If y_line1 = 670 Then
cb.BeginText()
cb.SetFontAndSize(BF_Times, 6)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, _datePrinted + " " + _timePrinted, 500, 770, 0)
cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, "Page Number" + " " + _Page, 600, 770, 0)
cb.SetFontAndSize(BF_Times, 8)
cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, _reportHead + " Overrides ", 304, 720, 0)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "First Name", 20, 700, 0)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Last Name", 80, 700, 0)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Last Four", 160, 700, 0)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Email Address", 300, 700, 0)
cb.EndText()
End If
cb.BeginText()
cb.SetFontAndSize(BF_Times, 8)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, _registrant.first_name, 20, y_line1, 0)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, _registrant.last_name, 80, y_line1, 0)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, _registrant.last_four_social, 160, y_line1, 0)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, _registrant.email, 300, y_line1, 0)
_total += 1
cb.EndText()
y_line1 = y_line1 - 15
Next
Dachte ich nur über die Einstellung der Hintergrundfarbe der Zeile mit dem y_line1 und mit einem E-Modul zu bestimmen, ob die Farbe sollte Grau oder weiß. Aber ich habe noch keine code-Beispiele überall darüber, wie man eine ganze Zeile Hintergrundfarbe.. Irgendwelche Ideen????
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es kein Konzept von "Hintergrundfarbe" in der PDF-Spezifikation, die in Bezug auf text. Alles, was aussieht wie eine Hintergrundfarbe, auch ein Tisch, ist nur text gezeichnet, auf der Oberseite ein Rechteck (oder irgendeine andere Form).
Zeichnen Sie ein Rechteck, rufen Sie einfach die
Rectangle
Methode auf IhrePdfContentByte
Objekt. Es braucht eine linke untere x -, y -, und eine Breite und eine Höhe. Die Farbe wird bestimmt durch einen vorherigen Anruf an eines der Farbe füllt, wieSetColorFill()
.Beim arbeiten mit dem raw canvas wird empfohlen, dass Sie verwenden auch
SaveState()
undRestoreState()
. Da die fill-Befehle sind geteilt zwischen Objekten, aber unterschiedliche Dinge bedeuten diese können helfen, Verwirrung zu vermeiden.SaveState()
setzt ein flag, so dass Sie rückgängig machen, alle Grafiken Zustand ändert, wenn Sie anrufenRestoreState()
.Den code unten ist eine voll funktionsfähige VB.Net 2010 WinForms-app-targeting iTextSharp 5.1.2.0, die off zeigt die oben genannten. Es erstellt eine Beispiel-Datei auf dem desktop mit einer Textzeile wiederholt sich 7 mal. Jede Zeile schaltet hin und her zwischen zwei Hintergrundfarben. Außerdem zieht es einem Schlaganfall rund um die Textzeile zu simulieren Grenze.