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

时间:2016-09-15 07:01:35

标签: c# image html-to-pdf 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();

因为我给出了完整的路径我没有给出基本网址,这是我在html中的图像:

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

任何人都可以帮助我吗

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

这很容易,你的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" />