jsPDF 不完整或损坏的 PNG 文件

2024-03-11

使用 jsPDF 添加常规 png 图像没有问题,但现在我从服务器发送生成的图像,并且浏览器控制台在渲染 PDF 文件时显示此错误:

PNG 文件不完整或损坏

显然图像不是不完整或损坏的,因为我可以看到服务器的响应并且图像很好。 另外,为了避免在图像准备好之前渲染 pdf 文件,我会检查保存图像值变量是否未定义/为空。 我的图像的格式是

var image = "data:image/png;base64,iVBORw0KGgoAAAANSUh...等";

可能是什么问题呢?

Edit:我将图像格式更改为 jpg,并且显示此错误

Supplied data is not a JPEG

如果我使用这个库jspdf.plugin.addimage.js图像渲染正确,但 png 图像渲染不正确。

edit: 2我做了一个解决方案修改jspdf.plugin.addimage.js文件功能addImage,我只是更改了函数的名称,并将使用该函数生成的图像添加到 pdf 中,因为jspdf.min.js相同的函数具有相同的名称,这样它就不会覆盖该函数,我可以使用适用于普通图像和服务器生成的图像的函数。


出现此类错误是因为发送到 jsPdf 时图像尚未完成加载,请使用 onLoad 事件检查图像是否已完全加载。例如 -

 /* where src = full image url
        callback = is callback function
        outputFormat = image output format */
    function toDataUrl(src, callback, outputFormat) {
                var img = new Image();
                img.setAttribute('crossOrigin', 'anonymous');
                img.onload = function () {

                   /*image completely converted to base64string */
                    var canvas = document.createElement('CANVAS');
                    var ctx = canvas.getContext('2d');
                    var dataURL;
                    canvas.height = this.height;
                    canvas.width = this.width;
                    ctx.drawImage(this, 0, 0);
                    dataURL = canvas.toDataURL(outputFormat);

                    /* call back function */
                    callback(dataURL);
                };
                img.src = src;
                if (img.complete || img.complete === undefined) {
                    img.src = appConfig.config.dummyImage;
                    img.src = src;
                }
            }



  function callbackBase64(base64Img)
    {
           /*base64Img contains full base64string of image   */
           console.log(base64Img);
    }

调用上面的函数并获取图像的base64字符串 -

toDataUrl('http://example1.com/image1.jpg', callbackBase64(base64Img), "image/png");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jsPDF 不完整或损坏的 PNG 文件 的相关文章

  • Redux 状态在 mapStateToProps 中未定义

    我目前正在关注this http teropa info blog 2015 09 10 full stack redux tutorial html教程 我遇到了一些障碍mapStateToProps在下面的代码中 import Reac
  • ReferenceError:找不到变量:需要

    我在加载时遇到问题node modules到我的网页之一 我已经安装了 npm node js 并且我想使用require 函数在我的网站上初始化 Firebase 我不知道为什么 但它抛出引用错误 ReferenceError 找不到变量
  • HTMLImageElement 作为 React Child 无效

    我正在尝试异步加载图像 并且仅在加载图像后才将其显示在 React 应用程序中 componentDidMount const img new Image img onload gt this setState originalImage
  • 使用selenium IDE提取部分文本并将其放入变量中

    有人可以告诉我应该使用哪个命令来使用 Selenium Ide 从文本中仅提取数字 694575 并将其放入变量中以供进一步使用 这是带有文本的 div div class loginBoxTitle Edit Exhibition Cen
  • 如何理解 Angular JS 中的控制台错误消息?有什么工具吗?

    我是 Angular JS 的新手 我的第一个问题是如何理解 Angular JS 中控制台的错误消息 我编写了这段用于匹配密码的代码片段 它在控制台上抛出错误 但它工作正常 它是有线的 我无法从这些控制台消息中理解任何内容 谁能指出我为什
  • 限制文本区域中每行的字符数

    我整个周末都在寻找解决这个难题的方法 但尚未找到一个可以正常工作的解决方案 我想要实现的是限制文本区域中每行的字符数 不是相同地限制它们 而是我选择的每行不同的字符数 例如 我只想在我的文本区域中包含 4 行 第 1 2 和 3 行将限制为
  • 使用 Javascript 在 Imacros 中循环

    我如何使用 javascript 循环 imm imacros 脚本 我搜索了一下 发现了这个 for i 0 i lt n i iimPlay marconame iim 但当我使用它时 我的浏览器 Firefox 18 挂起 for i
  • 为什么 jQuery 点击事件会多次触发

    我这里有这个示例代码http jsfiddle net DBBUL 10 http jsfiddle net DBBUL 10 document ready function creategene click function confir
  • 在浏览器中语音聊天? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们正在寻求建立一个小组 voice 使用服务器上的node js 在浏览器中聊天 这可能吗 如果您希望您的解决方案是基于服务器端和客
  • 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

    我为 Bootstrap 和 React 找到了这个完美的 Sweet Alert 模块 我在 Meteor 应用程序中使用它 http djorg83 github io react bootstrap sweetalert http d
  • Aptana Studio 3 上的预览选项卡在哪里?

    我在 Windows PC 上使用 Aptana Studio 2 并有一个选项卡用于在 IE 上预览页面 另一个选项卡用于在 Firefox 上预览 但我切换到了 Aptana 3 我不知道是没有预览还是我没有找到它 是的 我在 stac
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • 使用 jquery 将字符串数组转换为整数

    我正在尝试将 jquery 中的字符串数组转换为整数数组 这是我的尝试 var cdata data values split each cdata function i l l parseInt l 我认为在这种情况下你不需要使用 Jqu
  • 如何访问另一个 mobx 商店中的 mobx 商店?

    假设以下结构 stores RouterStore js UserStore js index js each of Store jsfiles 是一个 mobx 存储类 包含 observable and action index js只
  • 有关于 PHP 中的 V8JS 的文档吗?

    有没有关于V8JS的文档 我是否只需要标准 PHP 或一些扩展即可使用 V8JS 我将非常感谢有关 PHP 中的 V8JS 的任何信息 要求 PHP 5 3 3 和 V8 库和标头安装在正确的路径中 Install http www php
  • WebRTC:通道、轨道和流与 RTP SSRC 和 RTP 会话之间的关系

    来自 Mozilla 网站 https developer mozilla org en US docs Web API Media Streams API https developer mozilla org en US docs We
  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr
  • 替换两个引号之间的字符串

    我想转动一根绳子str hello my name is michael what s your s into hello my name is span class name michael span 我怎样才能在 JavaScript
  • 如何更改订阅值?使用 rxJS

    我正在创建一个计时器 需要你的帮助 我刚刚学习 Angular 和 rxJS 对此我有一些疑问 我正在创建一个具有启动 停止 暂停 重置功能的计时器 并且 btn Reset 必须将我的计时器 暂停 到 300 毫秒 怎么做 D 我的启动定
  • 在 javascript 中使用 xPath 解析具有默认命名空间的 XML

    我需要创建一个 XML xPath 解析器 所有解析都必须在客户端进行 使用 JavaScript 我创建了一个 javascript 来执行此操作 在默认名称空间发挥作用之前 一切看起来都正常 我根本无法查询具有默认命名空间的 XML 我

随机推荐

  • matplotlib 中自动调整图形大小

    有没有办法自动调整图形大小以正确适合 matplotlib pylab 图像中包含的图 我正在创建根据所使用的数据纵横比不同的热图 子 图 我意识到我可以计算纵横比并手动设置它 但肯定有更简单的方法吗 Use bbox inches 紧 i
  • 在 Flutter Canvas 中使用 Gradient 和 Paint 对象

    我可以使用以下示例绘制半圆 Flutter如何画半圆 半圆 https stackoverflow com questions 57748469 flutter how to draw semicircle half circle 但是 那
  • 根据外键选择填充 django-admin 中的值

    我有一个带有外键引用的模型 看起来像这样 class Plan models Model template models ForeignKey PlanTemplate throttle models IntegerField defaul
  • 设置 Java 应用程序的全局字体

    我需要为我的应用程序设置默认字体 有没有一种不依赖 LaF 的方法可以做到这一点 弄清楚了 致电 setUIFont new javax swing plaf FontUIResource new Font MS Mincho Font P
  • CloudFoundry 时区

    我开发了一个非常以 JodaTime 日期时间为中心的应用程序 日历等 在我的本地计算机上一切正常 我已在 cloudfoundry 部署了我的应用程序 但日历中没有可见的日期 我猜这和cloudfoundry的时区有关 我已将本地运行的应
  • 在谷歌应用程序脚本中以 HTML 形式获取谷歌文档[重复]

    这个问题在这里已经有答案了 如何在谷歌应用程序脚本中获取 HTML 形式的谷歌文档 例如 我可以像这样获取文档正文 DocumentApp getActiveDocument getBody 但是当我登录时什么也没有 function do
  • 如何从 iOS SDK 中的 Facebook 对象获取 Facebook 用户 ID?

    我看到 Facebook 对象中提供了访问令牌 但我没有看到 Facebook 用户 ID 我可以向 我 发出图形请求以获取 Facebook Id 但我不想进行额外的 api 调用 现在有一种简单的方法可以做到这一点 假设你已经有一个FB
  • 将图像转换为 pdf php

    我在用csxi http www chestysoft com ximage twainupload asp将文档扫描为图像 但我必须将 pdf 文件上传到服务器 如何在 php 中将图像转换为 PDF 或者有什么方法可以让 csxi 将文
  • 用于应用程序本地部署的 MSVC 2015 通用 CRT

    据宣布 通用 CRT 将是一个可重新分发的 DLL 这样应用程序本地部署仍然是可能的 我已经安装了 Visual Studio 2015 Express Edition 并且在 SDK 目录中查找 ucrtbase dll 但找不到任何内容
  • 如何添加第三方 Java JAR 文件以在 PySpark 中使用

    我有一些 Java 第三方数据库客户端库 我想通过访问它们 java gateway py 例如 要使客户端类 不是 JDBC 驱动程序 通过 Java 网关可供 Python 客户端使用 java import gateway jvm o
  • 将压缩半字节组合成压缩字节

    给定一个或多个 m128i or m256i每个 16 位元素包含一个半字节 将它们组合并打包为每个 8 位元素一个字节的最快方法是什么 即 hi lt lt 4 lo对于相邻的 16 位元素 这是我想出的最好方法 不幸的是它与标量代码相当
  • 如果内容太宽,请在 HTML 标记中插入省略号 (...)

    我有一个具有弹性布局的网页 如果调整浏览器窗口的大小 该网页会更改其宽度 在这个布局中有标题 h2 其长度可变 实际上是我无法控制的博客文章的标题 目前 如果它们比窗口宽 它们会分成两行 是否有一个优雅的 经过测试的 跨浏览器 解决方案 例
  • 如何在IOS的UIView中仅使文本/标题覆盖的部分透明

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试创建一个UIView with text the text可能会不断变化 在其之上 我只想要text其中的一部分UIView透明
  • 模拟对象上的异步回调不等待

    我试图模拟单元测试的复杂情况 mockController new Mock
  • 无法连接到 (LocalDB)\MSSQLLocalDB -> 用户“User-PC\User”登录失败

    当我尝试通过 SQL Server Management Studio 连接 LocalDB MSSQLLocalDB 时 出现错误 我还尝试使用默认数据库作为 master 登录 错误是相同的 Here is the Server det
  • JavaScript 中的嵌套层数是否有限制?

    假设您有一个非常复杂的算法 需要数十个 for 循环 JavaScript 对循环的嵌套深度有限制还是没有限制 深层嵌套 for 循环的最佳实践是什么 我尝试在 MDN 上搜索 但找不到我要找的内容 Edit 我正在寻找是否有内置限制 例如
  • Java - 接口扩展自身

    我已经使用这个网站大约 6 个月了 是时候问我的第一个问题了 因为我找不到这个问题的答案 至少不是我能理解的答案 在这段代码中 为什么这个接口要扩展自身 public interface PositionedVertex
  • DecorView子框架布局

    有人可以向我解释一下 为什么我的布局上的 DecorView 的子级是 FrameLayout 而我还没有定义它 这是xml布局
  • 观察者模式是否违反了单一责任原则?

    如果使用观察者设计模式的应用程序具有subject具有以下职责的类 1 管理和通知观察者 即提供注册和注销函数并调用所有观察者通知函数 和 2 它最初的责任 即班级在成为班级之前正在做什么subject 这个类是否违反了单一职责原则 它显然
  • jsPDF 不完整或损坏的 PNG 文件

    使用 jsPDF 添加常规 png 图像没有问题 但现在我从服务器发送生成的图像 并且浏览器控制台在渲染 PDF 文件时显示此错误 PNG 文件不完整或损坏 显然图像不是不完整或损坏的 因为我可以看到服务器的响应并且图像很好 另外 为了避免