को iTextSharpiTextSharp एचटीएमएल पीडीएफ छवि src
public static MemoryStream CreatePdfFromHtml(
string html, List<Attachment> attachments)
{
MemoryStream msOutput = new MemoryStream();
using (TextReader reader = new StringReader(html))
using (Document document = new Document())
{
PdfWriter writer = PdfWriter.GetInstance(document, msOutput);
document.Open();
foreach (var a in attachments)
{
var image = iTextSharp.text.Image.GetInstance(a.File);
document.Add(image);
}
XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, reader);
writer.CloseStream = false;
document.Close();
msOutput.Position = 0;
return msOutput;
}
}
एचटीएमएल कई एम्बेडेड छवियों इस तरह से होता है का उपयोग कर पीडीएफ करने के लिए एक एचटीएमएल बदलें। इस विधि को प्राथमिकता दी गई थी क्योंकि उसी HTML को का उपयोग करके AlternateView
में ईमेल के माध्यम से भेजा जाता है।
foreach (var a in attachments)
{
//not production code
html += string.Format("<img src=\"cid:{0}\"></img>", a.Id.ToString());
}
हालांकि, जब पीडीएफ उत्पन्न हो जाता है, वहाँ img
HTML टैग का src
भाग के साथ छवि आईडी से जोड़ने के लिए कोई रास्ता नहीं है। आखिरकार, पीडीएफ में सभी छवियां शीर्ष पर हैं और फिर <img src...
के साथ HTML को अनदेखा किया गया है।
मैं या तो पैराग्राफ या ImageAbsolutePosition का उपयोग कर कई संभव समाधान पढ़ा है, लेकिन वे में फिट करने के लिए नहीं है।
@ क्लोपेट्रा मैंने संदर्भित वेबसाइट से कोड और टेक्स्ट जोड़ा है। – Pierre