itextsharp html到pdf创建无边界

本文关键字:边界 创建 pdf html itextsharp | 更新日期: 2023-09-27 18:21:12

我使用iTextSharp(在SharePoint上,但我希望这无关紧要)将HTML文档转换为PDF。到目前为止,我无法获得元素周围的任何边界。我该怎么做?是否不支持此操作?

我尝试过的东西:

  // in c# code
StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
styles.LoadStyle("borderCls", "border-style", "solid"); // <td class="borderCls">
styles.LoadStyle("borderCls", "border-width", "1px");
styles.LoadStyle("borderCls", "border-color", "#000");
  //
styles.LoadStyle("borderCls", "border", "solid 1px #000");
  // in html
<td style="border:solid 1px #000">
  //
<td border="1">
  //
<td style="border-style:solid;border-width:1px">

但这些都没有奏效。我就是无法让iTextSharp创建任何边界。

更新:也可以只在一个特定的边上定义边界吗?

itextsharp html到pdf创建无边界

使用此代码。

<table border="1">

这确实令人惊叹。但是solid和px在html到pdf中不起作用。

您可以使用表边框,这里有一些示例:http://demo.itextsupport.com/xmlworker/

XMLWorker CSS和HTML支持文档http://demo.itextsupport.com/xmlworker/itextdoc/index.html

如果您只想使用css设置表中的左边框,请使用以下代码:

td.black-left-border {
    border: 0;    /*First set all the borders to 0, then set the desired borders width*/
    border-color: black;
    border-left-width: 1px; /*PDF*/
    border-left-style: solid;
}

您也可以设置不同颜色的边框:

td.black-left-border-blue-bottom-border {
    border: 0;    
    border-left-color: black;
    border-bottom-color: blue; 
    border-left-width: 1px; 
    border-bottom-width: 1px;
    border-left-style: solid;
    border-bottom-style: solid;
}

也许浏览器不会应用这些样式,但iTextSharp会。正如您所看到的,您必须在css属性中非常具体。