enhanced-printer 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -50,6 +50,16 @@ async function printPDF() {
50
50
  printPDF();
51
51
  ```
52
52
 
53
+ ## Available Methods
54
+
55
+ - `print()` - Print PDF with custom settings
56
+ - `getPrinters()` - Get list of available printers
57
+ - `getDefaultPrinter()` - Get default printer name
58
+ - `getJobs()` - Get all print jobs with custom names
59
+ - `getPrinterJobs()` - Get all print jobs (alias for getJobs)
60
+ - `getJobStatus()` - Get status of specific job by ID
61
+ - `cancelJob()` - Cancel a print job
62
+
53
63
  ## API Reference
54
64
 
55
65
  ### `print(options: PrintOptions): Promise<PrintResult>`
package/lib/index.d.ts CHANGED
@@ -10,5 +10,6 @@
10
10
  * - Automatic use of printer defaults when settings not specified
11
11
  * - Query job status and printer information
12
12
  */
13
- export { print, getPrinters, getDefaultPrinter, getJobStatus, getPrinterJobs, cancelJob } from './print-manager';
13
+ export { print, getPrinters, getDefaultPrinter, getJobStatus, getPrinterJobs, getJobs, // New method for getting jobs with custom names
14
+ cancelJob } from './print-manager';
14
15
  export { PrintOptions, PrintResult, PrinterInfo, JobInfo } from './types';
package/lib/index.js CHANGED
@@ -12,11 +12,12 @@
12
12
  * - Query job status and printer information
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.cancelJob = exports.getPrinterJobs = exports.getJobStatus = exports.getDefaultPrinter = exports.getPrinters = exports.print = void 0;
15
+ exports.cancelJob = exports.getJobs = exports.getPrinterJobs = exports.getJobStatus = exports.getDefaultPrinter = exports.getPrinters = exports.print = void 0;
16
16
  var print_manager_1 = require("./print-manager");
17
17
  Object.defineProperty(exports, "print", { enumerable: true, get: function () { return print_manager_1.print; } });
18
18
  Object.defineProperty(exports, "getPrinters", { enumerable: true, get: function () { return print_manager_1.getPrinters; } });
19
19
  Object.defineProperty(exports, "getDefaultPrinter", { enumerable: true, get: function () { return print_manager_1.getDefaultPrinter; } });
20
20
  Object.defineProperty(exports, "getJobStatus", { enumerable: true, get: function () { return print_manager_1.getJobStatus; } });
21
21
  Object.defineProperty(exports, "getPrinterJobs", { enumerable: true, get: function () { return print_manager_1.getPrinterJobs; } });
22
+ Object.defineProperty(exports, "getJobs", { enumerable: true, get: function () { return print_manager_1.getJobs; } });
22
23
  Object.defineProperty(exports, "cancelJob", { enumerable: true, get: function () { return print_manager_1.cancelJob; } });
@@ -8,6 +8,6 @@ export declare function getJobIdByName(printerName: string, jobName: string, max
8
8
  */
9
9
  export declare function getJobInfo(printerName: string, jobId: number): Promise<JobInfo | null>;
10
10
  /**
11
- * Gets all print jobs for a printer
11
+ * Gets all print jobs for a printer with enhanced details
12
12
  */
13
13
  export declare function getAllJobs(printerName: string): Promise<JobInfo[]>;
@@ -27,7 +27,7 @@ async function getJobInfo(printerName, jobId) {
27
27
  const script = `
28
28
  Get-PrintJob -PrinterName "${escapePowerShellString(printerName)}" |
29
29
  Where-Object {$_.Id -eq ${jobId}} |
30
- Select-Object Id, DocumentName, JobStatus, TotalPages, Size |
30
+ Select-Object Id, DocumentName, JobStatus, TotalPages, Size, UserName, SubmittedTime |
31
31
  ConvertTo-Json
32
32
  `;
33
33
  try {
@@ -39,10 +39,13 @@ async function getJobInfo(printerName, jobId) {
39
39
  return {
40
40
  jobId: result.Id,
41
41
  jobName: result.DocumentName || '',
42
+ customJobName: result.DocumentName || '', // Custom name you provided during print
42
43
  printerName: printerName,
43
44
  status: result.JobStatus || 'Unknown',
44
45
  pages: result.TotalPages || 0,
45
- size: result.Size
46
+ size: result.Size,
47
+ userName: result.UserName,
48
+ submittedTime: result.SubmittedTime
46
49
  };
47
50
  }
48
51
  catch (error) {
@@ -50,12 +53,12 @@ async function getJobInfo(printerName, jobId) {
50
53
  }
51
54
  }
52
55
  /**
53
- * Gets all print jobs for a printer
56
+ * Gets all print jobs for a printer with enhanced details
54
57
  */
55
58
  async function getAllJobs(printerName) {
56
59
  const script = `
57
60
  Get-PrintJob -PrinterName "${escapePowerShellString(printerName)}" |
58
- Select-Object Id, DocumentName, JobStatus, TotalPages, Size |
61
+ Select-Object Id, DocumentName, JobStatus, TotalPages, Size, UserName, SubmittedTime |
59
62
  ConvertTo-Json
60
63
  `;
61
64
  try {
@@ -66,10 +69,13 @@ async function getAllJobs(printerName) {
66
69
  return jobs.map((job) => ({
67
70
  jobId: job.Id,
68
71
  jobName: job.DocumentName || '',
72
+ customJobName: job.DocumentName || '', // Custom name you provided during print
69
73
  printerName: printerName,
70
74
  status: job.JobStatus || 'Unknown',
71
75
  pages: job.TotalPages || 0,
72
- size: job.Size
76
+ size: job.Size,
77
+ userName: job.UserName,
78
+ submittedTime: job.SubmittedTime
73
79
  }));
74
80
  }
75
81
  catch (error) {
@@ -19,6 +19,11 @@ export declare function getJobStatus(printerName: string, jobId: number): Promis
19
19
  * Gets all print jobs for a specific printer
20
20
  */
21
21
  export declare function getPrinterJobs(printerName: string): Promise<JobInfo[]>;
22
+ /**
23
+ * Gets all print jobs with custom job names for a specific printer
24
+ * This is an alias for getPrinterJobs with clearer intent
25
+ */
26
+ export declare function getJobs(printerName: string): Promise<JobInfo[]>;
22
27
  /**
23
28
  * Cancels a print job
24
29
  */
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.print = print;
7
4
  exports.getPrinters = getPrinters;
8
5
  exports.getDefaultPrinter = getDefaultPrinter;
9
6
  exports.getJobStatus = getJobStatus;
10
7
  exports.getPrinterJobs = getPrinterJobs;
8
+ exports.getJobs = getJobs;
11
9
  exports.cancelJob = cancelJob;
12
- const pdf_to_printer_1 = __importDefault(require("pdf-to-printer"));
10
+ const pdf_to_printer_1 = require("pdf-to-printer");
13
11
  const uuid_1 = require("uuid");
14
12
  const child_process_1 = require("child_process");
15
13
  const job_tracker_1 = require("./job-tracker");
@@ -68,7 +66,7 @@ async function print(options) {
68
66
  // Set the document name for job tracking
69
67
  printOptions.win32 = ['-print-settings', `${jobName}`];
70
68
  // Print the document
71
- await pdf_to_printer_1.default.print(options.filePath, printOptions);
69
+ await (0, pdf_to_printer_1.print)(options.filePath, printOptions);
72
70
  // Try to retrieve job ID
73
71
  const jobId = await (0, job_tracker_1.getJobIdByName)(options.printerName, jobName);
74
72
  return {
@@ -128,6 +126,13 @@ async function getJobStatus(printerName, jobId) {
128
126
  async function getPrinterJobs(printerName) {
129
127
  return (0, job_tracker_1.getAllJobs)(printerName);
130
128
  }
129
+ /**
130
+ * Gets all print jobs with custom job names for a specific printer
131
+ * This is an alias for getPrinterJobs with clearer intent
132
+ */
133
+ async function getJobs(printerName) {
134
+ return (0, job_tracker_1.getAllJobs)(printerName);
135
+ }
131
136
  /**
132
137
  * Cancels a print job
133
138
  */
package/lib/types.d.ts CHANGED
@@ -62,8 +62,10 @@ export interface PrintResult {
62
62
  export interface JobInfo {
63
63
  /** Job ID in the print queue */
64
64
  jobId: number;
65
- /** Document name */
65
+ /** Document name from Windows (same as customJobName) */
66
66
  jobName: string;
67
+ /** Custom job name provided during print (same as jobName/DocumentName) */
68
+ customJobName: string;
67
69
  /** Name of the printer */
68
70
  printerName: string;
69
71
  /** Current status of the job */
@@ -72,4 +74,8 @@ export interface JobInfo {
72
74
  pages: number;
73
75
  /** Size in bytes */
74
76
  size?: number;
77
+ /** User who submitted the job */
78
+ userName?: string;
79
+ /** Time when job was submitted */
80
+ submittedTime?: string;
75
81
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "enhanced-printer",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Advanced PDF printing library with job tracking, custom page sizes, and tray selection for Node.js and Electron",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",