亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue中使用Printjs插件實現(xiàn)打印功能

 更新時間:2022年08月08日 11:53:46   作者:Qi_子木  
Print.js 主要是為了幫助我們直接在我們的應(yīng)用程序中打印 PDF 文件,無需離開界面,也無需使用嵌入,這篇文章主要介紹了Vue中使用Printjs插件實現(xiàn)打印功能,需要的朋友可以參考下

前言

客戶需求: 表單支持在線打印
實現(xiàn)思路: 百度…百度…百度之后,printjs 這款插件比較滿足需求,無需下載,無需寫打印模板,并且兼容Element-ui中el-form表單的打印。

一、Print.js介紹

Print.js官網(wǎng)

Print.js 主要是為了幫助我們直接在我們的應(yīng)用程序中打印 PDF 文件,無需離開界面,也無需使用嵌入。 對于用戶無需打開或下載 PDF 文件而只需打印它們的特殊情況。
支持“pdf”、“html”、“image”和“json”四種打印文檔類型。默認為“pdf”。

PrintJS參數(shù)配置表

參數(shù)默認值描述
printablenull文檔來源:pdf 或圖片 url、html 元素 id 或 json 數(shù)據(jù)對象。
type‘pdf’可打印類型??捎玫拇蛴∵x項有:pdf、html、image、json 和 raw-html。
headernull用于與 HTML、圖像或 JSON 打印的可選標題。它將被放置在頁面頂部。此屬性將接受文本或原始 HTML。
headerStyle‘font-weight: 300;’要應(yīng)用于標題文本的可選標題樣式。
maxWidth800最大文檔寬度(以像素為單位)。根據(jù)需要更改此設(shè)置。在打印 HTML、圖像或 JSON 時使用。
cssnull應(yīng)用于正在打印的 html 的 css 文件 URL。值可以是具有單個 URL 的字符串或具有多個 URL 的數(shù)組。
stylenull自定義樣式的字符串。應(yīng)用于正在打印的 html。
scanStylestrue設(shè)置為 false 時,庫將不會處理應(yīng)用于正在打印的 html 的樣式。在使用 css 參數(shù)時很有用。
targetStylenull默認情況下,庫僅在打印 HTML 元素時處理某些樣式。此選項允許您傳遞要處理的樣式數(shù)組。例如:[‘padding-top’, ‘border-bottom’]
targetStylesnull與 targetStyle 相同,但是,這將處理任意范圍的樣式。例如:[‘border’, ‘padding’],將包括’border-bottom’、‘border-top’、‘border-left’、‘border-right’、‘padding-top’等。也可以通過 [’*'] 來處理所有樣式。
ignoreElements[ ]傳入打印父 html 元素時應(yīng)忽略的 html id 數(shù)組。使其不打印。
propertiesnull打印 JSON 時使用。這些是對象屬性名稱。
gridHeaderStyle‘font-weight: bold;’打印 JSON 數(shù)據(jù)時網(wǎng)格標題的可選樣式。
gridStyle‘border: 1px solid lightgray; margin-bottom: -1px;’打印 JSON 數(shù)據(jù)時網(wǎng)格行的可選樣式。
repeatTableHeaderTRUE打印 JSON 數(shù)據(jù)時使用。設(shè)置為 false 時,數(shù)據(jù)表標題將僅顯示在第一頁。
showModalnull啟用此選項可在檢索或處理大型 PDF 文件時顯示用戶反饋。
modalMessageRetrieving Document…’當 showModal 設(shè)置為 true 時向用戶顯示的消息。
onLoadingStartnull加載 PDF 時要執(zhí)行的功能
onLoadingEndnull加載 PDF 后要執(zhí)行的功能
documentTitleDocument’打印 html、圖像或 json 時,這將顯示為文檔標題。
fallbackPrintablenull打印 pdf 時,如果瀏覽器不兼容(檢查瀏覽器兼容性表),庫將在新選項卡中打開 pdf。這允許您傳遞要打開的不同pdf文檔,而不是在printable中傳遞的原始文檔。如果您在備用pdf文件中注入javascript,這可能很有用。
onPdfOpennull打印 pdf 時,如果瀏覽器不兼容(檢查瀏覽器兼容性表),庫將在新選項卡中打開 pdf。可以在此處傳遞回調(diào)函數(shù),該函數(shù)將在發(fā)生這種情況時執(zhí)行。在某些情況下,如果要處理打印流、更新用戶界面等,它可能很有用。
onPrintDialogClosenull在瀏覽器打印對話框關(guān)閉后執(zhí)行的回調(diào)函數(shù)。
onErrorerror => throw error發(fā)生錯誤時要執(zhí)行的回調(diào)函數(shù)。
base64false在打印作為 base64 數(shù)據(jù)傳遞的 PDF 文檔時使用。
honorMarginPadding (已棄用)true這用于保留或刪除正在打印的元素中的填充和邊距。有時這些樣式設(shè)置在屏幕上很棒,但在打印時看起來很糟糕。您可以通過將其設(shè)置為 false 來將其刪除。
honorColor (已棄用)false若要以彩色打印文本,請將此屬性設(shè)置為 true。默認情況下,所有文本都將以黑色打印。
font(已棄用)TimesNewRoman’打印 HTML 或 JSON 時使用的字體。
font_size (已棄用)12pt’打印 HTML 或 JSON 時使用的字體大小。
imageStyle(已棄用)width:100%;’打印圖像時使用。接受具有要應(yīng)用于每個圖像的自定義樣式的字符串。

二、安裝/引入

方法1.下載print.js

  • 從官網(wǎng)下載print.js,將下載的 print.js 放入項目utils文件夾
  • 可以全局引入即(在main.js中引入),也可以在需要的文件里面引入import Print from './utils/print'

方法2.使用npm安裝print插件

  • 安裝print-jsnpm install print-js --save
  • 可以全局引入即(在main.js中引入),也可以在需要的文件里面引入 import Print from 'print-js'

三、使用-“html”類型

在表單頁面中調(diào)用打印方法

<template>
  <div class="app-container">
    <div id="printFrom">
      <el-form :ref="formRef" :model="form" :rules="validateRules">
      ...
      </el-form>
      <el-button type="info" @click="handlePrint(printData)">打印</el-button>
    </div>
  </div>
</template>

<script>

export default {
  data() {
    return {
      formRef: 'form',
      validateRules: [],
      printData: {
        printable: 'printFrom',
        header: '申請表',
        ignore: ['no-print']
      }
    }
  },
   handlePrint(params) {
     printJS({
       printable: params.printable, // 'printFrom', // 標簽元素id
       type: params.type || 'html',
       header: params.header, // '表單',
       targetStyles: ['*'],
       style: '@page {margin:0 10mm};', // 可選-打印時去掉眉頁眉尾
       ignoreElements: params.ignore || [], // ['no-print']
       properties: params.properties || null
     })
   }
 }
}
</script>

點擊打印按鈕,彈出打印預(yù)覽界面,右邊欄調(diào)整打印界面。
假設(shè)出現(xiàn)打印不全的問題,可以通過縮放來進行設(shè)置,數(shù)值越小,縮放的越小。

四、其他Type示例

1.pdf

printJS('docs/printjs.pdf')
// 或
printJS({printable:'docs/printjs.pdf', type:'pdf', showModal:true})

2.image單個圖像

printJS('images/print-01-highres.jpg', 'image')
// 或
printJS({printable: 'images/print-01-highres.jpg', type: 'image', header: 'My cool image header'})

3.image多個圖像

printJS({
printable: ['images/print-01-highres.jpg', 'images/print-02-highres.jpg', 'images/print-03-highres.jpg'],
type: 'image',
header: 'Multiple Images',
imageStyle: 'width:50%;margin-bottom:20px;'
})

4.json

 someJSONdata = [
    {
       name: 'John Doe',
       email: 'john@doe.com',
       phone: '111-111-1111'
    },
    {
       name: 'Barry Allen',
       email: 'barry@flash.com',
       phone: '222-222-2222'
    },
    {
       name: 'Cool Dude',
       email: 'cool@dude.com',
       phone: '333-333-3333'
    }
 ]
 
printJS({
    printable: someJSONdata,
    properties: ['name', 'email', 'phone'],
    type: 'json',
    gridHeaderStyle: 'color: red;  border: 2px solid #3971A5;',
    gridStyle: 'border: 2px solid #3971A5;'
})

更多示例請參考Print.js官網(wǎng)

總結(jié)

以上便是printjs插件的使用場景,希望對大家有所幫助。

到此這篇關(guān)于Vue中使用Printjs插件實現(xiàn)打印功能的文章就介紹到這了,更多相關(guān)Vue Printjs打印插件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue關(guān)于組件化開發(fā)知識點詳解

    Vue關(guān)于組件化開發(fā)知識點詳解

    在本篇文章里,小編給大家分享的是關(guān)于Vue關(guān)于組件化開發(fā)知識點詳解內(nèi)容,有興趣的朋友們可以學習下。
    2020-05-05
  • Vue3使用icon的兩種方式實例

    Vue3使用icon的兩種方式實例

    vue開發(fā)網(wǎng)站的時候,往往圖標是起著很重要的作用,下面這篇文章主要給大家介紹了關(guān)于Vue3使用icon的兩種方式,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-11-11
  • 關(guān)于vue混入(mixin)的解讀

    關(guān)于vue混入(mixin)的解讀

    這篇文章主要介紹了關(guān)于vue混入(mixin)的解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue3清空reactive的四種方式

    vue3清空reactive的四種方式

    本文主要介紹了vue3清空reactive的四種方式,包含使用?Object.assign,使用?Object.keys?和?for...in?循環(huán),使用?delete?操作符和重新賦值4種,感興趣的可以了解一下
    2024-03-03
  • Vue3使用vue-router如何實現(xiàn)路由跳轉(zhuǎn)與參數(shù)獲取

    Vue3使用vue-router如何實現(xiàn)路由跳轉(zhuǎn)與參數(shù)獲取

    這篇文章主要介紹了Vue3使用vue-router如何實現(xiàn)路由跳轉(zhuǎn)與參數(shù)獲取,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Vue報錯Syntax?Error:TypeError:?this.getOptions?is?not?a?function的解決方法

    Vue報錯Syntax?Error:TypeError:?this.getOptions?is?not?a?

    前幾天在vue運行項目過程中報錯了,所以下面這篇文章主要給大家介紹了關(guān)于Vue報錯Syntax?Error:TypeError:?this.getOptions?is?not?a?function的解決方法,需要的朋友可以參考下
    2022-07-07
  • Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用(適合新手)

    Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用(適合新手)

    在Vue項目中導(dǎo)出Excel表格是常見的功能,特別是在后臺管理系統(tǒng)中,為了方便用戶將大量數(shù)據(jù)保存為本地文件,這篇文章主要給大家介紹了關(guān)于Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • VUE中鼠標滾輪使div左右滾動的方法詳解

    VUE中鼠標滾輪使div左右滾動的方法詳解

    這篇文章主要給大家介紹了關(guān)于VUE中鼠標滾輪使div左右滾動的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • vue頁面params傳值的坑及解決

    vue頁面params傳值的坑及解決

    這篇文章主要介紹了vue頁面params傳值的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 壓縮Vue.js打包后的體積方法總結(jié)(Vue.js打包后體積過大問題)

    壓縮Vue.js打包后的體積方法總結(jié)(Vue.js打包后體積過大問題)

    大家都知道,Vuejs的 CLI工具 是基于 webpack 來實現(xiàn)的,所以在項目打包后,會生成的文件會很大。 主要原因是 webpack 將我們所有文件都打包成一個js文件,即使再小的項目,打包之后文件都會變得很大。 下面講講最近我遇到的相同問題。
    2020-02-02

最新評論