无法在jspdf中加载多个图像

2024-05-19

我正在尝试加载动态生成的多个图像。我想将这些图像转换为 PDF 格式。

HTML 代码如下:

<html>
<body>
   <input type='submit' id='test' style='align:center' value='Generate'>
</body>
</html>

使用jspdf生成pdf的脚本是:

<script>
    window.onload = function(){
      var t = document.getElementById("test"); 
      t.addEventListener("click", sayHi, false);
      function sayHi(){
        var getImageFromUrl = function(url, callback) {
            var img = new Image();

            img.onError = function() {
                alert('Cannot load image: "'+url+'"');
            };
            img.onload = function() {
                callback(img);
            };
            img.src = url;
        }
    var doc = new jsPDF();  
    var length = <?php echo count($items); ?>; /* $items id from php which is an array of items */
    var cnt=0; /* using this variable to get the end of the loop */
    <?php
        foreach($items as $item)
        {?>
            cnt++;
            getImageFromUrl('http://localhost:800/prod/chart.php?period=<?php echo $timeperiod; ?>&stime=<?php echo $startingtime; ?>&itemids=<?php echo $item->itemid; ?>&type=0&updateProfile=1&profileIdx=web.item.graph&width=1222&screenid=&curtime=1442486527893', function(imgData) {
                doc.addImage(imgData, 'JPEG', 10, 10, 150, 75); 
                /* Initiall tried here to save pdf file and as a result n number of pdf's are downloading with same image */
                /* doc.save('out.pdf'); */

            }
            );

        <?php 
        }
         ?>
     if(cnt==length)
            {
                /* after trying in for loop i tried here as a result i got only one pdf but with out images */
                doc.save('out.pdf');
            }
      } 
}
</script> 

以下是我尝试过的方法:

  1. 尝试生成将所有图像保留在 div 标签中并使用该 div 标签生成 PDF。
  2. 以为图像是同步加载的,决定等到图像创建完成后生成PDF。这次我只收到一个 PDF,但没有图像。
  3. 尝试将图像转换为 Base 64 并显示它,但没有成功

在此先感谢您的帮助。


请参考此示例获取一张图像,并以相同的方式处理多张图像:

 var img = new Image();

img.onload = function () {
    var dataURI = getBase64Image(img);
    return dataURI;

}
img.src = "../Images/UW_DriveLogo.jpg";

function getBase64Image(img) {

    var canvas = document.createElement("canvas");

    canvas.width = img.width;
    canvas.height = img.height;
    var ctx = canvas.getContext("2d");

    ctx.drawImage(img, 0, 0);

    var dataURL = canvas.toDataURL("image/jpeg");

    return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");

}

然后你可以简单地调用 load 方法:

 doc.addImage(img.onload(), 'PNG', doc.internal.pageSize.width - 75, 0, 75, 75);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在jspdf中加载多个图像 的相关文章

  • PHP 选择后立即删除

    我有一个 PHP 服务器脚本 它从 MySQL 数据库中选择一些数据 一旦我将 mysql query 和 mysql fetch assoc 的结果存储在我自己的局部变量中 我就想删除我刚刚选择的行 这种方法的问题在于 PHP 似乎对我的
  • Symfony2 功能测试会话持久性

    我正在尝试在 Symfony 中进行一些功能测试 但目前我的会话遇到了问题 我执行了一段代码 它似乎有效 但容器的会话中没有存储任何内容 我有一个表格 您可以在其中设置数据 当您提交它时 它会检查值并将其存储在会话中 然后它重定向到另一个页
  • Blade @if 中的 Laravel 会话变量

    当我尝试使用 Laravel Session 在刀片中设置 JS 变量来刷新一些数据时 我在 Laravel 4 2 中遇到了一些奇怪的情况 这很简单 我不知道我错过了什么 目标 在用户注册后立即触发 Javascript 网站浏览 方法
  • javascript中怪异模式的元素宽度?

    我一直在浏览所有流行的 js 库 但我找不到一个具有 DOM 元素宽度函数的库 该函数实际上可以解释 Internet Explorer 中的怪异模式 问题是 当启用怪异模式时 填充和边框不会计入宽度 据我所知 当省略 doctype 或将
  • Zend 框架将字母“f”输出到我的页面上

    我已经下载了 Zend 框架稳定版本 我相信是 1 11 上传到我的服务器 并将其添加到我的 php 包含路径中 我的目标是使用 Feed 和 Feed Writer 模块来处理一些 RSS 和 Atom 的繁重工作 问题是 每当我包含 F
  • 如何使用 PHP SDK 在 AWS SES 发送的电子邮件中实现 List-Unsubscribe 标头

    我尝试使用 AWS PHP SDK 添加自定义标头 以便可以实现 List unsubscribe 标头 问题是我找不到任何地方如何实现它 我已阅读文档但什么也没有 http docs aws amazon com aws sdk php
  • 在 Javascript 中动态添加事件处理程序

    我在使用 Javascript 时遇到了一个奇怪的问题 我得到的是一个特定格式的字符串 我将尝试用它创建一个表 该表每行只有一个单元格 字符串的格式为 每个单元格 行 需要显示内容 将传递给的参数onmouseover当用户将鼠标移动到显示
  • 从 XML 节点 PHP DOM 中删除所有子节点

    我想使用 PHP DOM 从 XML 节点中删除所有子节点 以下之间有什么区别 A while parentNode gt hasChildNodes parentNode gt removeChild parentNode gt chil
  • 使用JQuery检查元素是否有边框?

    所以我正在玩 el css 尝试确定元素是否有边框 我用 css border style solid 设置边框 这是可行的 但实际上它设置了 4 种单独的样式 border right style border left style bo
  • 使用 javascript 禁用按钮:FF 与 IE

    我有一排按钮 它们都会创建一个我想在新选项卡中打开的 pdf 文件 这样按钮页面就会保持在顶部 并且 pdf 会打开以进行打印 为了防止单击按钮两次 我禁用该按钮 如下所示 我使用 python
  • Laravel 作业推送至 Amazon SQS 但未处理

    我正在运行 Laravel 5 3 我正在尝试测试队列作业 并且我已将队列配置为使用 Amazon SQS 我的应用程序能够将作业推送到队列中 并且我可以在 SQS 中看到该作业 但它留在那里 从未被处理 我尝试过跑步php artisan
  • 显示表中的记录

    我的第一个 PHP 项目遇到了一些麻烦 我试图从 MySQL 数据库 有 3 条记录 获取数据并将其显示在表格中 问题是它似乎只显示记录 2 和 3 它跳过了第 1 条记录 请参阅我的代码并在下面显示 if mysqli connect e
  • 是否必须配置 PHP 才能通过 PHP 扫描每个目录的配置 INI 文件(即我的情况下的 .htaccess 文件)?

    我在用着Windows 10 家庭单语言 64 位操作系统在我的机器上 我已经安装了最新的副本XAMPP服务器在我的机器上附带PHP 7 2 7 我从 PHP 手册中阅读了以下页面 扫描目录 https secure php net man
  • 运行没有扩展名的 PHP 页面

    我想在 apache Web 服务器上运行我的 PHP 网页 而不需要 php扩大 所以我添加了以下代码 RewriteEngine on RewriteBase Rewritecond REQUEST URI NC RewriteRule
  • div Hello div div Howdy dere pardner div div div 我明白它的作用 但为什么叫这个名字both 什么是both mean 两者的意思是 一组两件事中的每一项 左 和 右 两件事
  • Smarty输出空白页

    已解决 模板文件错误 我有这样的 Smarty 设置 require once smarty Smarty class php smarty new Smarty smarty gt compile dir compile dir smar
  • 为什么我的图像下方有空间? [复制]

    这个问题在这里已经有答案了 图像在下面获得了神秘的空白空间 即使padding 0 margin 0被应用 示范 http jsfiddle net cLETP 红色边框应该包围图像 但底部有空间 造成这种情况的原因是什么 如何删除该空间
  • 更改javascript nodejs中所有页面的href url

    我已经实现了具有多种语言下拉菜单的引导导航栏 当我选择语言时 它将翻译页面 如何更改其他页面的 url 和按钮文本 当我选择french 将所有网址更改为 fr about and fr contact 如何使用 JavaScript 进行
  • 使用 php 获取当前月份的最后 3 个月

    我想获取当前月份最近 3 个月的名称 例如当前月份是八月 所以 我想要六月 七月 八月这样的数据 我已经尝试过这段代码echo date F strtotime 3 months 它只返回六月 如何使用 php 获取当前月份的最后 3 个月
  • 通过 __get() 通过引用返回 null

    快速规格 PHP 5 3 error reporting 1 the highest 我正在使用 get 通过引用技巧神奇地访问对象中任意深度的数组元素 快速示例 public function get key return isset t

随机推荐

  • 从旧的外部 Javascript 更改 React 组件的状态?

    如何从旧的 jQuery soup 中更改 React 组件的状态 代码 我有一个这样的组件 var AComponent React createClass getInitialState function return ids rend
  • 如何使用 Scala 从 Spark 更新 ORC Hive 表

    我想更新 orc 格式的 hive 表 我可以从 ambari hive 视图进行更新 但无法从 sacla spark shell 运行相同的更新语句 objHiveContext sql select from table name 能
  • 使用 AsyncTask 进行服务

    我听说服务中存在异步任务并不好 真的有必要吗AsyncTask要不就onStartCommand 我想知道因为我有一个Service与AsyncTask由警报启动 并且它推出了Service不止一次 它应该只启动一次 难道是这个原因吗 ED
  • MySQL正则表达式:如何将字符串中的数字与\d匹配?

    我有一个专栏release date它以字符串格式存储日期 不是 DATETIME 格式 因为它们有时可以是任何其他字符串文字 我想根据给定的月份和年份查找任意日期的所有记录 尝试遵循但对我不起作用 gt Post find all con
  • 如何在 Gremlin 中查找公共顶点数并对结果进行排序?

    我的架构有两种类型的节点 node1 学生 id为主键 节点2 技能 技能名称为主键 他们之间的关系是HAS SKILL 我的用例 对于给定的学生 Id 我需要获取技能最匹配的相似用户 技能计数和常用技能列表 我尝试过的查询 g V has
  • 自定义 XML 文件比较

    我看过很多关于 XML 比较的帖子 但我看过的没有一个能解决我的问题 我们有一些 XML 格式的文本文档 产品描述 带有标题和段落 正在更新 即版本化 我的任务是制作变更摘要 也就是说 我们想要获取两个连续的文件并生成第三个 标题结构 大纲
  • 如何清除 (WPF) DataGrid 中的单元格(使其获取 NULL 值)?

    我们有一个列绑定到一个可为空的 SQL 整数值 当用户尝试 清除 单元格时DataGrid 我们得到验证错误 无法转换 如何将其设置为空并将 空 值绑定到基础列 我已经用谷歌搜索了这个问题两天并找到了任何东西 我试图编辑我对 HCL 的评论
  • 使用base64编码图像的优点和缺点[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在考虑为我正在开发的网站使用 Base64 编码图像来优化加载时间 不管怎样 在开始之前 我想知道 这样做的优点和缺点是什么 目前 我没有看
  • Visual Studio 加载符号

    我正在研究一个冷聚变 http en wikipedia org wiki ColdFusion项目已经有一段时间了 Visual Studio 至少对我来说开始表现得很奇怪 我观察到 当我开始调试时 它构建了项目 开始部署 部署完成并开始
  • 如何按角色限制对 Spring Data REST 投影的访问?

    在使用 Spring Data JPA 和 Spring Data REST 的应用程序中 假设您有一个如下所示的实体类 Entity public class Person Id GeneratedValue private int id
  • Sphinx 的 .. include:: 指令和“重复标签”警告

    我正在尝试使用Sphinx http sphinx doc org s include 指示 http docutils sourceforge net docs ref rst directives html include将一个文件中的
  • org.neo4j.kernel.GraphDatabaseQueryService 无依赖满足接口

    我只是编写一个简单的程序 将 GTFS 文件上传到 Neo4j Spatial 我相信这是一些配置错误或 Neo4j spatial 库的一些问题 这就是为什么我没有上传我的代码 这是指定的非常基本的代码here https github
  • 动态加载具有某些其他 dll 依赖项的 .NET 程序集

    我想为我的应用程序创建一个插件引擎 但我有一个问题 如何加载对其他程序集有一定依赖的 Net 程序集 实际上是我的插件 例如我想加载A DLL and A DLL需要B dll or C dll等等来运行 这A dll有两种方法 例如A a
  • Chrome/Firefox 在后台发送两个 POST,间隔恰好 5 秒,仅调用一次来获取 Nodejs 8.0.0 服务器

    注意 这不是飞行前选项 也不是网站图标或其他类似内容 实际上是 2 个帖子 下面有一个屏幕截图可以更清楚地显示这一点 我的规格 版本 macOS 塞拉利昂版本 10 12 3 Chrome 版本 61 0 3128 0 官方版本 开发版 6
  • 过滤器的 Scala 集合类型

    假设您有一个 List 1 1 其类型为 List Any 这当然是正确的且符合预期 现在如果我像这样映射列表 scala gt List 1 1 map case x Int gt x case y String gt y toInt 结
  • 正确实现单链表 C++

    我有一份雇主名单 例如 节点 1 吉尔 Matt 乔 鲍勃 Matt 节点 2 Jeff James John 乔纳森 John Edward 节点 3 Matt Doe Ron 巴勃罗 Ron Chase Ron 蔡斯 路易 我试图让它到
  • 如何在 GraphQL 中处理多种类型的数组(例如:不同的内容块)?

    假设我有一个页面构建器字段 它引用许多不同类型的内容块 Video Quote 广告 etc 根据我的阅读 不鼓励在数组中包含多种类型 但是在这种情况下你还应该做什么呢 有没有办法在 GraphQL 中处理这个问题 有没有更好的方法来构建数
  • 我是否需要 getter 和 setter 以及额外的实体构造函数?

    我正在尝试在 Android 项目中使用 ORMLite 进行数据库持久化 从例子来看一切都很好 当我开始使用它时 我发现我并不完全理解它的要求和行为 假设我有一个名为 Bone 的课程 我想坚持下去 DatabaseTable table
  • 回到使用 ajax 的 PushState 条目

    我对以下情况有疑问 用户访问网站 用户点击使用history pushState的链接来更新url 通过ajax加载部分页面内容 使用jQuery 用户单击加载新页面的常规链接 用户点击返回返回到pushState条目 该页面现在仅显示通过
  • 无法在jspdf中加载多个图像

    我正在尝试加载动态生成的多个图像 我想将这些图像转换为 PDF 格式 HTML 代码如下