在mvc 4中使用wkhtmltopdf将Html中的图像转换为PDF

2024-02-10

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

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

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


我通过替换 src 解决了类似的问题src="/img/derp.png" 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在mvc 4中使用wkhtmltopdf将Html中的图像转换为PDF 的相关文章

随机推荐

  • 无法加载文件或程序集“Microsoft.Web.Deployment,版本=9.0.0.0”

    我有 VS 2013 Ultimate 我的远程服务器是 IIS 7 5 并启用了远程部署 我已通过 Web Platform Installer 4 6 安装了 Web Deploy Tool 2 1 并且安装成功 当我尝试在发布工具上验
  • 如何告诉 DBD::mysql mysql.sock 在哪里?

    将 DBD mysql 与 DBI 一起使用 尝试连接到数据库时出现以下错误 DBI connect database mydb host localhost someuser failed Can t connect to local M
  • pyqtSlot 的功能[重复]

    这个问题在这里已经有答案了 我刚刚阅读了有关 pyqt5 按钮的教程here https pythonspot com en pyqt5 buttons 代码如下 有一个问题是关于button clicked connect self on
  • Grails - 跨控制器代码,在每个请求上执行

    有没有办法在调用任何控制器操作之前执行某些代码 我需要根据获取参数的值设置会话变量 而不考虑调用哪个控制器 当然 一旦完成此处理 请求需要按照其正常方式到达相应的控制器 操作 Thanks 听起来你想使用filter http grails
  • 树的等级是多少? (如树ADT)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 据我所知 一个节点的度数是它拥有的子节点的数量 但是 我们如何定义树的度呢 基本上 树的度是它的子节点的总数 即源自它的节点的总数 树的叶
  • HTTP 响应何时完成?

    我正在 NET 中编写一个简单的 HTTP 客户端用于学习目的 我正在使用 NETSocket http msdn microsoft com en us library system net sockets socket aspx类 最终
  • 在工厂模式中使用反射[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在工厂模式中使用反射是一个好的实践吗 public class MyObjectFactory private Party party publ
  • 获取iscsi设备的目标IP地址

    假设我有一个 iSCSI 设备 dev sdat 我如何知道其目标的IP地址 目标驱动程序是 SCST 启动程序是 iSCSI 我只知道一个名为 dev sdat仅此而已 那么如何获取目标的IP地址呢 嗯 我并不为此感到自豪 但它完成了工作
  • 如何利用模板复制&移动构造函数和赋值运算符?

    考虑以下 C 代码以及我试图避免的失败尝试非模板复制和移动构造函数和赋值运算符的偏好 https stackoverflow com a 32539424 1915854 template
  • 如何基于EXPLAIN计划优化MySQL查询

    查看查询的EXPLAIN计划中 如何确定哪些地方可以进行最佳优化 我很欣赏首先要检查的事情之一是是否使用了好的索引 但除此之外我有点困惑 通过过去的尝试和错误 我有时发现执行连接的顺序可以是一个很好的改进来源 但是如何通过查看执行计划来确定
  • 使我的下拉菜单仅在使用键盘时即可访问

    目前 我的下拉菜单仅在用户将鼠标滑过时才会出现 我希望如果您按 TAB 键 下拉菜单将以相同的方式显示 我的菜单基于以下教程 http net tutsplus com tutorials html css techniques how t
  • WASAPI 重采样/Windows Media Foundation

    我正在使用 WASAPI 编写一个专业音频应用程序 此应用程序以独占模式运行流 并在两个方向上将音频数据重新采样为恒定格式或从恒定格式重新采样 一个在捕获设备和应用程序之间重新采样 另一个在应用程序和输出设备之间重新采样 MSDN 上有一个
  • Symfony2:无法在功能测试中模拟HTTP身份验证

    我正在尝试使用 symfony com 上描述的以下技术 http symfony com doc current cookbook testing http authentication html http symfony com doc
  • 如果数组已由 Range 分配,LBound 和 Ubound 会发生冲突

    CODE height objExcel1 Application WorksheetFunction CountA ob3 Columns 1 MsgBox height ReDim dataArray height 2 0 1 for
  • 实际上,为什么不同的编译器会计算出不同的 int x = ++i + ++i; 值?

    考虑这段代码 int i 1 int x i i 假设它可以编译 我们对编译器可能会对该代码执行的操作有一些猜测 both i return 2 导致x 4 one i回报2和其他回报3 导致x 5 both i return 3 导致x
  • -Dorg.apache.el.parser.COERCE_TO_ZERO 用于 glassfish?

    我们也有类似 Dorg apache el parser COERCE TO ZERO 的 glassfish 吗 不会 Glassfish 使用不同的 EL 实现 其默认行为与您设置时的行为相同 Dorg apache el parser
  • 使用 Gson 反序列化有时是字符串,有时是对象

    我需要将这种类型的 JSON 数据解析为 java 对象 id 1 blob example text id 2 blob to 1234 from 4321 name My Name 我正在使用 Gson 并且不知道如何解决这个特定问题
  • 获取 Scala 中嵌套映射的值

    我有一张具有以下结构的地图 Map String Map String String 有没有一种优雅的方式来获取内部地图的值 只需按照正常方式进行 两次即可 val m Map a gt Map b gt c m a b c 第一次手术m
  • Ruby on Rails foreach 与 Bootstrap3 行类

    我想 foreach 循环数据并使用每行 3 列的引导网格系统显示此数据 但是我需要多行来获取数据量 如下所示 div class row div class col md 4 DATA HERE div div class col md
  • 在mvc 4中使用wkhtmltopdf将Html中的图像转换为PDF

    我正在使用 wkhtmltopdf 将 html 转换为 pdf 我正在使用 mvc 4 我能够将 html 转换为 pdf 我遇到的唯一问题是图像无法渲染 应该出现图像的地方有一个小矩形 我的图像在数据库中 因此当我在控制器中获取 htm