wkhtmltopdf 缺少 SVG 路径(渲染)

2023-12-20

我在 HTML 代码中使用图像,如下所示:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Test</title>
  </head>
  <body>
    <svg height="291pt" version="1.1" viewBox="0 0 291 291" width="291pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs>  <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}  </style> </defs> <g id="figure_1">  <g id="patch_1">   <path d="M 0 291.4 L 291.4 291.4 L 291.4 0 L 0 0 z" style="fill:none;"></path>  </g>  <g id="axes_1">   <g id="line2d_1">    <path clip-path="url(#p6e64365aaf)" d="M 268.427273 145.7 L 207.063636 251.984936 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:1.2;"></path>   </g>   <g id="line2d_2">    <path clip-path="url(#p6e64365aaf)" d="M 248.397453 148.307103 L 199.306544 233.335052 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:1.2;"></path>   </g>   <g id="line2d_3">    <path clip-path="url(#p6e64365aaf)" d="M 207.063636 251.984936 L 84.336364 251.984936 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:1.2;"></path>   </g>   <g id="line2d_4">    <path clip-path="url(#p6e64365aaf)" d="M 84.336364 251.984936 L 22.972727 145.7 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:1.2;"></path>   </g>   <g id="line2d_5">    <path clip-path="url(#p6e64365aaf)" d="M 92.093456 233.335052 L 43.002547 148.307103 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:1.2;"></path>   </g>   <g id="line2d_6">    <path clip-path="url(#p6e64365aaf)" d="M 22.972727 145.7 L 84.336364 39.415064 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:1.2;"></path>   </g>   <g id="line2d_7">    <path clip-path="url(#p6e64365aaf)" d="M 84.336364 39.415064 L 207.063636 39.415064 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:1.2;"></path>   </g>   <g id="line2d_8">    <path clip-path="url(#p6e64365aaf)" d="M 96.609091 55.457845 L 194.790909 55.457845 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:1.2;"></path>   </g>   <g id="line2d_9">    <path clip-path="url(#p6e64365aaf)" d="M 207.063636 39.415064 L 268.427273 145.7 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:1.2;"></path>   </g>  </g> </g> <defs>  <clipPath id="p6e64365aaf">   <rect height="270" width="270" x="10.7" y="10.7"></rect>  </clipPath> </defs></svg>
  </body>
</html>

当我使用 wkhtmltopdf 将其转换为 PDF 时,某些 SVG 路径丢失。有人遇到过同样的问题吗?这个问题有一些解决方法吗?

我尝试在代码中使用相对路径、完整路径、base64 源和 SVG 本身(如示例中所示)。

wkhtmltopdf 版本:0.12.4


因此,这不是一个确切的解决方案,但现在更好的选择是使用chrome在无头模式下

$ chrome --headless --disable-gpu --print-to-pdf test.html
[0427/011400.636954:WARNING:dns_config_service_posix.cc(174)] dns_config has unhandled options!
[0427/011400.638406:ERROR:gpu_process_transport_factory.cc(1007)] Lost UI shared context.
[0427/011400.801881:INFO:headless_shell.cc(586)] Written to file output.pdf. 

另外,如果你想更好地控制流程,你可以使用 NodeJS 和木偶师 https://github.com/GoogleChrome/puppeteer

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
  await page.pdf({path: 'hn.pdf', format: 'A4'});

  await browser.close();
})();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wkhtmltopdf 缺少 SVG 路径(渲染) 的相关文章

  • 为什么 jQuery 的 .change() 事件仅在单击鼠标右键时触发?

    我在使用 jquery 时遇到了问题 change 当我修改输入元素时发生事件 据说 每当我对所述元素进行实时更改时 该事件就会触发 但就我而言 它仅在我按下右键单击按钮后才会触发 这是我的代码laravel框架 HTML div clas
  • 如何在 django 表单中设置自定义 HTML 属性?

    我有一个 Django 表单 它是页面的一部分 假设我有一个字段 search input forms CharField u Search word required False 我只能通过模板访问它 form search input
  • 缩放对象上的弹跳动画

    拥有对象比例 然后在返回到原始比例因子之前以该比例因子执行弹跳动画的最佳方法是什么 我意识到我可以做一些事情 比如将其缩放到 2 2 然后 1 8 然后 2 0 但我正在寻找一种方法 您只需在比例因子上执行弹跳动画 因为我的比例因子会改变
  • 从动态服务器中抓取 html 列表数据

    哈喽大家好 抱歉提出转储问题 这是我最后的手段 我发誓我尝试了无数其他 Stackoverflow 问题 不同的框架等 但这些似乎没有帮助 我有以下问题 一个网站显示一个数据列表 前面有大量的 div li span 等标签 它是一个很大的
  • 如何正确编码 mailto 链接?

    我正在生成一些 HTML 并且我想生成 XSS 和数据库内容安全的mailto关联 这里使用的正确编码是什么 这个怎么样 myLiteral Text string Format mailto 0 Content Type text htm
  • 使用 Javascript 编辑和保存用户 HTML - 安全性如何?

    例如我有一个Javascript 支持的表单创建工具 您可以使用链接添加元素的 html 块 如输入字段 并使用 TinyMCE 来编辑文本 这些是通过自动保存功能保存的 该功能在特定事件的后台执行 AJAX 调用 被调用的保存函数负责数据
  • Mailto 链接在 Chrome 中不起作用,但在 Firefox 中有效?

    似乎是mailto我们在网站中嵌入的链接在 Chrome 中无法执行任何操作 但它们在 Firefox 中可以工作 简单的例子在这里 http jsfiddle net wAPNH http jsfiddle net wAPNH a hre
  • Origin 无权使用地理定位服务 - 即使通过 HTTPS

    我有一个通过 HTTPS 使用 HTML5 地理定位的网页 它在桌面浏览器上运行良好 然而 在 iOS Safari 上 我收到错误 Origin 无权使用地理定位服务 我已确保页面上的所有内容都通过 HTTPS 加载 每个图像 每个脚本和
  • React-dropzone 打开文件选择器两次

    我很长一段时间都遇到了 React Dropzone 的问题 首先 让我们直接通过视频来解决这个问题 https drive google com open id 1UmWtHbQ9U0LBHxYtZ1YSoXrfsezwH os http
  • 使用 Java 将 HTML 文件读取到 DOM 树

    是否有一个解析器 库能够使用 Java 将 HTML 文档读入 DOM 树 我想使用标准DOM XpathJava提供的API 大多数库似乎都有自定义 API 来解决此任务 此外 大多数可用的解析器似乎都不支持 HTML 到 XML DOM
  • 在 Chrome 上使用 display:none 重置 GIF 动画的正确方法

    标题是不言自明的 但我将提供对此事的逐步看法 希望我不是第一个注意到 Webkit Chrome 上这个 显然 错误的人 我想重置 GIF 动画 到目前为止我看到的所有例子要么简单地设置src图像本身或将其设置为空字符串 后跟原始图像src
  • Safari 6 (iOS 6) 弹性布局不会换行元素

    我需要将两个框放在列中 这在我测试过的其他浏览器中有效 但在 iOS 6 上的 Safari 6 中无效 例子 http jsfiddle net 5FESj 1 http jsfiddle net 5FESj 1 display webk
  • Vue js按钮冻结dom

    我试图在按下按钮时切换包含加载动画的跨度 直到使用 v if 函数完成 但是当我按下按钮时 DOM 冻结并且 span 元素保持不变 直到函数调用结束 如何让 DOM 不冻结并显示加载图标 非阻塞按钮按下可能是一个解决方案 HTML
  • 如何在Python + Selenium中获取元素的值

    我在我的 Python 3 6 3 代码中得到了这个 HTML 元素 作为 Selenium网页元素当然 span class ocenaCzastkowa masterTooltip style color 000000 alt 5 sp
  • 如何用css3和html5制作不规则形状的div?

    我想知道是否有可能构建具有不规则形状的 div 类似于此 例如格陵兰岛 欧洲 非洲 我想使用 CSS3 和 HTML5 创建像这里这样的地图 以下是示例图像的链接 你所拥有的看起来像一个网格 你可以通过一个 div 上的许多渐变来获得它 也
  • 将一个 div 放置在另一个 div 的底部

    我有外部 div 和内部 div 我需要将内部 div 放在外部 div 的底部 外层div是有弹性的 例如宽度 70 我还需要将内部块居中 所述化妆的简单模型如下图所示 已在 Firefox 3 Chrome 1 和 IE 6 7 和 8
  • 使图像宽度为父 div 的 100%,但不大于其自身宽度

    我试图让图像 动态放置 对尺寸没有限制 与其父 div 一样宽 但前提是该宽度不比 100 时其自身宽度宽 我已经尝试过这个 但没有成功 img width 100 height auto max width 100 其中许多图像比它们的父
  • 从 UnityWebGL jslib 返回字符串

    我想使用 jslib 来获取网址参数 像这样的代码 jslib GetUrl function var s var strUrl window location search var getSearch strUrl split var g
  • Django 1.7:如何使用 html/css 文件作为模板发送电子邮件

    从 Django 1 7 开始 可以send email 使用新参数 html message 不幸的是 没有关于如何使用它的全面指南 新手友好 或者至少我找不到它 我需要使发送的电子邮件变得漂亮 因此 我试图弄清楚如何将我的消息包含到 h
  • ☺ 不在移动版本中呈现

    我如何获得特殊角色 笑脸在移动浏览器中正确呈现 li a href http goo gl GjxlI title target blank span style font size 20px span a li 它在大多数浏览器上显示为

随机推荐

  • 在相同的 pandas 数据上运行相同的脚本会产生略有不同的数据帧浮点值

    我正在执行之前在相同数据上运行过的脚本 我得到的数据帧与前一个数据帧仅略有不同 小数点后第十位左右 例如 在某些列 和行 中 旧数据框包含价格 5673391 88 在新数据帧的同一列和同一行中 该值似乎完全相同 5673391 88 但是
  • 在不同域上工作时,CKFinder“编辑”功能不起作用

    我们正在评估CKFinder 目前我们有这样的情况 app domain com 托管我们的 JS 应用程序 包括 ckfinder js api domain com 托管connector php 请注意 它们位于不同的域中 我们可以毫
  • HTTP/1.1 302 到底是什么意思?

    我曾经读过的一篇文章说这意味着跳转 从一个 URI 到另一个 URI 但我检测到这个 302 即使实际上根本没有跳转 302 重定向意味着页面被暂时移动 而 301 意味着页面被永久移动 301 有利于 SEO 价值 而 302 则不然 因
  • 如何查看Azure fastCGI上的实际错误?

    我在访问 Blob 存储时在 Azure fastCGI 上收到一般服务器错误 错误是 500内部服务器错误 您要查找的资源有问题 无法显示 下面是代码 此代码在本地测试中运行良好 并且作为内容上传到 Azure 的所有文件都运行良好 谁能
  • Admob android 给出错误代码 0

    我在我的 Android 应用程序上设置了 ad mob 遵循完整教程 I added addtestDevice它向我展示了测试广告 但现在为了制作 我需要展示真实的广告并删除了addtestDevice但现在我收到这个错误 导出签名的应
  • 添加“在 Excel 中编辑”或“编辑照片”扩展

    我检查了最新的 iOS 版 Dropbox 和 Excel 在 Dropbox 中 我们有一个编辑按钮 单击后 它会打开 Excel 的扩展名 您可以在其中编辑文件 保存后 更改也会反映在 Dropbox 文件中 我想添加一个这样的按钮 另
  • Python Selenium Chrome 禁用“尝试下载多个文件”的提示

    我目前正在运行一个 Python 自动机 它需要使用 Selenium Chromedriver 在同一会话中下载多个文件 问题是 当浏览器尝试下载第二个文件并读取它时 浏览器将不会下载 直到单击 允许 按钮 我研究了 Selenium 的
  • iOS 打开与地图应用程序的链接

    我正在开发一个活动应用程序 并尝试添加一个 获取路线 按钮 以在 Apple 地图或 Google 地图中打开路线 我现在很高兴使用 Apple 地图 因为它很容易嵌入http maps apple com q XYZ 我的应用程序正在显示
  • 帮助:达到最大客户端数 - 分段错误

    我想模拟很多按键事件 我通过使用找到了解决方案XTestFakeKeyEvent 但是当我模拟超过 210 次时 我的程序会引发 已达到最大客户端数 分段错误 我不知道如何解决这个问题 我的代码在这里 include
  • 适用于 MFC C++ 应用程序的最佳 XML 序列化库

    我有一个应用程序 使用 MFC 和 Stingray 库用 C 编写 该应用程序可处理各种大型数据类型 这些数据类型当前均基于 MFC 文档 视图序列化派生功能进行序列化 我还添加了基于 Stingray 库的 XML 序列化选项 该库通过
  • Node JS 范围不可满足 SendStream.error Express

    我有这个网站http talkwithstranger com http talkwithstranger com 我在socket io 上运行它并通过forever js 运行它 永远日志显示以下错误 任何 Node JS 专家都可以帮
  • bootstrap 3 crash('hide') 打开所有可折叠项?

    我正在尝试实现一些相当简单的东西 但无法理解它 Google 没有提供任何帮助 并且 Bootstrap 文档似乎有点令人困惑 我需要的 简单的可折叠手风琴 所有可折叠项在页面加载时均处于关闭状态 所有可折叠的东西都可以通过单击按钮来关闭
  • 指定 Google 字体的样式和粗细

    我在一些页面中使用谷歌字体 但在尝试使用字体变体时遇到了困难 例子 http www google com webfonts QuickUsePlace quickUse Family Open Sans http www google c
  • 类型错误:无法读取未定义的属性(读取“路径名”)

    TypeError Cannot read properties of undefined reading pathname 问题是什么 我的代码 import BrowserRouter as Routes Route Router fr
  • 使用 BeautifulSoup 从 html 表中提取值

    我正在尝试使用以下方法从 html 表中提取值bs4 但是表的结构采用以下形式 td class celda400 valign middle align right width 100 style color Black 575 42 t
  • 仅实现匿名类中接口的一种方法[重复]

    这个问题在这里已经有答案了 在 Kotlin 中是否可以创建一个实现某个接口的匿名类 并且只实现您需要的功能 例如我想创建一个类实现AnimationListener其中有3个方法 动画开始时 动画结束时 动画重复 如果我只想使用onAni
  • 将哈希值收集到 OpenStruct 中创建“表”条目

    为什么会这样 在 Rails 控制台中评估 a gt b collect x OpenStruct new x to json 在那里添加一个 表 记录 table a b 我想要的只是这个 a b 这是否意味着 Rails 的 to js
  • 在 ggplot 中按因子生成多个图

    我有一个数据集 我想根据其中一列生成多个图 也就是说 我希望能够使用 ggplot 为该因素的每种类型制作单独的图 以下是一些快速示例数据 Variety as factor c a b a b a b a b a b Var1 runif
  • 如何处理 [NSDate] 和 Firebase

    我正在制作一个日历应用程序 我有一组选定的日期 用户之前选择了它并且它们存储在那里 var selectedDays NSDate 当应用程序加载时 我必须显示这些日期 但一切都过于复杂 因为 Firebase 不接受NSDate 我有另一
  • wkhtmltopdf 缺少 SVG 路径(渲染)

    我在 HTML 代码中使用图像 如下所示