2

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

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

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

4

1 回答 1

2

src="/img/derp.png"我通过将 src 替换为to解决了类似的问题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.Replace 来完成

string host = request.Headers["host"];
html = html.Replace("src=\"/", "src=\"http://"+host+"/"); // not tested
于 2012-12-20T14:13:19.617 回答