2013-03-11 26 views
8

içinde yatay çizgi nasıl gösterilir Bir pdf oluşturuyorum ve sayfaya yatay bir çizgi koymam gerekiyor. Bunu nasıl yapacağını bilen var mı?iTextSharp

Benim html etiketine sahip bir xml dosyası var (<table>....</table>). Ve xml dosyasının tüm içeriği pdf oluşturmak için kullanılan bir string için ayrıştırılır. Şimdi bazı etiketler desteklenmiyor. Bunlardan biri <hr>. Yani xml dosyasında kullanabileceğim başka bir etiket var, böylece pdf xml verileri kullanılarak oluşturulduğunda bir line çizecektir.

Aşağıda

<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> 

artık bilgi gerektiğinde bana bildirin xml xontent bir örnektir.

Şimdiden teşekkürler. Aşağıdaki tam yaratır Bu

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); 
+0

[Buraya bakın] (http://stackoverflow.com/quest iyonlar/5103404/problem-in-çizim-a-line-in-a-pdf-dosya-itextsharp) Ve [Burada da] (http://stackoverflow.com/questions/4894329/code-isnt-drawing -a-yatay-line-in-pdf) – Haris

+0

Teşekkürler Haris.
eşdeğerine ihtiyacım var Pdf öğesi oluşturmanın arkasında kod kullanmıyorum. Göstermem gereken basit bir html var. Özellikle sadece bir tablo satırının alt kenarlığını göstermek istiyorum. – Narendra

+0

Itextsharp hangi sürümünü kullanıyorsunuz? –

cevap

4

size yardımcı oluyor umut

... 
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

Teşekkürler Peter. Bu 2px genişliğinde bir çizgi oluşturacaktır. Ama bunu yapmanın başka bir yolu olup olmadığını merak ediyorum. 1-2 gün içinde daha iyi bir cevap verilmediyse, kabul edilir olarak cevaplandıracağım. – Narendra

+0

@Narendra - Bunun ideal bir çözüm olmadığını kabul ediyorum. Daha iyi bir seçenek olup olmadığını görmek için çeşitli etiketler oluşturmayı nasıl denediğimi ve izlemeye çalıştığım için kaynak kodunu incelemeye başladım. Xml'nizi daha güzel hale getirmek uğruna,


içinde bırakabilir ve daha sonra tablo HTML ile
üzerinde bir dize yapın. – Peter

+0

Hmmm, teşebbüs ve cevap için teşekkürler. – Narendra

0

Sen ardından LineTo ve inme (çizgi işlemek) başlangıcı Böl gelen çizgileri (MoveTo) çizebilirsiniz genişlik siyah çizgi birkaç piksel kalınlığında, kullanıyorum HTMLWorker.Parse:

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

<table> 
    <tr> 
    <td> 
     <span> 
     <table border="1" cellpadding="0" cellspacing="0"><tr><td>&nbsp;</td></tr></table> 

      This is working properly now too! 
     </span> 
    </td> 
    <tr> 
</table> 
+0

Lütfen düzenlenen soruyu kontrol edin. Aslında içeriği xml olarak oluşturuyorum. Sonra bu xml içeriği doğrudan pdf oluşturmak için kullanılır. Geride kalan pdf elemanlarını kullanmıyorum. – Narendra

İlgili konular