XMLWorker: Ungültig verschachtelte div-tag gefunden, erwartet schließenden img-tag
Ich versuche gerade ein Bild hinzufügen, um meine pdf-Dokumente mit XMLWorker. aber für einige Grund sein, die eine enge img-tag. aber sogar, wenn ich eine in der es immer noch nicht.
C# - CODE
Byte[] bytes;
using (var ms = new MemoryStream())
{
using (var doc = new Document(PageSize.A4.Rotate()))
{
using (var writer = PdfWriter.GetInstance(doc, ms))
{
//Open the document for writing
doc.Open();
//Our HTML and CSS
string exampleHtml = @"<div style='position: relative; width: 100%'>" +
"<img src='/Content/images/certificate.jpg'><img>" +
"<div style='position: absolute; top: 100px; left: 100px; width: 800px; height: 550px; text-align: center;'>" +
"<h1>" +
"<img src='/Content/images/CertTitle.png' alt='CERTIFICATE PDF' style='width: 800px;'/>" +
"</h1>" +
"<p>" +
"The School certifies that<br/>" +
"<h2>FIRSTNAME LAST NAME TITLE</h2>" +
"has participated in the class titled<br />" +
"<h2>COURSCODE - COURSENAME</h2>" +
"This activity was designated for # Credit(s)™" +
"</p>" +
"<div style='float: left; position: absolute; bottom: 50px;'>" +
"<i>Date issued: DATE<br/></i><img src='Content/images/ceo-signature.jpg' style='border-bottom: solid #000 1px;'>" +
"</div>" +
"</div>" +
"</div>";
using (var srHtml = new StringReader(exampleHtml))
{
//Parse the HTML
iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, srHtml); //right here is where it crashes ({"Invalid nested tag div found, expected closing tag img."} {"The document has no pages."}
}
doc.Close();
}
}
bytes = ms.ToArray();
}
var testFile = HttpContext.Server.MapPath("~/Content/documents/UserCertificates/test.pdf"); ;
System.IO.File.WriteAllBytes(testFile, bytes);
Response.AddHeader("Content-Disposition", "inline; filename=test.pdf");
return File(testFile, "application/pdf");
Habe ich noch nie genutzt schließenden img-tags, also ich bin mal gespannt, ob ich was falsch mache hier?
- XMLWorker arbeitet mit XML. Während HTML unterstützt nicht geschlossene tags (wie die 'img' - tag), dies ist kein gültiges XML. Sie haben, um sicher zu sein, verwenden Methoden, um sicherzustellen, dass Ihre "HTML" gültig ist. Es würde nicht anders sein, dass dein "br" - tag, während es wahrscheinlich funktioniert in HTML als " <br>, es würde brechen, als nicht gültige XML.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soweit ich weiß img-tag werden, wie dies
< img src="" />
aber Sie schrieb es so
< img src="" >< img>
Ihre image-tag ist nicht korrekt geschlossen. Um es richtig zu tun, müssen Sie ändern
<img src='...'><img>
entweder<img src='...'/>
oder<img src='...'></img>
.Sehen Wie zu schließen-tag richtig beantworten, die von M. Rabe