Skip to main content

tauri_plugin_printer/
models.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Default, Deserialize, Serialize)]
4pub struct PrinterItem {
5    pub id: String,
6    pub name: String,
7    pub driver_name: Option<String>,
8    pub job_count: Option<i32>,
9    pub print_processor: Option<String>,
10    pub port_name: Option<String>,
11    pub share_name: Option<String>,
12    pub computer_name: Option<String>,
13    pub printer_status: Option<i32>,
14    pub shared: bool,
15    pub printer_type: Option<i32>,
16    pub priority: Option<i32>,
17    pub is_default: bool,
18}
19
20#[derive(Debug, Deserialize)]
21#[cfg(target_os = "windows")]
22pub(crate) struct PrinterRaw {
23    #[serde(rename = "Name")]
24    pub name: Option<String>,
25    #[serde(rename = "DriverName")]
26    pub driver_name: Option<String>,
27    #[serde(rename = "JobCount")]
28    pub job_count: Option<i32>,
29    #[serde(rename = "PrintProcessor")]
30    pub print_processor: Option<String>,
31    #[serde(rename = "PortName")]
32    pub port_name: Option<String>,
33    #[serde(rename = "ShareName")]
34    pub share_name: Option<String>,
35    #[serde(rename = "ComputerName")]
36    pub computer_name: Option<String>,
37    #[serde(rename = "PrinterStatus")]
38    pub printer_status: Option<i32>,
39    #[serde(rename = "Shared")]
40    pub shared: Option<bool>,
41    #[serde(rename = "Type")]
42    pub printer_type: Option<i32>,
43    #[serde(rename = "Priority")]
44    pub priority: Option<i32>,
45    #[serde(rename = "IsDefault")]
46    pub is_default: Option<bool>,
47}
48
49#[derive(Debug, Clone, Default, Deserialize, Serialize)]
50pub struct PrintJob {
51    pub id: String,
52    pub job_id: i32,
53    pub document_name: Option<String>,
54    pub total_pages: Option<i32>,
55    pub position: Option<i32>,
56    pub size: Option<i64>,
57    pub username: Option<String>,
58    pub pages_printed: Option<i32>,
59    pub job_time: Option<i64>,
60    pub computer_name: Option<String>,
61    pub data_type: Option<String>,
62    pub printer_name: String,
63    pub priority: Option<i32>,
64    pub submitted_time: Option<String>,
65    pub job_status: i32,
66}
67
68#[derive(Debug, Deserialize)]
69#[cfg(target_os = "windows")]
70pub(crate) struct PrintJobRaw {
71    #[serde(rename = "DocumentName")]
72    pub document_name: Option<String>,
73    #[serde(rename = "Id")]
74    pub id: Option<i32>,
75    #[serde(rename = "TotalPages")]
76    pub total_pages: Option<i32>,
77    #[serde(rename = "Position")]
78    pub position: Option<i32>,
79    #[serde(rename = "Size")]
80    pub size: Option<i64>,
81    #[serde(rename = "UserName")]
82    pub username: Option<String>,
83    #[serde(rename = "PagesPrinted")]
84    pub pages_printed: Option<i32>,
85    #[serde(rename = "JobTime")]
86    pub job_time: Option<i64>,
87    #[serde(rename = "ComputerName")]
88    pub computer_name: Option<String>,
89    #[serde(rename = "Datatype")]
90    pub data_type: Option<String>,
91    #[serde(rename = "PrinterName")]
92    pub printer_name: Option<String>,
93    #[serde(rename = "Priority")]
94    pub priority: Option<i32>,
95    #[serde(rename = "SubmittedTime")]
96    pub submitted_time: Option<String>,
97    #[serde(rename = "JobStatus")]
98    pub job_status: Option<i32>,
99}
100
101#[derive(Debug, Clone, Default, Deserialize, Serialize)]
102pub struct PrinterCapabilities {
103    pub printer_name: String,
104    pub color: Option<bool>,
105    pub collate: Option<bool>,
106    pub duplexing_mode: Option<String>,
107    pub paper_size: Option<String>,
108}
109
110#[derive(Debug, Deserialize)]
111#[cfg(target_os = "windows")]
112pub(crate) struct PrinterCapabilitiesRaw {
113    #[serde(rename = "PrinterName")]
114    pub printer_name: Option<String>,
115    #[serde(rename = "Color")]
116    pub color: Option<bool>,
117    #[serde(rename = "Collate")]
118    pub collate: Option<bool>,
119    #[serde(rename = "DuplexingMode")]
120    pub duplexing_mode: Option<String>,
121    #[serde(rename = "PaperSize")]
122    pub paper_size: Option<String>,
123}
124
125#[derive(Debug, Clone, Default, Deserialize, Serialize)]
126pub struct PrintResult {
127    pub success: bool,
128    pub message: String,
129}
130
131#[derive(Debug, Deserialize)]
132pub(crate) struct IdPayload {
133    pub value: String,
134}
135
136#[derive(Debug, Deserialize)]
137#[serde(rename_all = "camelCase")]
138pub(crate) struct PrinterNamePayload {
139    pub printer_name: String,
140}
141
142#[derive(Debug, Deserialize)]
143#[serde(rename_all = "camelCase")]
144pub(crate) struct JobPayload {
145    pub printer_name: String,
146    pub job_id: i32,
147}
148
149#[derive(Debug, Deserialize)]
150#[serde(rename_all = "camelCase")]
151pub(crate) struct PrintPdfPayload {
152    pub printer_name: Option<String>,
153    pub path: String,
154    #[serde(default)]
155    pub settings: String,
156    #[serde(default)]
157    pub remove_after_print: bool,
158}
159
160#[derive(Debug, Deserialize)]
161#[serde(rename_all = "camelCase")]
162pub(crate) struct PrintPdfDataPayload {
163    pub printer_name: Option<String>,
164    pub data: String,
165    #[serde(default)]
166    pub settings: String,
167}