Не могу загрузить изображение в PDF с Evopdf
Я пытался с evopdf конвертировать HTML в PDF, и в моем HTML есть изображение с абсолютным путем к нему, но изображение не может загрузить его в PDF. Здесь "sb" это строитель строк, в который я добавляю строку HTML.
PdfConverter pdf = new PdfConverter();
byte[] outPdfBuffer = pdf.GetPdfBytesFromHtmlString(sb.ToString());
HttpContext.Current.Response.BinaryWrite(outPdfBuffer);
HttpContext.Current.Response.End();
Поскольку я дал полный путь, я не дал базовый URL, вот мое изображение в HTML:
<img src="C:/Users/ingyadav/Desktop/icons/icons/logo_160.png" alt="Symphony Summit"/>
может кто-нибудь помочь мне в этом
2 ответа
Это просто, источник вашего Image должен быть из http, если у вас есть консольное приложение и вы хотите исправить то, что вы можете преобразовать изображение в base64,
public string GetImage(string path)
{
using (Image image = Image.FromFile(path))
{
using (MemoryStream m = new MemoryStream())
{
image.Save(m, image.RawFormat);
byte[] imageBytes = m.ToArray();
// Convert byte[] to Base64 String
return Convert.ToBase64String(imageBytes);
}
}
}
а также
sb.Append("<img src=" + @"data:image/jpeg;base64," + GetImage(path) + "' />");
Если у вас есть веб-приложение, я настоятельно рекомендую использовать относительный путь или путь CDN.
<img alt="Image with Full URL" src="http://www.domain.com/Images/Logo.jpg" />
или же
<img alt="Image with Relative path" src="/Images/Logo.jpg" />
Для локальных ресурсов вы должны использовать полностью определенные URL с префиксом file:///. В вашем случае ваш HTML тег изображения должен быть:
<img src="file:///C:/Users/ingyadav/Desktop/icons/icons/logo_160.png" alt="Symphony Summit"/>