14个版本 (7个稳定版)
1.0.10 | 2024年1月9日 |
---|---|
0.5.2 | 2023年6月15日 |
0.4.1 | 2023年6月10日 |
0.3.0 | 2023年6月3日 |
0.1.5 |
|
#41 in Windows APIs
每月121次下载
7MB
10K SLoC
包含 (DOS exe, 14MB) src/bin/sm
Tauri Plugin Printer
通过 Powershell 与打印机接口
给我买咖啡
安装
如果您从npm和crate.io包注册表安装,请确保两个包的主要版本和次要版本相同,否则API可能不匹配。
Crate: https://crates.io/crates/tauri-plugin-printer
安装最新版本
cargoadd tauri-plugin-printer
或者将以下内容添加到您的 Cargo.toml
以安装特定版本
src-tauri/Cargo.toml
[dependencies]
tauri-plugin-printer = { version = "1.0.10" }
您可以使用您首选的JavaScript包管理器安装JavaScript客户端绑定
pnpm add tauri-plugin-printer
# or
npm add tauri-plugin-printer
# or
yarn add tauri-plugin-printer
用法
首先您需要使用Tauri注册核心插件
src-tauri/src/main.rs
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_printer::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
之后,所有插件API都通过JavaScript客户端绑定可用
import {printers, print, print_file, jobs, job, restart_job, pause_job, resume_job, remove_job} from "tauri-plugin-printer";
// get list printers
const list = await printers()
// get printer by id
const list = await printers(id)
const data = [
{
type: 'image',
url: 'https://randomuser.me/api/portraits/men/43.jpg', // file path
position: 'center', // position of image: 'left' | 'center' | 'right'
width: '160px', // width of image in px; default: auto
height: '60px', // width of image in px; default: 50 or '50px'
},{
type: 'text', // 'text' | 'barCode' | 'qrCode' | 'image' | 'table
value: 'SAMPLE HEADING',
style: {fontWeight: "700", textAlign: 'center', fontSize: "24px"}
},{
type: 'text', // 'text' | 'barCode' | 'qrCode' | 'image' | 'table'
value: 'Secondary text',
style: {textDecoration: "underline", fontSize: "10px", textAlign: "center", color: "red"}
},{
type: 'barCode',
value: '023456789010',
height: 40, // height of barcode, applicable only to bar and QR codes
width: 2, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 12,
},{
type: 'qrCode',
value: 'https://github.com/Hubertformin/electron-pos-printer',
height: 55,
width: 55,
style: { margin: '10 20px 20 20px' }
},{
type: 'table',
// style the table
style: {border: '1px solid #ddd'},
// list of the columns to be rendered in the table header
tableHeader: ['Animal', 'Age'],
// multi dimensional array depicting the rows and columns of the table body
tableBody: [
['Cat', 2],
['Dog', 4],
['Horse', 12],
['Pig', 4],
],
// list of columns to be rendered in the table footer
tableFooter: ['Animal', 'Age'],
// custom style for the table header
tableHeaderStyle: { backgroundColor: '#000', color: 'white'},
// custom style for the table body
tableBodyStyle: {'border': '0.5px solid #ddd'},
// custom style for the table footer
tableFooterStyle: {backgroundColor: '#000', color: 'white'},
},{
type: 'table',
style: {border: '1px solid #ddd'}, // style the table
// list of the columns to be rendered in the table header
tableHeader: [{type: 'text', value: 'People'}, {type: 'image', path: path.join(__dirname, 'icons/animal.png')}],
// multi-dimensional array depicting the rows and columns of the table body
tableBody: [
[{type: 'text', value: 'Marcus'}, {type: 'image', url: 'https://randomuser.me/api/portraits/men/43.jpg'}],
[{type: 'text', value: 'Boris'}, {type: 'image', url: 'https://randomuser.me/api/portraits/men/41.jpg'}],
[{type: 'text', value: 'Andrew'}, {type: 'image', url: 'https://randomuser.me/api/portraits/men/23.jpg'}],
[{type: 'text', value: 'Tyresse'}, {type: 'image', url: 'https://randomuser.me/api/portraits/men/53.jpg'}],
],
// list of columns to be rendered in the table footer
tableFooter: [{type: 'text', value: 'People'}, 'Image'],
// custom style for the table header
tableHeaderStyle: { backgroundColor: 'red', color: 'white'},
// custom style for the table body
tableBodyStyle: {'border': '0.5px solid #ddd'},
// custom style for the table footer
tableFooterStyle: {backgroundColor: '#000', color: 'white'},
},
]
// print pdf file
await print(data, {
preview: true, // Set to true if you want to display the preview
page_size: {
width: 300, // unit px
heigth: 400 // unit px
};
print_setting: {
orientation: "landscape",
method: "simplex", // duplex | simplex | duplexshort
paper: "A4", // "A2" | "A3" | "A4" | "A5" | "A6" | "letter" | "legal" | "tabloid"
scale: "noscale", //"noscale" | "shrink" | "fit"
repeat: 1, // total copies,
// range: "1,2,3" // print page 1,2,3
range: { // print page 1 - 3
from: 1,
to: 3
}
}
})
// print pdf file
await print_file({
id: "idfromlistprinter",
path: 'F:/path/to/file.pdf',
file: BufferData,
print_setting: {
orientation: "landscape",
method: "simplex", // duplex | simplex | duplexshort
paper: "A4", // "A2" | "A3" | "A4" | "A5" | "A6" | "letter" | "legal" | "tabloid"
scale: "noscale", //"noscale" | "shrink" | "fit"
repeat: 1, // total copies
// range: "1,2,3" // print page 1,2,3
range: { // print page 1 - 3
from: 1,
to: 3
}
}
})
// get all printer jobs
await jobs()
// get printer jobs by printer id
await jobs(idprinter)
// get job by id
await job(id)
// restart all job
await restart_job()
// restart job by id
await restart_job(id)
// pause all job
await pause_job()
// pause job by id
await pause_job(id)
// resume all job
await resume_job()
// resume job by id
await resume_job(id)
// remove all job
await remove_job()
// resume job by id
await remove_job(id)
许可证
代码: (c) 2023 - 现在 Alfian Lensun.
适用于MIT。
依赖项
~22–62MB
~1M SLoC