2013-03-11 20 views
8

Ich erstelle eine PDF und muss eine horizontale Linie in die Seite legen. Kann jemand erzählen, wie man das macht?So zeigen Sie horizontale Linie in iTextSharp

Ich habe eine XML-Datei, die mein HTML-Tag (<table>....</table>) hat. Und der gesamte Inhalt der Datei xml wird zu einer string geparst, die zum Erstellen der pdf verwendet wird. Jetzt werden einige Tags nicht unterstützt. Einer von ihnen ist <hr>. So gibt es ein anderes Tag, das ich in der Datei xml verwenden kann, so dass dies eine line zeichnen wird, wenn das PDF mit XML-Daten erstellt wird.

Im Folgenden ist ein Beispiel für XML-xontent

<table> 
    <tr> 
    <td> 
     <span> 
      This is working properly. 
     </span> 
    </td> 
    <tr> 
</table> 

<table> 
    <tr> 
    <td> 
     <span> 
      <hr> 
      This is not working properly. 
     </span> 
    </td> 
    <tr> 
</table> 

Bitte lassen Sie mich wissen, wenn mehr Informationen benötigt werden.

Vielen Dank im Voraus.

+0

[Schauen Sie hier] (http://stackoverflow.com/quest Ionen/5103404/Problem-in-Zeichnung-a-line-in-a-pdf-Datei-using-itextsharp Und [Auch hier] (http://stackoverflow.com/questions/4894329/code-isnt-drawing -a-horizontal-line-in-my-pdf) – Haris

+0

Danke Haris. Ich brauche ein Äquivalent von
Ich verwende keinen Code hinter der Erstellung von PDF-Elementen. Ich habe einfaches HTML, das ich zeigen muss. Insbesondere möchte ich nur den unteren Rand einer Tabellenzeile anzeigen. – Narendra

+0

Welche Version von Itextsharp verwenden Sie? –

Antwort

4

hilft Nachfolgend erstellt eine vollständige Breite schwarze Linie ein paar Pixel dick, ich benutze HTMLWorker.Parse:

+0

Danke Peter. Dies erzeugt eine Linie von 2px Breite. Aber ich frage mich, ob es anders geht. Ich markiere die Antwort als akzeptiert, wenn innerhalb von 1-2 Tagen keine bessere Antwort gegeben wird. – Narendra

+0

@Narendra - Ich stimme zu, dass dies keine ideale Lösung ist. Ich fing an, den Quellcode durchzusehen, um zu versuchen, herauszufinden, wie verschiedene Tags dargestellt werden, um zu sehen, ob es eine bessere Option geben könnte, aber ich bin nicht weit gekommen, um nachzusehen. Um Ihre xml schöner zu machen, könnten Sie in


lassen und dann eine Zeichenfolge ersetzen auf
mit der Tabelle HTML. – Peter

+0

Hmmm, danke für deinen Versuch und antworte. – Narendra

0

können Sie zeichnen Linien von Anfang Postion (moveto), LineTo und dann Schlaganfall (Commit die Zeile):

... 
PdfContentByte cb = writer.DirectContent; 
.... 
cb.MoveTo(doc.PageSize.Width/2, doc.PageSize.Height/2);  
cb.LineTo(doc.PageSize.Width/2, doc.PageSize.Height);  
cb.Stroke(); 
... 
+0

Bitte überprüfen Sie die bearbeitete Frage. Eigentlich erstelle ich den Inhalt in XML. Dann wird dieser XML-Inhalt direkt zum Erstellen von PDF verwendet. Ich verwende keine Code-Behind-PDF-Elemente. – Narendra

0

Ich hoffe, das Sie aus

PdfPTable table = new PdfPTable(1);    //Create a new table with one column 
PdfPCell cellLeft = new PdfPCell();    //Create an empty cell 
StyleSheet style = new StyleSheet();    //Declare a stylesheet 
style.LoadTagStyle("h1", "border-bottom", "red");   //Create styles for your html tags which you think will be there in PDFText 
List<IElement> objects = HTMLWorker.ParseToList(new StringReader(PDFText),style); //This transforms your HTML to a list of PDF compatible objects 
for (int k = 0; k < objects.Count; ++k) 
{ 
    cellLeft.AddElement((IElement)objects[k]); //Add these objects to cell one by one 
} 
table.AddCell(cellLeft); 
Verwandte Themen