【问题标题】:JsPDF in Angular 5 addImage() methodAngular 5 addImage() 方法中的 JsPDF
【发布时间】:2018-10-04 13:01:04
【问题描述】:

我正在使用 jspdf 库将我的 html 转换为 pdf

html:

 <div *ngFor="let person of people"
             {{person.name}}
            <button (click) = "generatePdf()"></button>
         </div>

         <div id="contentForPdf" style="display:none">
            <div *ngFor="let person of people">
                {{person.address}}
            </div>
     </div>

在组件中:

public generatePdf():void{
              const data = document.getElementById('contentForPDF');
                 html2canvas(data).then(canvas => {
                   const imgWidth = 300;
                   const pageHeight = 295;
                   const imgHeight = (canvas.height * imgWidth) / canvas.width;
                   const heightLeft = imgHeight;
                   const contentDataURL = canvas.toDataURL('image/png');
                   const pdf = new jsPDF('p', 'mm', 'a4');
                   const position = 0;
                   pdf.addImage(contentDataURL, 'PNG', 0, position, imgWidth,imgHeight);
                   pdf.save(name);
                   }

并且由于显示没有 addImage 方法给我错误:

  1. 错误:未捕获(承诺中):错误:addImage 不支持文件 'UNKNOWN' 类型的,请确保支持 'UNKNOWN' 的插件 被添加。错误:addImage 不支持“未知”类型的文件, 请确保添加了支持“未知”的插件。

【问题讨论】:

  • 我不想在屏幕上打印人的地址,只希望它是 pdf 格式。任何帮助表示赞赏...
  • "我了解到我不应该尝试使用图像,而是使用 dataURI。我使用此网站将图像转换为 dataURI:websemantics.uk/tools/…

标签: html angular jspdf


【解决方案1】:

你可以这样做:

 <script type="text/javascript" src="libs/png_support/zlib.js"></script>
    <script type="text/javascript" src="libs/png_support/png.js"></script>
    <script type="text/javascript" src="jspdf.plugin.addimage.js"></script>
    <script type="text/javascript" src="jspdf.plugin.png_support.js"></script>
    <script type="text/javascript" src="jspdf.js"></script>

TS

   const doc = new jsPDF();
   const imgData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABy...
    doc.addImage(imgData, 'PNG', 50, 50, 50, 50);
    doc.output('pdf-img');

【讨论】:

  • 得到了解决方案,因为我在 pdf.save('myPdf'); 之后隐藏了整个 div并将其显示为 $('#id').show();保存方法之前。感谢 Patricio Vargas 抽出宝贵时间...
  • @chaitanya 如果使用 display:none 属性如何解决...感谢兄弟的任何帮助
猜你喜欢
  • 2018-12-19
  • 1970-01-01
  • 2021-06-09
  • 2019-01-04
  • 1970-01-01
  • 2017-11-13
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
相关资源
最近更新 更多