Показать текст на изображении в формате PDF с помощью itextsharp
Я сгенерировал PDF-файл с помощью HTMLWorker iTextsharp. В PDF я хочу показать текст на изображении, отмечающем определенную область. Для этого я использовал тег div с позицией, но он не показывает текст на изображении, но если я запускаю тот же HTML в браузере, то он показывает текст на изображении в определенном месте.
Есть ли что-то, чего мне не хватает в моем коде? Или есть другой способ показать текст на изображении с помощью 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>
Предварительный Просмотр Текущего Выхода:
https://i.stack.imgur.com/hrRl7.png[^]
Что я уже пробовал:
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");