问题描述
当前,我正在生成pdf并通过邮件发送,问题是css样式未应用于td标记内部的元素,任何线索。
在示例中,我在td标签内使用了h1标签,h1的样式不是CSS。
var doc = new Document(PageSize.LETTER,50,80,60);
MemoryStream memoryStream = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(doc,memoryStream);
string rutaimagen = Server.MapPath("/images/logoMOPT.png");
string image = $@"<img src=""{rutaimagen}""/>";
string name = @"<h1 style=""border: 1px solid #ff5733;"">Eddie</h1>";
doc.open();
var html = $@" <table style='height: 171px; margin - left: auto; margin - right: auto;' border='1' width='676'>
<tbody><tr><td style='width: 225px;'>{image}</td>
<td style='width: 225px; text-align:center;'>2</td>
<td style='width: 225px;'><h1 style='border: 1px solid #ff5733;'>Test</h1></td></tr><tr>
< td style='width: 225px;'>4</td> <td style='width: 225px;'>5</td> <td style='width: 225px;'>6</td></tr>
</tbody>
</table>";
var sr = new StringReader(html);
XMLWorkerHelper.GetInstance().ParseXHtml(writer,doc,sr);
writer.CloseStream = false;
doc.Close();
memoryStream.Position = 0;
解决方法
<h1>
可以应用style
标记内的整个文本颜色,如下所示。但是无法应用文本边框。
<h1 style="color: #ff5733;">Eddie</h1>
要将边框应用于文本或字体,必须使用css
属性,如下所示:
<h1 style="text-shadow: -1px 0 black,0 1px black,1px 0 black,0 -1px black; font-family: sans; color: white;
">Text With Border</h1>
第二种方式
可以通过为css
添加h1
类来安排:
h1 {
text-shadow: -1px 0 black,0 -1px black;
font-family: sans; color: white;
}
然后无需在HTML
中应用内联样式
<h1>Text With Border</h1>
这是实际示例: