【问题标题】:How to convert html into PDF in angular 6 when using binding使用绑定时如何将html转换为角度6的PDF
【发布时间】:2018-10-01 18:58:50
【问题描述】:

我以角度将 html 转换为 PDF,但问题是我使用绑定来显示所有列表。我在循环中使用列表视图,PDF 只转换一个列表视图,它不能将整个列表转换为 PDF。如何实现这一点?

pdf.ts:

export class PDFComponent{

 @ViewChild('content') content:ElementRef;
  test:any;

 downloadPdf() {
  let doc= new jspdf();
  let specialElememtHandlers = {
    '#editor':function(element,renderer)
    {
      return true;
    }    
  };
  let content =this.content.nativeElement;
  doc.fromHTML(content.innerHTML,15,15, {
    'width':190,
    'elementHandlers':specialElememtHandlers
  });
  doc.save('test.pdf');
  }
}

pdf.html:

  <button class="btn btn-sm btn-white m-b-10 p-l-5" (click)="downloadPDF()"></button>
<ul class="result-list" *ngFor="let reg of test
        id="content" #content>
        <li>
          <div class="result-price" style="background:center #2d353c;color: #fff;">
            <h3 style="color: #fff">{{reg.id}}</h3>
            <h4 style="color: #fff">{{reg.date}}</h4>
            <p>
              <small>
                <b>{{reg.implication}}</b>
              </small>
            </p>
          </div>
          <div class="result-info">
            <h4 class="title">
              {{reg.title}}
            </h4>
            <br>
            <p class="desc">
              <b>Summary:</b> {{reg.desc}}
            </p>    
             </div>             
        </li>          
      </ul>

【问题讨论】:

    标签: angular pdf asp.net-web-api


    【解决方案1】:

    我认为问题可能是您的 ngFor 循环重复元素 &lt;ul id="content"&gt; 导致您有多个具有相同 ID 的元素。然后你想通过这个重复的 id 获取元素的内容。它只会给你在页面上找到的第一个。

    尝试将循环包装在 div 元素中并获取此 div 的内容。

    【讨论】:

    • 我通过在构造函数中注入对元素的引用来复制您的代码替换 ViewChild 并且它可以工作。也许它会帮助你实现你的目标。 stackblitz.com/edit/angular-dw5wmw
    • 嘿它的工作。但我只想将某些详细信息转换为 PDF。上面的代码将整个页面详细信息转换为 PDF
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 2014-09-29
    • 2010-12-29
    • 2010-11-10
    相关资源
    最近更新 更多