如何使用HtmlRenderer显示PDF格式的图片?(输入URL时自动下载图片
How to show image in PDF with HtmlRenderer?(The image is downloaded automatically when you enter the URL
我想用 HtmlRenderer.PdfSharp 显示 PDF 格式的图片。我正在使用这个例子。 https://github.com/ArthurHub/HTML-Renderer
我可以用 PDF 格式显示 link。
https://helpx.adobe.com/content/dam/help/en/stock/how-to/visual-reverse-image-search/jcr_content/main-pars/image/visual-reverse-image-search-v2_intro.jpg
但我无法在 PDF 中显示此 link。 https://images.data.gov.sg/api/traffic-images/2016/02/96128cfd-ab9a-4959-972e-a5e74bb149a9.jpg
因为当你输入这个link时,图片会自动下载,不会在浏览器中显示。
此代码生成 PDF。
private void OnGeneratePdf_Click(object sender, EventArgs e)
{
PdfGenerateConfig config = new PdfGenerateConfig();
config.PageSize = PageSize.A4;
config.SetMargins(20);
var doc = PdfGenerator.GeneratePdf(_mainControl.GetHtml(), config, null, DemoUtils.OnStylesheetLoad, HtmlRenderingHelper.OnImageLoadPdfSharp);
var tmpFile = Path.GetTempFileName();
tmpFile = Path.GetFileNameWithoutExtension(tmpFile) + ".pdf";
doc.Save(tmpFile);
Process.Start(tmpFile);
}
这是我在粘贴 link 时遇到的错误。
我就是这样解决问题的。
public static void GeneratePDF(string htmlstr)
{
PdfGenerateConfig config = new PdfGenerateConfig();
config.PageSize = PageSize.A4;
var doc = PdfGenerator.GeneratePdf(htmlstr, config, null, null, OnImageLoadPdfSharp);
var tmpFile = Path.GetTempFileName();
tmpFile = Path.GetFileNameWithoutExtension(tmpFile) + ".pdf";
doc.Save(tmpFile);
Process.Start(tmpFile);
}
public static void OnImageLoadPdfSharp(object sender, HtmlImageLoadEventArgs e)
{
using (var client = new WebClient())
{
var url = e.Src;
var tmpFile = Path.GetTempFileName();
client.DownloadFile(new Uri(url), tmpFile);
ResizeImage(tmpFile);
e.Callback(XImage.FromFile(tmpFile));
}
}
我想用 HtmlRenderer.PdfSharp 显示 PDF 格式的图片。我正在使用这个例子。 https://github.com/ArthurHub/HTML-Renderer
我可以用 PDF 格式显示 link。 https://helpx.adobe.com/content/dam/help/en/stock/how-to/visual-reverse-image-search/jcr_content/main-pars/image/visual-reverse-image-search-v2_intro.jpg
但我无法在 PDF 中显示此 link。 https://images.data.gov.sg/api/traffic-images/2016/02/96128cfd-ab9a-4959-972e-a5e74bb149a9.jpg
因为当你输入这个link时,图片会自动下载,不会在浏览器中显示。
此代码生成 PDF。
private void OnGeneratePdf_Click(object sender, EventArgs e)
{
PdfGenerateConfig config = new PdfGenerateConfig();
config.PageSize = PageSize.A4;
config.SetMargins(20);
var doc = PdfGenerator.GeneratePdf(_mainControl.GetHtml(), config, null, DemoUtils.OnStylesheetLoad, HtmlRenderingHelper.OnImageLoadPdfSharp);
var tmpFile = Path.GetTempFileName();
tmpFile = Path.GetFileNameWithoutExtension(tmpFile) + ".pdf";
doc.Save(tmpFile);
Process.Start(tmpFile);
}
这是我在粘贴 link 时遇到的错误。
我就是这样解决问题的。
public static void GeneratePDF(string htmlstr)
{
PdfGenerateConfig config = new PdfGenerateConfig();
config.PageSize = PageSize.A4;
var doc = PdfGenerator.GeneratePdf(htmlstr, config, null, null, OnImageLoadPdfSharp);
var tmpFile = Path.GetTempFileName();
tmpFile = Path.GetFileNameWithoutExtension(tmpFile) + ".pdf";
doc.Save(tmpFile);
Process.Start(tmpFile);
}
public static void OnImageLoadPdfSharp(object sender, HtmlImageLoadEventArgs e)
{
using (var client = new WebClient())
{
var url = e.Src;
var tmpFile = Path.GetTempFileName();
client.DownloadFile(new Uri(url), tmpFile);
ResizeImage(tmpFile);
e.Callback(XImage.FromFile(tmpFile));
}
}