angular打印功能實現方式


目前主流的前端打印方式有兩種:一種是使用瀏覽器打印功能直接打印頁面,另一種是調用本地控件實現。瀏覽器打印功能單一,不適用於復雜的業務表單,而打印控件可以設計打印模板,實現復雜表單的打印,十分適合復雜的業務系統。

下面為大家介紹angular中的這兩種打印。

1、瀏覽器打印:

這種方式在angular中十分簡單,獲取html元素,彈出打印窗口,打印完成關閉窗口,三步完成。

  browserPrint(){
    const printContent = document.getElementById("report");
    const WindowPrt = window.open('', '', 'left=0,top=0,width=900,height=900,toolbar=0,scrollbars=0,status=0');
    WindowPrt.document.write(printContent.innerHTML);
    WindowPrt.document.close();
    WindowPrt.focus();
    WindowPrt.print();
    WindowPrt.close();
  }

2、插件打印:

web打印插件有很多種,可以根據需求選擇合適打印控件。這里給大家推薦的是lodop控件,功能強大,關鍵是免費。

首先需要將lodop的js翻譯成ts並添加到項目中;

然后需要添加lodop打印服務,打印服務中包括打印、批量打印、設計、重置等方法,這些均通過調用本地lodop控件實現。所以服務中沒有復雜的業務,只有一些判斷和本地服務的調用。

實現套打:

獲取當前業務的所有打印模板列表,選擇模板並打印

  templatePrint(input: string): void {
    this._Service.print(input).subscribe(result => {
      this.lodopService.attachCode(result, this.data);
      this.lodop!.PREVIEW();
    })
  }

根據選擇的模板查詢模板內容,然后填充打印模板進行預覽打印。

由於業務系統中的web通用打印設計十分復雜,這里僅提供angular實現兩種打印的方法思路,如果有疑問的可以提出,有空我會為大家一一解答。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM