1

我正在尝试使用 ITextSharp 将以下 HTML 导出到 PDF 中,但无论我尝试多少方式,边框都不会显示。

HTML 显示底部边框,但一旦导出为 PDF,它就会在翻译中丢失。我可以伪造底部边框的任何想法或方法?

谢谢

HTML:

<Table >
    <tr>
        <td class="test123">Test</td>
        <td>Test</td>
    </tr>    
    <tr>
        <td>Test</td>
        <td>Test</td>
    </tr>    
    <tr>
        <td>Test</td>
        <td>Test</td>
    </tr>    
    <tr>
        <td>Test</td>
        <td>Test</td>
    </tr>    
    <tr>
        <td>Test</td>
        <td>Test</td>
    </tr>    

</Table>

C#:

  string htmWrite = File.ReadAllText(Server.MapPath("~/Sample/Test.html"));
    Document document = new Document();
StyleSheet css = new StyleSheet();
css.LoadStyle("test123", HtmlTags.HR, "1");

css.LoadStyle("test123", "border-bottom-style", "solid");
css.LoadStyle("test123", "border-bottom-width", "2px");

PdfWriter.GetInstance(document, new FileStream(@"C:\test\MySamplePDF.pdf", FileMode.Create));
document.Open();
iTextSharp.text.html.simpleparser.HTMLWorker hw =
             new iTextSharp.text.html.simpleparser.HTMLWorker(document);
hw.SetStyleSheet(css);
hw.Parse(new StringReader(htmWrite));
document.Close();
4

2 回答 2

2

使用 XMLWorkerHelper。边框应根据您的 HTML 文件的需要正确设置。XMLWorkerHelper 自动负责应用这些样式。对于底部边框使用如下:

border-bottom-color: Black;
border-bottom-width : 1px;
border-bottom-style : solid;
于 2013-09-30T16:44:37.377 回答
1

使用 XMLWorkerHelper 的解决方法

   Document document = new Document();

        PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"C:\test\MySamplePDF.pdf", FileMode.Create));

        document.Open();

        TextReader r = new StreamReader(Server.MapPath("~/Sample/Test.html"));
        XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, r);document.Close();
于 2013-09-04T21:32:25.277 回答