angular - 以 Angular 6 从 html 导出 Pdf

标签 angular typescript angular6 jspdf

我想以 angular 6 从 html 导出 pdf。所以,我正在使用 jspdf 库。但我无法提供颜色和背景颜色等样式。我怎样才能做到这一点? (如果有来自jspdf的任何其他免费库,我可以使用它)您可以从下面的链接看到演示。

DEMO

.ts 文件

export class AppComponent  {
  @ViewChild('reportContent') reportContent: ElementRef;

    downloadPdf() {
    const doc = new jsPDF();
    const specialElementHandlers = {
      '#editor': function (element, renderer) {
        return true;
      }
    };

    const content = this.reportContent.nativeElement;

    doc.fromHTML(content.innerHTML, 15, 15, {
      'width': 190,
      'elementHandlers': specialElementHandlers
    });

    doc.save('asdfghj' + '.pdf');
  }
}

.html 文件

<div #reportContent class="p-col-8 p-offset-2">
  <table>
    <tr>
      <td style="color: red;background-color: blue;border:solid;">1111
      </td>
      <td style="border:solid;">2222
      </td>
    </tr>
  </table>
</div>

<button pButton type="button" label="Pdf" (click)="downloadPdf()">Export Pdf</button>

最佳答案

您可以使用 jsPDFdom to image 包导出带有 id='dashboard' 的 HTML div。

安装包

import * as domtoimage from 'dom-to-image';
import * as FileSaver from 'file-saver';
import * as jsPDF from 'jspdf';

TS文件

domtoimage.toPng(document.getElementById('dashboard'))
    .then(function (blob) {
        var pdf = new jsPDF('l', 'pt', [$('gridster').width(), $('gridster').height()]);
        pdf.addImage(blob, 'PNG', 0, 0, $('gridster').width(), $('gridster').height());
        pdf.save(`${that.dashboardName}.pdf`);
    });

HTML

<gridster id='dashboard'></gridster>

关于angular - 以 Angular 6 从 html 导出 Pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53388758/

相关文章:

javascript - TypeScript:从日期对象中删除秒数并重新转换回日期?

javascript - ionic native /日期选择器 StaticInjectorError

angular - 使用 i-frame 或 SDK 嵌入 Google meets

Angular 2 根据 POST 请求重新加载页面

typescript - 我如何告诉 TypeScript 您保证在 `find` 中有一个有效的返回值?

typescript - Visual Studio 为包含 tsconfig.json 的 node_modules 抛出错误

angular6 - Angular 6 中带有选择框的 ngForm 简单示例

javascript - 在 Angular 6 应用程序中,除了本地存储之外,在哪里存储用户信息并在重新加载时保留相同的信息?

javascript - 使用嵌套数组访问复杂的 Json 文件

angular - BehaviourSubject 的 distinctUntilChanged() 不是函数