gpt4 book ai didi

css - 类 CSS 定义内的元素未使用 ITextSharp (5.5.1) XHTML 应用于 PDF

转载 作者:太空宇宙 更新时间:2023-11-04 13:11:26 24 4
gpt4 key购买 nike

更新:ITextSharp 5.5.2 支持此功能,但以前版本的 ITextSharp 不支持。

ITextSharp 5.5.1 是否支持类元素 CSS 选择器?比如

<style>
.test td {
border: 1px solid green;
}
</style>

我得到这样的结果

Bad CSS

什么时候应该是这样的

Good CSS

如果不是我将如何实现相同的结果?

使用下面的代码我没有得到想要的结果。

byte[] bytes;
Document document = new Document();

using (var memoryStream = new MemoryStream())
using (var pdfWriter = PdfWriter.GetInstance(document, memoryStream))
{
document.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, document, new StringReader(html));
document.Close();
bytes = memoryStream.ToArray();
}

return bytes;

这是我的完整html以供引用

<html>
<head>
<style>
.test td {
border: 1px solid green;
}
</style>
</head>
<body>
<table class='test'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Savings</th>
</tr>
<tr>
<td>Peter</td>
<td>Griffin</td>
<td>$100</td>
</tr>
<tr>
<td>Lois</td>
<td>Griffin</td>
<td>$150</td>
</tr>
<tr>
<td>Joe</td>
<td>Swanson</td>
<td>$300</td>
</tr>
<tr>
<td>Cleveland</td>
<td>Brown</td>
<td>$250</td>
</tr>
</table>
</body>
</html>

最佳答案

这是一个奇怪的问题,因为 XML Worker 的默认实现正是您所需要的。我们有一个 HTML 文件 table_css.html转换为 html_table_3.pdf我们只使用基本的 XML Worker 代码:ParseHtmlTable3

enter image description here

您只需要 5 行即可获得屏幕截图中显示的结果:

public void createPdf(String file) throws IOException, DocumentException {
// step 1
Document document = new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
// step 3
document.open();
// step 4
XMLWorkerHelper.getInstance().parseXHtml(writer, document,
new FileInputStream(HTML));
// step 5
document.close();
}

关于css - 类 CSS 定义内的元素未使用 ITextSharp (5.5.1) XHTML 应用于 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24660890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com