mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-01-19 08:32:52 +08:00
feat(printer): add v0.8.0 support (#3225)
Migrated interface to v0.8.0 Tested locally ok
This commit is contained in:
parent
f4b03bcce4
commit
7d756394dd
@ -1,6 +1,25 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Cordova, CordovaCheck, IonicNativePlugin, Plugin, getPromise } from '@ionic-native/core';
|
import { Cordova, CordovaCheck, IonicNativePlugin, Plugin, getPromise } from '@ionic-native/core';
|
||||||
|
|
||||||
|
interface FontOptions {
|
||||||
|
name: string; // The name of the font family. Only supported on iOS
|
||||||
|
size: number; // The size of the font. Only supported on iOS, Android
|
||||||
|
italic: boolean; // Set to true to enable these font traits. Only supported on iOS
|
||||||
|
bold: boolean; // Set to true to enable these font traits. Only supported on iOS
|
||||||
|
align: 'left' | 'right' | 'center' | 'justified'; // Possible alignments are left, right, center and justified. Only supported on iOS
|
||||||
|
color: string; // The color of the font in hexa-decimal RGB format - "FF0000" means red. Only supported on iOS
|
||||||
|
}
|
||||||
|
|
||||||
|
interface HeaderFooterLabelOptions {
|
||||||
|
text: string; // The plain text to display. Use %ld to indicate where to insert the page index. For example "Page %ld" would result into "Page 1", "Page 2", .... Only supported on iOS
|
||||||
|
top: string; // The relative position where to place the label within the footer or header area. Only supported on iOS
|
||||||
|
right: string; // The relative position where to place the label within the footer or header area. Only supported on iOS
|
||||||
|
left: string; // The relative position where to place the label within the footer or header area. Only supported on iOS
|
||||||
|
bottom: string; // The relative position where to place the label within the footer or header area. Only supported on iOS
|
||||||
|
font: FontOptions; // The font attributes for the label. Only supported on iOS
|
||||||
|
showPageIndex: boolean; // Set to true if you want to display the page index. Only supported on iOS
|
||||||
|
}
|
||||||
|
|
||||||
export interface PrintOptions {
|
export interface PrintOptions {
|
||||||
/**
|
/**
|
||||||
* The name of the print job and the document
|
* The name of the print job and the document
|
||||||
@ -8,16 +27,22 @@ export interface PrintOptions {
|
|||||||
name?: string;
|
name?: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The network URL of the printer.
|
* The number of copies for the print task.
|
||||||
* Only supported on iOS.
|
* Only supported on iOS, Windows
|
||||||
*/
|
*/
|
||||||
printerId?: string;
|
copies?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Limits the pages to print even the document contains more.
|
||||||
|
* To skip the last n pages you can assign a negative value on iOS.
|
||||||
|
* Only supported on iOS, Android
|
||||||
|
*/
|
||||||
|
pageCount?: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specifies the duplex mode to use for the print job.
|
* Specifies the duplex mode to use for the print job.
|
||||||
* Either double-sided (duplex:true) or single-sided (duplex:false).
|
* Either double-sided on short site (duplex:'short'),
|
||||||
* Double-sided by default.
|
* double-sided on long site (duplex:'long') or single-sided (duplex:'none').
|
||||||
* Only supported on iOS
|
|
||||||
*/
|
*/
|
||||||
duplex?: boolean;
|
duplex?: boolean;
|
||||||
|
|
||||||
@ -25,18 +50,85 @@ export interface PrintOptions {
|
|||||||
* The orientation of the printed content, portrait or landscape
|
* The orientation of the printed content, portrait or landscape
|
||||||
* Portrait by default.
|
* Portrait by default.
|
||||||
*/
|
*/
|
||||||
landscape?: boolean;
|
orientation?: 'landscape' | 'portrait';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If your application only prints black text, setting this property to true can result in better performance in many cases.
|
* If your application only prints black text, setting this property to true can result in better performance in many cases.
|
||||||
* False by default.
|
* False by default.
|
||||||
*/
|
*/
|
||||||
grayscale?: boolean;
|
monochrome?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Size and position of the print view
|
* If your application only prints black text, setting this property to true can result in better performance in many cases.
|
||||||
|
* False by default.
|
||||||
|
* Only supported on iOS, Windows
|
||||||
*/
|
*/
|
||||||
bounds?: number[] | any;
|
photo?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set to false to disable downscaling the image to fit into the content aread.
|
||||||
|
* Only supported on Android
|
||||||
|
*/
|
||||||
|
autoFit?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The network URL to the printer.
|
||||||
|
* Only supported on iOS
|
||||||
|
*/
|
||||||
|
printer?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the maximum size of the content area.
|
||||||
|
* Only supported on iOS
|
||||||
|
*/
|
||||||
|
maxHeight?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the maximum size of the content area.
|
||||||
|
* Only supported on iOS
|
||||||
|
*/
|
||||||
|
maxWidth?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set to false to avoid margins.
|
||||||
|
* The margins for each printed page. Each printer might have its own minimum margins depends on media type and paper format.
|
||||||
|
*/
|
||||||
|
margin?: boolean | {
|
||||||
|
top?: string;
|
||||||
|
left?: string;
|
||||||
|
right?: string;
|
||||||
|
bottom?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
ui?: {
|
||||||
|
hideNumberOfCopies?: string; // Set to true to hide the control for the number of copies. Only supported on iOS
|
||||||
|
hidePaperFormat?: string; // Set to true to hide the control for the paper format. Only supported on iOS
|
||||||
|
top?: number; // The position of the printer picker. Only supported on iPad
|
||||||
|
left?: number; // The position of the printer picker. Only supported on iPad
|
||||||
|
height?: number; // The size of the printer picker. Only supported on iPad
|
||||||
|
width?: number; // The size of the printer picker. Only supported on iPad
|
||||||
|
};
|
||||||
|
|
||||||
|
paper?: {
|
||||||
|
width: string; // The dimensions of the paper – iOS will will try to choose a format which fits bests. Only supported on iOS
|
||||||
|
height: string; // The dimensions of the paper – iOS will will try to choose a format which fits bests. Only supported on iOS
|
||||||
|
name: string; // The name of the format like IsoA4 or Roll22Inch. https://docs.microsoft.com/en-us/uwp/api/windows.graphics.printing.printmediasize. Only supported on Windows
|
||||||
|
length: string; // On roll-fed printers you can decide when the printer cuts the paper. https://docs.microsoft.com/en-us/uwp/api/windows.graphics.printing.printmediasize. Only supported on iOs
|
||||||
|
};
|
||||||
|
|
||||||
|
font?: FontOptions;
|
||||||
|
|
||||||
|
header?: {
|
||||||
|
height: string; // The height of the header or footer on each page. Only supported on iOS
|
||||||
|
labels: string[]; // An array of labels to display. Only use if there are more then one. Only supported on iOS
|
||||||
|
label: HeaderFooterLabelOptions;
|
||||||
|
};
|
||||||
|
|
||||||
|
footer?: {
|
||||||
|
height: string; // The height of the header or footer on each page. Only supported on iOS
|
||||||
|
labels: string[]; // An array of labels to display. Only use if there are more then one. Only supported on iOS
|
||||||
|
label: HeaderFooterLabelOptions;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -54,10 +146,9 @@ export interface PrintOptions {
|
|||||||
*
|
*
|
||||||
* let options: PrintOptions = {
|
* let options: PrintOptions = {
|
||||||
* name: 'MyDocument',
|
* name: 'MyDocument',
|
||||||
* printerId: 'printer007',
|
|
||||||
* duplex: true,
|
* duplex: true,
|
||||||
* landscape: true,
|
* orientation: 'landscape',
|
||||||
* grayscale: true
|
* monochrome: true
|
||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
* this.printer.print(content, options).then(onSuccess, onError);
|
* this.printer.print(content, options).then(onSuccess, onError);
|
||||||
@ -85,14 +176,14 @@ export class Printer extends IonicNativePlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the printer service is available (iOS) or if printer services are installed and enabled (Android).
|
* Checks To check if printing is supported in general
|
||||||
* @return {Promise<any>} returns a promise that resolve with an object indicating whether printing is available, and providing the number of printers available
|
* @return {Promise<any>} returns a promise that resolve with an object indicating whether printing is available
|
||||||
*/
|
*/
|
||||||
@CordovaCheck()
|
@CordovaCheck()
|
||||||
check(): Promise<any> {
|
check(): Promise<any> {
|
||||||
return getPromise<any>((resolve: Function) => {
|
return getPromise<any>((resolve: Function) => {
|
||||||
Printer.getPlugin()
|
Printer.getPlugin()
|
||||||
.check((avail: boolean, count: any) => {
|
.canPrintItem((avail: boolean, count: any) => {
|
||||||
resolve({ avail, count });
|
resolve({ avail, count });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -117,7 +208,7 @@ export class Printer extends IonicNativePlugin {
|
|||||||
successIndex: 2,
|
successIndex: 2,
|
||||||
errorIndex: 4
|
errorIndex: 4
|
||||||
})
|
})
|
||||||
print(content: string | HTMLElement, options?: PrintOptions): Promise<any> {
|
print(content?: string | HTMLElement, options?: PrintOptions): Promise<any> {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user