2013-03-11 18 views
8

私はpdfを作成しており、ページに水平線を入れる必要があります。誰もそれをする方法を教えてもらえますか?iTextSharpで水平線を表示するには

私のHTMLタグ(<table>....</table>)を持つXMLファイルがあります。 xmlファイルの内容全体は、pdfの作成に使用されるstringに解析されます。現在、一部のタグはサポートされていません。それらの1つは<hr>です。したがって、xmlファイルで使用できる他のタグがあるので、xmlデータを使用してpdfを作成すると lineが表示されます。以下は

任意のより多くの情報が必要な場合は私に知らせてください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> 

の一例です。

ありがとうございます。以下は、フルを作成し、私はこれが

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

[ここを見て](http://stackoverflow.com/questイオン/ 5103404/problem-in-drawing-a-line-in-a-pdfファイルを使用したitextsharp)と [ここでも](http://stackoverflow.com/questions/4894329/code-isnt-drawing -a-horizo​​ntal-line-in-my-pdf) – Haris

+0

ありがとうHaris。
私はpdf要素作成の背後にあるコードを使用していません。私は簡単なhtmlを表示する必要があります。特に、私はテーブル行の下の境界線だけを表示したい。 – Narendra

+0

どのバージョンのItextsharpを使用していますか? –

答えて

4

あなたを役に立てば幸い

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

ピーターに感謝します。これにより2px幅の行が作成されます。しかし、私はこれを行う他の方法があるのだろうかと思います。 1〜2日以内により良い回答が得られなかった場合、私は受け入れられた回答をマークします。 – Narendra

+0

@ Narendra - これは理想的な解決策ではないことに同意します。私はソースコードを調べて、さまざまなタグをレンダリングしてより良いオプションがあるかどうかを調べることを試み始めましたが、私はそれほど遠慮していませんでした。あなたのxmlをもっときれいにするために、


のままにしてから
の文字列をHTMLテーブルに置き換えてください。 – Peter

+0

うーん、ウルのおかげで答えてください。 – Narendra

0

あなたは、その後、LINETOとストローク(行をコミット)を初めとの位置からのライン(のmoveTo)を描くことができます黒のライン数ピクセルの厚さの幅、私は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

編集した質問を確認してください。実際にはxmlでコンテンツを作成しています。次に、このXMLコンテンツは、pdfを作成するために直接使用されます。私はコードビハインドpdf要素を使用していません。 – Narendra

関連する問題