WkHtmlToXSharp - System.AccessViolationException

2023-12-15

我在项目中使用 WkHtmlToXSharp 包装器库从 HTML 生成 PDF 文件。

我在不同的电脑上多次使用这个库,突然,我遇到了以下问题:

System.AccessViolationException:尝试读取或写入受保护的内存。这通常表明其他内存已损坏。 在 WkHtmlToXSharp.WkHtmlToPdfConverter.wkhtmltopdf_convert(IntPtr 转换器) 在 WkHtmlToXSharp.WkHtmlToPdfConverter。转换(字符串输入Html) 在 WkHtmlToXSharp.WkHtmlToPdfConverter.Convert() 在 WkHtmlToXSharp.MultiplexingConverter.b_8() --- 内部异常堆栈跟踪结束 --- 在 Sanford.Threading.DelegateQueue.EndInvoke(IAsyncResult 结果) 在 Sanford.Threading.DelegateQueue.Invoke(委托方法,Object[] args) 在 WkHtmlToXSharp.MultiplexingConverter.Convert()

这似乎是这个库的一个常见问题(我在网上找到了一些关于它的反馈 - 但没有提供修复)。顺便说一句,就我而言,这有点随机发生。我在其他开发机器上没有遇到这个问题。我想知道是否有人有解决办法。我还想知道这是否是包装库的问题,如果是 WkHtmlToPDF 库本身的问题。

有什么建议吗?我也愿意使用另一个转换器,只要它是免费且稳定的,并且如果可能的话,不会产生新的进程。它必须在所有 Windows 版本中正常运行且稳定,并且转换效果良好(要转换的 HTML 是固定的 - 包含一些图片和表格以及基本 CSS)。


我建议另一种路线:直接使用 wkhtmltopdf.exe,构建您自己的包装器。如果您可以控制输入,然后您确切地知道如何更新它以及选项如何工作,那么它们并不是很复杂。我在直接使用 wkhtmltopdf 时从未遇到过这个问题(在 Win7、Win server 2008 r2、Ubuntu 和 CentOS 上)。不过,他们会为每次转换执行生成过程。

例如,请查看我的另一个答案中的 Derp 类关于wkhtmltopdf。或者尝试类似下面未经测试的代码(你的真实代码会更复杂,这只是一个演示/POC)。

var pi = new ProcessStartInfo(@"c:\wkhtmltopdf\wkhtmltopdf.exe");
pi.CreateNoWindow = true;
pi.UseShellExecute = false;
pi.WorkingDirectory = @"c:\wkhtmltopdf\";
pi.Arguments = "http://www.google.com gogl.pdf";

using (var process = Process.Start(pi))
{
    process.WaitForExit(99999);
    Debug.WriteLine(process.ExitCode);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WkHtmlToXSharp - System.AccessViolationException 的相关文章

  • Firefox 忽略 CSS 中的最小高度

    由于某些原因 最小高度在 Firefox 上不起作用 我尝试在 body 上设置 min height 但 Firefox 完全忽略了它 由于我的页面是动态的 我不能只将高度设置为 100 我应该怎么办 body border 1px so
  • 为什么这些内联块元素会产生额外的宽度?

    这是这个问题的后续内容 仅使用 css 自动调整图像下的文本 https stackoverflow com questions 34185547 autofit text under image with only css 为什么这段代码
  • 我应该创建一个块还是一个元素 BEM CSS?

    Bem官网说 创建一个块如果一段代码可以被重用并且它不依赖于正在实现的其他页面组件 创建一个元素如果一段代码在没有父实体 块 的情况下无法单独使用 我有一个 关于部分 块 它的元素依赖于父级并且不能在网站中重复使用 如何根据 bem 这段代
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • 不同浏览器中滚动条的宽度是否始终相同?

    我需要调整 CSS 来补偿滚动条 所以我想知道 在不同的浏览器和操作系统中滚动条是否始终具有相同的宽度 我有两个表 一个在另一个之上 具有匹配的列宽度 设置为百分比 一个表需要一个滚动条 因此我想在其上方的表中添加另一列来补偿它 以便各列对
  • 提升变焦不起作用

    我正在使用带有苹果风格幻灯片画廊的提升缩放功能 一切正常 然而 缩放功能会放大被滑块隐藏的隐藏图像 直到单击缩略图时它们变得可见 启动缩放插件的原始代码是 zoom 01 elevateZoom 我从其他问题中得到了下面的 JavaScri
  • Wkhtmltopdf 每页右侧的垂直文本

    下面是使用 wkhtmltopdf 生成的 PDF 示例 我需要在每一页的右书脊上生成文本 我尝试将其添加到标题代码中 似乎会剪辑 PDF 的正文 我正在使用 wkhtmltopdf 的页眉和页脚参数 不太确定如何或是否可以在每个页面的右侧
  • 如何使用 XPath 通过 CSS 类查找元素?

    我的网页里有一个div with a class named Test 我怎样才能找到它XPath 该选择器应该可以工作 但如果将其替换为适合的标记 则会更有效 contains class Test 或者 因为我们知道所寻找的元素是div
  • 裁剪 .pdf 文件的页面

    我想知道是否有人有以编程方式处理 pdf 文件的经验 我有一个 pdf 文件 我需要将每一页裁剪到一定大小 经过快速谷歌搜索后 我找到了 python 的 pyPdf 库 但我的实验失败了 当我更改页面对象上的cropBox 和trimBo
  • 重置 div 内容的 css 样式

    有一个用 css 样式定制的 html 页面 我无法更改此 css 该页面的一个标签被设计为动态 html 数据的容器 我怎样才能 重置 这个div的css设置 页面中定义的css样式对此div的内容没有影响 我只能访问动态 html 并且
  • 开放式 WebSocket 连接存在哪些安全问题?

    我正在构建一个使用 websockets 的应用程序 我只允许经过身份验证的用户在登录并被授予会话 ID 后打开与服务器的 Websocket 连接 一旦我与经过身份验证的用户打开了 Websocket 连接 当前 页面 就会保存打开的 W
  • 如何在同一个

    中设置两种不同的字体大小

    我有一段 HTML 代码 我一直坚持不下去 我怎样才能将这个文本的第一部分的字体大小设置为 20px 以及后面的文本 br 标签字体大小为 15px 或者 如果我做的完全错误 我该如何做而不将它们放在不同的标签中 p Los Santos
  • 正则表达式从 img 标签获取 src 值

    我正在使用以下正则表达式来获取src第一个的值imgHTML 文档中的标签 string match src
  • 使绝对定位的div扩展父div高度

    正如你在下面的 CSS 中看到的 我想要child2将自己定位在之前child1 这是因为我目前正在开发的网站也应该在移动设备上运行 在移动设备上child2应该位于底部 因为它包含我想要在移动设备上的内容下方的导航 为什么不是 2 个母版
  • 保存下拉列表中的值

    这是我的情况 我有 2 页 一页用于选择值 一页用于编辑与该值关联的数据库相关内容 现在 我对如何将从下拉列表中选择的值保存到 PHP 的变量中一无所知 并且已经进行了相当多的研究 有任何想法吗 HTML
  • 如何获取 Spotify API 的访问令牌?

    我已经研究 Spotify api 和示例源代码几天了 但我仍然不知道如何获取访问令牌来访问用户的播放列表数据 我已经到达了拉起登录窗口 用户登录 然后收到授权码的地步 此时 我尝试做这样的事情 window open https acco
  • CreateJs Canvas 形状在 Windows Phone 上丢失坐标

    我正在制作一个 Createjs 和 html5 项目 在其中绘制一个形状 红色圆圈 当我单击圆圈时它会发出警报 它在所有台式机和 Android 手机上都能正常工作 除非我在 Windows Phone 中打开它 否则它在普通屏幕上工作正
  • iPhone 上的全屏视频播放器是否有“onClose”事件?

    我在网站上使用 html5 视频播放器 当用户开始播放时 播放器进入全屏模式并播放视频 视频结束后 我看到ended事件并通过关闭视频播放器myvideo webkitExitFullScreen 现在 当玩家实际获得时我需要另一个事件cl
  • 构建两列 html 表单的最佳方法?

    对齐以下内容的最佳方法是什么 我想要 inputTitle左边和右边inputInput在右边 两者之间有错误 CSS crud form width 430px margin 10px solid font family Verdana
  • 电子邮件模板中的剪贴板功能

    我想在电子邮件模板中发送优惠券代码 一个小按钮 用于复制剪贴板上输入元素的内容 通过电子邮件模板 我的意思是我想发送一封电子邮件 其中包含优惠券代码 并且电子邮件模板中会有一个按钮 允许我将其复制到剪贴板 这可以做到吗 任何帮助将不胜感激

随机推荐