如何在iTextSharp中显示水平线

时间:2013-03-11 09:47:46

标签: asp.net .net pdf-generation itextsharp

我正在创建一个pdf,需要在页面中放置一条水平线。谁能说出怎么做呢?

我有一个xml文件,其中包含我的html标记(<table>....</table>)。并且xml文件的全部内容被解析为string,用于创建pdf。现在不支持某些标签。其中一个是<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>

如果需要更多信息,请与我们联系。

提前致谢。

3 个答案:

答案 0 :(得分:4)

以下创建一个几度像素厚的全宽黑线,我正在使用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>

答案 1 :(得分:0)

你可以从开始位置(moveto),LineTo然后描边(提交线)绘制线条:

...
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();
...

答案 2 :(得分:0)

我希望这可以帮助你

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