Wie kann ich mit iText HTML mit Bildern und Hyperlinks in PDF konvertieren?
Ich versuche zu konvertierenHTML
zuPDF
mit iTextSharp in einemASP.NET
Webanwendung, die beide @ verwend MVC, un web forms. Das<img>
und<a>
Elemente haben absolute undrelati URLs und einige der<img>
Elemente sind base64. Typische Antworten hier bei den Suchergebnissen von SO und Google verwenden generisches HTML
zuPDF
code mitXMLWorkerHelper
das sieht ungefähr so aus:
using (var stringReader = new StringReader(xHtml))
{
using (Document document = new Document())
{
PdfWriter writer = PdfWriter.GetInstance(document, stream);
document.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(
writer, document, stringReader
);
}
}
So mit ProbeHTML
so was
<div>
<h3>HTML Works, but Broken in Converted PDF</h3>
<div>Relative local <img>: <img src='./../content/images/kuujinbo_320-30.gif' /></div>
<div>
Base64 <img>:
<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' />
</div>
<div><a href='/somePage.html'>Relative local hyperlink, broken in PDF</a></div>
<div>
Das resultierende PDF: (1) fehlen alle Bilder und (2) Alle Hyperlinks mit relativen URLs sind fehlerhaft und verwenden ein Datei URI Schema (file///XXX...
) anstatt auf die richtige Website zu verweisen.
Einige Antworten hier bei SO und andere aus der Google-Suche empfehlen, relative URLs durch absolute URLs zu ersetzeperfekt akzeptabel für einmalige Fälle. Globales Ersetzen aller<img src>
und<a href>
-Attribute mit einer fest codierten Zeichenfolge sind inakzeptabel für diese Frage bitte keine solche Antwort posten, da sie dementsprechend herabgestuft wird.
ch suche nach einer Lösung, die für @ funktionierviel Verschiedene Webanwendungen in Test-, Entwicklungs- und Produktionsumgebungen.