8

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

我有一个 xml 文件,其中包含我的 html 标签(<table>....</table>)。并且文件的全部内容xml被解析string为用于创建pdf. 现在不支持某些标签。其中之一是<hr>。那么我可以在文件中使用任何其他标签,以便在使用 xml 数据创建 pdf 时xml绘制一个 。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>

如果需要更多信息,请告诉我。

提前致谢。

4

3 回答 3

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>
于 2013-06-05T19:19:54.637 回答
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();
...
于 2013-05-31T09:08:24.177 回答
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);
于 2013-06-01T05:04:27.813 回答