首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从用角材料7虚拟滚动创建的表中创建pdf

如何从用角材料7虚拟滚动创建的表中创建pdf
EN

Stack Overflow用户
提问于 2018-12-15 10:35:21
回答 1查看 1.1K关注 0票数 1

我想要创建一个非常大的html表的pdf。

我利用角质材料7虚拟卷动来创建那张表。

以下是html模板代码:

代码语言:javascript
运行
复制
<cdk-virtual-scroll-viewport itemSize="1" class="example-viewport">
<table class="table table-bordered table-striped table-condensed" >
  <tbody id="test">
    <tr *cdkVirtualFor="let arrangement of final; let i = index" (click)="onSelected(i)" [class.selected]="selectionne[i]" class="example-item">
       <td><button mat-raised-button color="primary">No {{i+1}}</button></td>
       <td *ngFor="let element of arrangement">{{element}}</td>
    </tr>
  </tbody>
</table>

这是负责创建pdf的组件功能:

代码语言:javascript
运行
复制
exportAll(){
var data = document.getElementById('test'); 
html2canvas(data).then(canvas => {  
  // Few necessary setting options  
  var imgWidth = 208;   
  var pageHeight = 295;    
  var imgHeight = canvas.height * imgWidth / canvas.width;  
  var heightLeft = imgHeight;  
  var position = 0;

  const contentDataURL = canvas.toDataURL('image/png')  
  let pdf = new jspdf('p', 'mm', 'a4'); // A4 size page of PDF  

  pdf.addImage(contentDataURL, 'PNG', 0, position, imgWidth, imgHeight);
  pdf.addPage();  

  pdf.save('MYPdf.pdf'); // Generated PDF   
});}

问题是,只创建了一个不到30行的页面,其余的行都没有被更改。

所以,这种情况是因为我使用虚拟滚动来呈现表吗?

我能做什么把我所有的表转换成pdf?

EN

回答 1

Stack Overflow用户

发布于 2019-01-28 05:01:12

因为虚拟卷轴只是将"ngFor“替换为"cdkVirtualFor",所以您可以创建打印时切换到的ngTemplate (在exportAll()函数之前设置变量/布尔值)。

看的时候..。

代码语言:javascript
运行
复制
<ng-container *ngIf="!print; else PRINTING"> 
   <tr *cdkVirtualFor="let arrangement of final; let i = index" ...

印刷时..。

代码语言:javascript
运行
复制
<ng-template #PRINTING>
   <tr *ngFor="let arrangement of final; let i = index" ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53791535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档