Не могу загрузить изображение в 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"/>
Другие вопросы по тегам