使用itextsharp

时间:2019-03-06 07:12:31

标签: c# itext

我已经使用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>

enter image description here

0 个答案:

没有答案