我已经使用iTextsharp的HTMLWorker生成了PDF。在PDF中,我想在标记特定区域的图像上显示文本。为此,我在位置上使用了div标签,但是它没有在图像上显示文本,但是如果我在浏览器中运行相同的HTML,那么它将在特定位置的图像上显示文本。
下面是我用来生成PDF的代码:
StringBuilder sReportHeader = new StringBuilder();
sReportHeader.Append("<table style=\"table-layout:fixed\" width=\"100%\" style=\"font-family:Verdana;font-size:8px;\">" +
"<tr>" +
"<td align=\"left\">" + @"<img src=\"http://localhost/img/image1.jpg\" width=\"520\"></img></td>" +
"</tr>" +
"</table>" +
"<div id=\"divArea1\" style=\"position:absolute;left:50px;top:250px;font-weight:bold;\">Area1</div>");
MemoryStream workStream = new MemoryStream();
Document document = new Document();
var worker = new HTMLWorker(document);
var pdfWriter = PdfWriter.GetInstance(document, workStream);
document.Open();
worker.StartDocument();
pdfWriter.CloseStream = false;
TwoColumnHeaderFooter twopdf = new TwoColumnHeaderFooter();
pdfWriter.PageEvent = twopdf;
twopdf.OnOpenDocument(pdfWriter, document);
worker.Parse(new StringReader(sReportHeader.ToString()));
worker.EndDocument();
worker.Close();
document.CloseDocument();
document.Close();
byte[] byteInfo = workStream.ToArray();
workStream.Write(byteInfo, 0, byteInfo.Length);
workStream.Position = 0;
pdfWriter.Flush();
pdfWriter.Close();
return new FileStreamResult(workStream, "application/pdf");
我的代码中缺少什么吗?还是有另一种方法 使用iTextsharp在图像上显示文本?
iTextsharp: Version 5.5.13.0
下面是在浏览器中正常运行的HTML:
<table style="table-layout:fixed" width="100%" style="font-family:Verdana;font-size:8px;">
<tr>
<td align="left"><img src="http://localhost/TheAutoAuction/img/image1.jpg" width="520"></img></td>
</tr>
</table>
<div id="divArea1" style="position:absolute;left:50px;top:250px;;font-weight:bold;">Area1</div>