如何使用JSPDF将多个base64图像添加到pdf文件?

如何解决如何使用JSPDF将多个base64图像添加到pdf文件?

当我尝试将多个图像添加到PDF文件时出现问题。 我找不到解决方案,谁可以帮助我...

谢谢!

我的代码!

import './App.css';
import axios from 'axios';
import { useState } from 'react';
import jsPDF from 'jspdf';
import 'jspdf-autotable';

function App() {

  const [products,setProducts] = useState([])

  let doc = new jsPDF()

  function createCatalog() {
    doc.setFontSize(40)
    doc.text(35,25,'Paranyan loves jsPDF')
    doc.addImage(`data:image/png;base64,${products[0].image}`,'PNG',(1 * 100),10,70,15);
    doc.addImage(`data:image/png;base64,${products[1].image}`,(2 * 100),15);
    doc.save('catalogo.pdf')
  }

  async function generateTable() {
    const res = await axios.get('http://localhost:8080');
    let list = [];
    res.data.forEach(item => {
      if(item.codigo) {
        list.push(item)
      }
    })
    setProducts(list);
  }

  return (
    <div className="App">
      <button onClick={ generateTable }>Gerar Tabela</button>
      <button onClick={ createCatalog }>Gerar Catálogo</button>
      <table id="catalog">
        <thead>
          <tr>
            <td>Foto</td>
            <td>Código</td>
            <td>Produto</td>
            <td>Preço</td>
          </tr>
        </thead>
        <tbody>
          {
            products.map(item => 
              <tr key={item.codigo}>
                <td><img src={`data:image/png;base64,${item.image}`}></img></td>
                <td>{item.codigo}</td>
                <td>{item.produto}</td>
                <td>{item.preco}</td>
              </tr>
            ) 
          }
      
        </tbody>
      </table>
    </div>
  );
}

export default App;

我的产品列表:

[{"categoria":"HIDRÁULICA","produto":"Luva Lisa 3/4 Marrom","codigo":"1","preco":0.32,"image":"UklGRjwEAABXRUJQVlA4WAoAAAAQAAAAigAAigAAQUxQSEEAAAAVX6CojRSIq7zwrwmJERGxpD8J2EaS1KhNIAuZArj45J/VmS8i+h8LAAAAAAAAAADyjFFujHR+/x9Sv/81RtkxMgBWUDgg1AMAALAQAJ0BKosAiwA+kUifSzOmMSajlxkAsNIJZ0iq8q7Q/EQ2h2hn93/XeXQNw1f5QJh3ohjvEZHfiBVO2c153/2HsE/Vf/g6QdK3jwowjDE0CfE2WhdDjfZsXRIwvdaA8kiiIa1X6mP4Poy6KsPGGez8Txtfzl8jf2r2f55/Nta+AGlkA02WhOk3DbJnxAAADgAABAAAzwAAmQAAagAAFgEAMwAA/vxKmOZq8D187Y6IQADJoAAA/Zhm+IlP+K1P/X/5fuwMxWY/6A8GG98/Mt+45ZRP3YC9lYu3/xOhj3R/Nncbd0LtVFQiGfUiV8N7Xm1uMXgfL8UaQPt6W1WOjayvWXReTFrWffNrdG5RldIAvd5EEwXijGdqUuYJfarM9oz2n0OLx98balV8J5p7pyZYeRgiyuPcHhZDa4crjGRLbRCRXej/9r/xq+/ybcnr1Dd/6Uye4Q2/h520Xy3xYnlvix4uDqR/EqG45xvV5SVe+Zf2OlxXExoCOi9NAybfkLsD1wAA/r9f084Gb/Kv/5NFFZGlhi/CzC3I/pcRhjxf/W7J+//b0sA5oG9Wy91L2AOKJ8I7k/bpC3kvUGCzxZMMACzGmDVSWVaGjdm7AbfgkYKaX0omk9p6/VOymmauxqYiesf06PbN/xZDem15oXBTs0TTD+4K8ud5p7AlRJ/8Uqw3hzgTjq/FoOO3rrXCss/4q7rupjYQimwaOAAA7fw78ZgZFZHrq4WUfR3gYYzuZu6Mz/em6GQK5QwH9oqDpARUd7Tfap0DwfkJiI3cnv/CXGWA84QjaFPn7gsaDXvCb37ZRasyJnpasraIC8Ogc1IMDUukOefrsLRM3L725gnP1sU2UyAAAPdndnJv8XO+/YRVKP+FtOf/gwRHzQHP7CYva52WtPF7TfoIZdAcEl2jPzIr/vsD/e302EbP1mnVHo1fBXvD8zpsv09A/X0P4tXwWKIjnv/+PtA/b8+K8nvKL/8x+8KSpnVzM02Adx3YRZOsFGff04O/myGC7H9Hr/egcHXqe/oydSRLe+vjoielyrn9tq944x/wb/8qCaxNLxi/j/m5Oe4F+GaB8GtsUf2n777pl2Nh/U3mh7LaqOt2/8HbEfaH8zvyb1zXRSRdD/+e8o/cyv7Cc2vaO1JnwZV/8xnu8qQ3iZ6Os1/EqSkGdXfx9X5vB4VnLMYHwOLkBvUKlyTjAlN5w1gXfgV/+bSiIgciOe84X2MYwAAAV9DLg4My0mxT4poQc3hCv7/xlHKhAu8+j6NIJsAzXo4/60FFMrwlFh3XqzbAz//hJAAAjsAA"},{"categoria":"HIDRÁULICA","produto":"Luva Lisa Rosca 3/4x1/2  Marrom","codigo":"5291","preco":0.9,"image":"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"}]

错误:

jspdf.es.min.js:377 Uncaught TypeError: a.getData is not a function
    at Object.t.processWEBP (jspdf.es.min.js:377)
    at Object.P (jspdf.es.min.js:96)
    at Object.push../node_modules/jspdf/dist/jspdf.es.min.js.t.addImage (jspdf.es.min.js:96)
    at createCatalog (App.js:17)
    at HTMLUnknownElement.callCallback (react-dom.development.js:3945)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:3994)
    at invokeGuardedCallback (react-dom.development.js:4056)
    at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:4070)
    at executeDispatch (react-dom.development.js:8243)
    at processDispatchQueueItemsInOrder (react-dom.development.js:8275)
    at processDispatchQueue (react-dom.development.js:8288)
    at dispatchEventsForPlugins (react-dom.development.js:8299)
    at react-dom.development.js:8508
    at batchedEventUpdates$1 (react-dom.development.js:22396)
    at batchedEventUpdates (react-dom.development.js:3745)
    at dispatchEventForPluginEventSystem (react-dom.development.js:8507)
    at attemptToDispatchEvent (react-dom.development.js:6005)
    at dispatchEvent (react-dom.development.js:5924)
    at unstable_runWithPriority (scheduler.development.js:646)
    at runWithPriority$1 (react-dom.development.js:11276)
    at discreteUpdates$1 (react-dom.development.js:22413)
    at discreteUpdates (react-dom.development.js:3756)
    at dispatchDiscreteEvent (react-dom.development.js:5889)

当我添加相同的图像时,它可以工作!但是当我有2张不同的图片时,它就不起作用了……有不同的方法,它也不起作用。我相信图像不是问题,因为我可以在HTML中显示它们……我也使用过autoTable,它也显示相同的错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-