我正在尝试使用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"/>
任何人都可以帮助我吗
答案 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" />