无法使用 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"/>
我正在尝试使用 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"/>