tauri_plugin_printer_sujin999/
lib.rsmod windows;
mod declare;
mod fsys;
use tauri::{
plugin::{Builder, TauriPlugin},
Runtime,
};
use std::env;
#[tauri::command(rename_all = "snake_case")]
fn create_temp_file(buffer_data: String, filename: String) -> String {
let dir = env::temp_dir();
let result = fsys::create_file_from_base64(buffer_data.as_str(), format!("{}{}", dir.display(),filename).as_str());
if result.is_ok() {
return format!("{}{}", dir.display(),filename);
}
return "".to_owned()
}
#[tauri::command(rename_all = "snake_case")]
fn remove_temp_file(filename: String) -> bool {
let dir = env::temp_dir();
let result = fsys::remove_file(format!("{}{}", dir.display(),filename).as_str());
if result.is_ok() {
return true;
}
return false
}
#[tauri::command]
fn get_printers() -> String {
if cfg!(windows) {
return windows::get_printers();
}
return "Unsupported OS".to_string();
}
#[tauri::command(rename_all = "snake_case")]
fn get_printers_by_name(printername: String) -> String {
if cfg!(windows) {
return windows::get_printers_by_name(printername);
}
return "Unsupported OS".to_string();
}
#[tauri::command(rename_all = "snake_case")]
fn print_pdf(
id: String,
path: String,
printer_setting: String,
remove_after_print: bool
) -> String {
if cfg!(windows) {
let options = declare::PrintOptions{
id,
path,
print_setting: printer_setting,
remove_after_print: remove_after_print
};
return windows::print_pdf(options);
}
return "Unsupported OS".to_string();
}
#[tauri::command(rename_all = "snake_case")]
fn get_jobs(printername: String) -> String {
if cfg!(windows) {
return windows::get_jobs(printername);
}
return "Unsupported OS".to_string();
}
#[tauri::command(rename_all = "snake_case")]
fn get_jobs_by_id(printername: String, jobid: String) -> String {
if cfg!(windows) {
return windows::get_jobs_by_id(printername, jobid);
}
return "Unsupported OS".to_string();
}
#[tauri::command(rename_all = "snake_case")]
fn resume_job(printername: String, jobid: String) -> String {
if cfg!(windows) {
return windows::resume_job(printername,jobid);
}
return "Unsupported OS".to_string();
}
#[tauri::command(rename_all = "snake_case")]
fn restart_job(printername: String, jobid: String) -> String {
if cfg!(windows) {
return windows::restart_job(printername,jobid);
}
return "Unsupported OS".to_string();
}
#[tauri::command(rename_all = "snake_case")]
fn pause_job(printername: String, jobid: String) -> String {
if cfg!(windows) {
return windows::pause_job(printername, jobid);
}
return "Unsupported OS".to_string();
}
#[tauri::command(rename_all = "snake_case")]
fn remove_job(printername: String, jobid: String) -> String {
if cfg!(windows) {
return windows::remove_job(printername, jobid);
}
return "Unsupported OS".to_string();
}
pub fn init<R: Runtime>() -> TauriPlugin<R> {
if cfg!(windows) {
windows::init_windows();
}
Builder::new("printer")
.invoke_handler(tauri::generate_handler![
create_temp_file,
remove_temp_file,
get_printers,
get_printers_by_name,
print_pdf,
get_jobs,
get_jobs_by_id,
resume_job,
restart_job,
pause_job,
remove_job
])
.build()
}