# vue-print-nb This is a directive wrapper for printed, Simple, fast, convenient, light. - [vue-print-nb](#vue-print-nb) - [Install](#install) - [Vue2 Version:](#vue2-version) - [Vue3 Version:](#vue3-version) - [Description](#description) - [Usage Method:](#usage-method) - [Print the entire page:](#print-the-entire-page) - [Print local range:](#print-local-range) - [Print local range More:](#print-local-range-more) - [Print URL:](#print-url) - [Print Preview](#print-preview) - [Print Url Preview:](#print-url-preview) - [Print local range Preview](#print-local-range-preview) - [Print Async Url](#print-async-url) - [v-print API](#v-print-api) ## Install [在线DEMO](https://power-kxlee.github.io/vue-print-nb/dist/index.html) [ONLINE DEMO](https://power-kxlee.github.io/vue-print-nb/dist/index.html) ### Vue2 Version: ```bash npm install vue-print-nb --save ``` ```javascript import Print from 'vue-print-nb' // Global instruction Vue.use(Print); //or // Local instruction import print from 'vue-print-nb' directives: { print } ``` ### Vue3 Version: ```bash npm install vue3-print-nb --save ``` ```javascript // Global instruction import { createApp } from 'vue' import App from './App.vue' import print from 'vue3-print-nb' const app = createApp(App) app.use(print) app.mount('#app') //or // Local instruction import print from 'vue3-print-nb' directives: { print } ``` ![](https://github.com/Power-kxLee/vue-print-nb/blob/master/src/img/Chrome.png) ## Description Support two printing methods, direct printing page HTML, and printing URL It's easy to use, Support Vue compatible browser version ## Usage Method: ### Print the entire page: ``` ``` ### Print local range: HTML: ```

葫芦娃,葫芦娃

一根藤上七朵花

小小树藤是我家 啦啦啦啦

叮当当咚咚当当 浇不大

叮当当咚咚当当 是我家

啦啦啦啦

...

``` Pass in a string type directly * `id`: ID of local print range ### Print local range More: HTML: ```

葫芦娃,葫芦娃

一根藤上七朵花

小小树藤是我家 啦啦啦啦

叮当当咚咚当当 浇不大

叮当当咚咚当当 是我家

啦啦啦啦

...

``` JavaScript: ``` export default { data() { return { printLoading: true, printObj: { id: "printMe", popTitle: 'good print', extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css", extraHead: '', beforeOpenCallback (vue) { vue.printLoading = true console.log('打开之前') }, openCallback (vue) { vue.printLoading = false console.log('执行了打印') }, closeCallback (vue) { console.log('关闭了打印工具') } } }; } } ``` You can also pass in an object type `Objcet` ### Print URL: If you need to print the specified URL, you can use the following method: (Ensure that your URL is the same source policy) HTML: ``` ``` JavaScript: ``` export default { data() { return { printObj: { url: 'http://localhost:8080/' beforeOpenCallback (vue) { console.log('打开之前') }, openCallback (vue) { console.log('执行了打印') }, closeCallback (vue) { console.log('关闭了打印工具') } } }; } } ``` ### Print Preview Support print preview, pass in` preview:true `, All printing methods are supported #### Print Url Preview: HTML: ``` ``` JavaScript: ``` export default { data() { return { printObj: { url: 'http://localhost:8080/' preview: true, previewTitle: 'Test Title', // The title of the preview window. The default is 打印预览 previewBeforeOpenCallback (vue) { console.log('正在加载预览窗口') }, previewOpenCallback (vue) { console.log('已经加载完预览窗口') }, beforeOpenCallback (vue) { console.log('打开之前') }, openCallback (vue) { console.log('执行了打印') }, closeCallback (vue) { console.log('关闭了打印工具') } } }; } } ``` ![](2021-05-12-18-28-08.png) #### Print local range Preview HTML: ```

葫芦娃,葫芦娃

一根藤上七朵花

小小树藤是我家 啦啦啦啦

叮当当咚咚当当 浇不大

叮当当咚咚当当 是我家

啦啦啦啦

...

``` JavaScript: ``` export default { data() { return { printLoading: true, printObj: { id: "printMe", preview: true, previewTitle: 'print Title', // The title of the preview window. The default is 打印预览 popTitle: 'good print', extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css", extraHead: '', previewBeforeOpenCallback (vue) { console.log('正在加载预览窗口') }, previewOpenCallback (vue) { console.log('已经加载完预览窗口') }, beforeOpenCallback (vue) { vue.printLoading = true console.log('打开之前') }, openCallback (vue) { vue.printLoading = false console.log('执行了打印') }, closeCallback (vue) { console.log('关闭了打印工具') } } }; } } ``` ![](2021-05-12-18-28-56.png) ### Print Async Url Perhaps, your URL is obtained asynchronously. You can use the following method HTML: ``` ``` JavaScript: ``` export default { data() { return { printObj: { asyncUrl (reslove, vue) { setTimeout(() => { reslove('http://localhost:8080/') }, 2000) }, previewBeforeOpenCallback (vue) { console.log('正在加载预览窗口') }, previewOpenCallback (vue) { console.log('已经加载完预览窗口') }, beforeOpenCallback (vue) { console.log('打开之前') }, openCallback (vue) { console.log('执行了打印') }, closeCallback (vue) { console.log('关闭了打印工具') } } }; } } ``` Finally, use `reslove()` to return your URL ## v-print API | Parame | Explain | Type | OptionalValue | DefaultValue | | ------------------------- | ------------------------------------------------------------------------------------------------------- | ------------- | ------------------------------------------------- | ------------ | | id | Range print ID, required value | String | — | — | | standard | Document type (Print local range only) | String | html5/loose/strict | html5 | | extraHead | ``Add DOM nodes in the node, and separate multiple nodes with `,` (Print local range only) | String | — | — | | extraCss | `` New CSS style sheet , and separate multiple nodes with `,`(Print local range only) | String | — | - | | popTitle | `` Content of label (Print local range only) | String | — | - | | openCallback | Call the successful callback function of the printing tool | Function | Returns the instance of `Vue` called at that time | - | | closeCallback | Close the callback function of printing tool success | Function | Returns the instance of `Vue` called at that time | - | | beforeOpenCallback | Callback function before calling printing tool | Function | Returns the instance of `Vue` called at that time | - | | url | Print the specified URL. (It is not allowed to set the ID at the same time) | string | - | - | | asyncUrl | Return URL through 'resolve()' and Vue | Function | - | - | | preview | Preview tool | Boolean | - | false | | previewTitle | Preview tool Title | String | - | '打印预览' | | previewPrintBtnLabel | The name of the preview tool button | String | - | '打印' | | zIndex | CSS of preview tool: z-index | String,Number | - | 20002 | | previewBeforeOpenCallback | Callback function before starting preview tool | Function | Returns the instance of `Vue` | - | | previewOpenCallback | Callback function after fully opening preview tool | Function | Returns the instance of `Vue` | - | | clickMounted | Click the callback function of the print button | Function | Returns the instance of `Vue` | - | License: [MIT](http://opensource.org/licenses/MIT)