Asp.net mvc 4 使用MVC4中的wkhtmltopdf将Html格式的图像转换为PDF格式

Asp.net mvc 4 使用MVC4中的wkhtmltopdf将Html格式的图像转换为PDF格式,asp.net-mvc-4,wkhtmltopdf,Asp.net Mvc 4,Wkhtmltopdf,我正在使用wkhtmltopdf将html转换为pdf。我正在使用MVC4。我能够将html转换为pdf。我唯一的问题是图像不渲染。图像应该出现在一个小矩形中。我的图像在数据库中,所以当我在控制器中获取html字符串时,在我将该字符串传递给转换器之前,图像就是这样显示的: <img src="/Images/Image/GetImageThumbnail?idImage=300" alt=""/> 所以我认为这种方法不起作用,因为我将字符串传递给转换器,所以无法渲染图像。如果图

我正在使用wkhtmltopdf将html转换为pdf。我正在使用MVC4。我能够将html转换为pdf。我唯一的问题是图像不渲染。图像应该出现在一个小矩形中。我的图像在数据库中,所以当我在控制器中获取html字符串时,在我将该字符串传递给转换器之前,图像就是这样显示的:

<img src="/Images/Image/GetImageThumbnail?idImage=300" alt=""/>


所以我认为这种方法不起作用,因为我将字符串传递给转换器,所以无法渲染图像。如果图像在db中,如何解决这个问题呢?

我通过将src从
src=“/img/derp.png”
替换为
src=”来解决类似的问题http://localhost/img/derp.png“
。我从控制器接收的请求中获取主机部件

// Here I'm actually processing with HtmlAgilityPack but you get the idea
string host = request.Headers["host"];
string src = node.Attributes["src"].Value;
node.Attributes["src"].Value = "http://" + host + src;
这意味着服务器还必须能够直接从类似的URL吐出图像

我想这可以用字符串来完成。如果HTML是字符串,也可以替换

string host = request.Headers["host"];
html = html.Replace("src=\"/", "src=\"http://"+host+"/"); // not tested

呜呜呜呜呜……这很有效……我刚刚在图像src中添加了。我已经放弃了,并尝试将视图作为直接url传递给wkhtmltopdf,但这个解决方案要好得多。我尝试了几十种解决这个问题的方案。这是唯一有效的(除了完整路径-src=“)之外)。