Kautilya Kumar Ответов: 1

Html-изображение игнорируется itext при создании pdf-файла


I have a HTML code with some text and an image, which is to be converted to PDF. But when generating PDF, text is generated perfectly but the image is being ignored. I am using Itext 5.5.13 and itextsharp.xmlworker 5.5.13.When converted to pdf, the expected result was that, the text with image should have come at the bottom, but no image is shown.
Ниже приведен код c# для создания pdf - файла :

using (var ms = new MemoryStream())
{
//Create an iTextSharp Document which is an abstraction of a PDF but **NOT** a PDF
using (var doc = new Document(PageSize.A4, 40, 40, 215, 180))
{
//Create a writer that's bound to our PDF abstraction and our stream
using (var writer = PdfWriter.GetInstance(doc, ms))
{
writer.PageEvent = new ITextEvents();
//Open the document for writing
doc.Open();    
string Report_Html_Text = " <div>
 <p align="center" style="margin-bottom:.0001pt; text-  align:center;       margin:0in 0in 10pt">
 <span style="font-size:11pt">
 <span style="font-family:&quot;Arial&quot;,&quot;sans- serif&quot;">CT Scan Of Brain</span>
 </u></b></span>
 </p>
 <p style="margin-bottom:.0001pt; margin:0in 0in  10pt;font-size:11pt;line-height:115%;font-family:Calibri,sans-serif">
 <b><u><span style="font-size:12.0pt">
 <span style="font-family:&quot;Arial&quot;,&quot;sans-serif& quot;">Procedure </span></span>
 </u></b>
 </span>
 </p>
 <p style="margin-bottom:.0001pt; margin:0in 0in   10pt;font-size:11pt;line-height:115%;font- family:Calibri,sans-serif;">
 <span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">CT Scan of brain &ndash; 
 <b>Plain and contrast</b> study.</span></span>
 </p>
 <ul>
 <li style="margin-top:0in; margin-right:0in; margin- bottom:.0001pt; margin:0in 0in 10pt;font-size:11pt;line-height:115%;font-family:Calibri,sans-serif;">
 <span style="font-family:&quot;Arial&quot;,&quot;sans- serif&quot;">No detectable abnormalities are present in 
 <b>posterior fossa</b> structures including <b>fourth ventricle.</b></span>
 </li>
 <li style="margin-top:0in; margin-right:0in; margin- bottom:.0001pt; margin:0in 0in 10pt;font- size:11pt;line-height:115%;line-height:115%;">
 <span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Sylvian fissures cortical sulci and basal subarachnoid spaces are widened.</span>
 </li>
 </ul>
 <ul>
 <li style="margin-top:0in; margin-right:0in; margin-bottom:.0001pt; margin:0in 0in 10pt"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Calibri,sans-serif"><b>
 <span style="line-height:115%"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Supratentorial ventricles</span></span></b>
 <span style="line-height:115%"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;"> are dilated with septum in midline.</span></span></span> </span></span>
 </li>
 <li style="margin-top:0in; margin-right:0in; margin-bottom:.0001pt; margin:0in 0in 10pt"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Calibri,sans-serif"><b><span style="line-height:115%"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">No focal</span></span></b><span style="line-height:115%">
 <span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;"> abnormal area is present in the supratentorial brain parenchyma.</span></span></span> </span></span>
 </li>
 <img alt="" src="http://localhost:4119/upload/ReportImages/files/photo-x-ray-head-and-brain.jpg" style="width: 1023px; height: 682px;" />

</div> ";

using (var srHtml = new StringReader(Report_Html_Text))
{
iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, srHtml);
}
doc.Close();
}
}
Byte[] bytes = ms.ToArray();
return bytes;
}


Что я уже пробовал:

Ранее я использовал Htmlworker, но поскольку он обесценился, я использовал XMLWorker вместо этого для генерации pdf. Xmlworker уважает html-теги и отступы, но игнорирует изображение, и я использовал абсолютный Url-адрес .

Richard Deeming

Из того, что я вижу, вам понадобится IImageProvider реализация для загрузки удаленных изображений.

Вы пробовали заменить URL - адрес изображения локальным путем к изображению?

Kautilya Kumar

Нет, сэр, я не использовал локальный путь, потому что этот проект является приложением asp, и при размещении изображение будет извлечено с сервера.

1 Ответов

Рейтинг:
2

Dipesh Bagdi

во время работы с xmlworker нам нужно быть более осторожными с html, это должна быть проверенная html-строка с правильным открытым и закрытым тегом, в вашей html-строке последний ul-тег не закрыт должным образом.