无法使用 Evopdf 将图像加载到 pdf 中

Cant able to load image into pdf with Evopdf

我正在尝试使用 evopdf 将 html 转换为 pdf,在我的 html 中有一个带有绝对路径的图像,但图像无法将其加载到 pdf.here "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"/>

谁能帮我解决这个问题

这很简单,你的图片来源需要来自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) + "' />");

如果你有一个 webapp,我强烈建议使用相对路径,或者 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" />

对于本地资源,您必须使用以 file:/// 为前缀的完全限定 URL。在您的情况下,您的 HTML 图片标签应该是:

<img src="file:///C:/Users/ingyadav/Desktop/icons/icons/logo_160.png" alt="Symphony Summit"/>