2016-05-23 3 views
0

Ich erstelle ein Etikett mit einer Adresse auf der linken Seite und einer anderen Adresse auf der rechten Seite. Ich möchte nur eine Linie in der Mitte erstellen, um sie zu trennen. So muss die Linie die Länge des Etiketts den ganzen Weg gehen (270-0)Wie zeichne ich eine horizontale Linie in iTextSharp?

Ich verwende iTextSharp.text.pdf.PdfContentByte cb = writer.DirectContent;

so zum Beispiel die Adresse zu zeigen, die ich benutze:

cb.ShowTextAligned(int.Parse("50"), Company.Current.Address1, 270, 260, 270);

das Label in der Landschaft ist, so dass die Drehung auf 270

Antwort

3

gesetzt Wenn Sie den High-Level-Ansatz verwenden (mit document.Add()), verwenden Sie ein separator Linien zu zeichnen. Es ist sehr seltsam, dass Sie nicht den High-Level-Ansatz verwenden. Sie behaupten, dass Sie showTextAligned() verwenden, weil Sie in der Landschaft arbeiten müssen, aber wenn Sie in der Landschaft arbeiten müssen, warum definieren Sie nicht einfach Ihre Seite im Querformat?

Sie verwenden den Low-Level-Ansatz (unter Verwendung von showTextAligned()), so dass Sie pfadkonstruierende und path-painting Operatoren und Operanden verwenden müssen. Alle diese Operatoren und Operanden sind in chapter 14 of my book erläutert. Dieser Link zeigt Ihnen die Beispiele in Java, aber wenn Sie nach unten scrollen, finden Sie einen Link zu den .cs Dateien.

Wenn Sie ein Objekt PdfContentBytecb, können Sie eine Zeile wie diese zeichnen:

cb.MoveTo(x1, y1); 
cb.LineTo(x2, y2); 
cb.Stroke(); 

Die Werte von x1, y1 und x2, y2 auf den Koordinaten abhängen Sie Ihren Text zeichnen verwenden. In Ihrem Fall beginnen Sie, Text an den Koordinaten x = 270, y = 260 zu schreiben. Ich würde x1 als 270 und y1 als 260 - bf.GetWidthPoint(Company.Current.Address1) definieren.

Beachten Sie, dass dieser Parameter falsch ist: int.Parse("50"). Der erste Parameter der showTextAligned()-Methode sollte eine gültige Ausrichtung sein. 50 ist kein gültiger Ausrichtungswert. Sie sollten es durch Element.ALIGN_LEFT, Element.ALIGN_RIGHT oder Element.ALIGN_CENTER ersetzen. Natürlich müssen Sie den Wert y ändern, wenn Sie die Ausrichtung Ihres Textes ändern.