354 lines
12 KiB
Markdown
354 lines
12 KiB
Markdown
# vue-print-nb
|
||
|
||
This is a directive wrapper for printed, Simple, fast, convenient, light.
|
||
<!-- TOC -->
|
||
|
||
- [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)
|
||
|
||
<!-- /TOC -->
|
||
## 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
|
||
}
|
||
```
|
||
|
||
|
||

|
||
|
||
## 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:
|
||
|
||
```
|
||
<button v-print>Print the entire page</button>
|
||
```
|
||
|
||
|
||
### Print local range:
|
||
|
||
HTML:
|
||
```
|
||
<div id="printMe" style="background:red;">
|
||
<p>葫芦娃,葫芦娃</p>
|
||
<p>一根藤上七朵花 </p>
|
||
<p>小小树藤是我家 啦啦啦啦 </p>
|
||
<p>叮当当咚咚当当 浇不大</p>
|
||
<p> 叮当当咚咚当当 是我家</p>
|
||
<p> 啦啦啦啦</p>
|
||
<p>...</p>
|
||
</div>
|
||
|
||
<button v-print="'#printMe'">Print local range</button>
|
||
```
|
||
Pass in a string type directly
|
||
* `id`: ID of local print range
|
||
|
||
### Print local range More:
|
||
HTML:
|
||
```
|
||
<button v-print="printObj">Print local range</button><div id="loading" v-show="printLoading"></div>
|
||
|
||
<div id="printMe" style="background:red;">
|
||
<p>葫芦娃,葫芦娃</p>
|
||
<p>一根藤上七朵花 </p>
|
||
<p>小小树藤是我家 啦啦啦啦 </p>
|
||
<p>叮当当咚咚当当 浇不大</p>
|
||
<p> 叮当当咚咚当当 是我家</p>
|
||
<p> 啦啦啦啦</p>
|
||
<p>...</p>
|
||
</div>
|
||
```
|
||
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: '<meta http-equiv="Content-Language"content="zh-cn"/>',
|
||
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:
|
||
```
|
||
<button v-print="printObj">Print local range</button>
|
||
```
|
||
|
||
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:
|
||
```
|
||
<button v-print="printObj">Print local range</button>
|
||
```
|
||
|
||
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('关闭了打印工具')
|
||
}
|
||
}
|
||
};
|
||
}
|
||
}
|
||
```
|
||

|
||
|
||
|
||
#### Print local range Preview
|
||
HTML:
|
||
```
|
||
<button v-print="printObj">Print local range</button><div id="loading" v-show="printLoading"></div>
|
||
|
||
<div id="printMe" style="background:red;">
|
||
<p>葫芦娃,葫芦娃</p>
|
||
<p>一根藤上七朵花 </p>
|
||
<p>小小树藤是我家 啦啦啦啦 </p>
|
||
<p>叮当当咚咚当当 浇不大</p>
|
||
<p> 叮当当咚咚当当 是我家</p>
|
||
<p> 啦啦啦啦</p>
|
||
<p>...</p>
|
||
</div>
|
||
```
|
||
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: '<meta http-equiv="Content-Language"content="zh-cn"/>',
|
||
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('关闭了打印工具')
|
||
}
|
||
}
|
||
};
|
||
}
|
||
}
|
||
```
|
||
|
||

|
||
|
||
### Print Async Url
|
||
|
||
Perhaps, your URL is obtained asynchronously. You can use the following method
|
||
|
||
HTML:
|
||
```
|
||
<button v-print="printObj">Print local range</button>
|
||
```
|
||
|
||
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 | `<head></head>`Add DOM nodes in the node, and separate multiple nodes with `,` (Print local range only) | String | — | — |
|
||
| extraCss | `<link>` New CSS style sheet , and separate multiple nodes with `,`(Print local range only) | String | — | - |
|
||
| popTitle | `<title></title>` 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) |