mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-01-19 08:32:52 +08:00
feat(pdf-generator): add new pluign (#3268)
This commit is contained in:
parent
a74c894064
commit
3f1fa37a8d
87
src/@ionic-native/plugins/pdf-generator/index.ts
Normal file
87
src/@ionic-native/plugins/pdf-generator/index.ts
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
|
||||||
|
|
||||||
|
export interface PDFGeneratorOptions {
|
||||||
|
/**
|
||||||
|
* The document size, e.g., A2, A3, or A4.
|
||||||
|
* Only supported on iOS.
|
||||||
|
* The default is 'A4'.
|
||||||
|
*/
|
||||||
|
documentSize?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Option to change to landscape orientation.
|
||||||
|
* Default is 'portrait'.
|
||||||
|
*/
|
||||||
|
landscape?: 'landscape' | 'portrait';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The type to be returned, either 'share' or 'base64'.
|
||||||
|
* If 'share is chosen, the PDF is shared with the system capabilities.
|
||||||
|
* Default is 'base64'
|
||||||
|
*/
|
||||||
|
type?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The desired filename the resulting PDF should have.
|
||||||
|
* Default is 'default.pdf'
|
||||||
|
*/
|
||||||
|
fileName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Option to set the base URL for pathing.
|
||||||
|
* Default is 'null'.
|
||||||
|
*/
|
||||||
|
baseUrl?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name PDFGenerator
|
||||||
|
* @description
|
||||||
|
* Simple plugin to generate (offline) pdf. The plugin transforms HTML to PDF and also provide the mechanism to share the pdf to other apps like Mail, etc.
|
||||||
|
*
|
||||||
|
* @usage
|
||||||
|
* ```typescript
|
||||||
|
* import { PDFGenerator } from '@ionic-native/pdf-generator';
|
||||||
|
*
|
||||||
|
* constructor(private pdfGenerator: PDFGenerator) { }
|
||||||
|
*
|
||||||
|
* ...
|
||||||
|
*
|
||||||
|
* this.pdfGenerator.fromURL(url, options).then(base64String => console.log(base64String));
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
@Plugin({
|
||||||
|
pluginName: 'PDFGenerator',
|
||||||
|
plugin: 'cordova-pdf-generator',
|
||||||
|
pluginRef: 'cordova.plugins.pdf',
|
||||||
|
repo: 'https://github.com/cesarvr/pdf-generator',
|
||||||
|
platforms: ['Android', 'iOS']
|
||||||
|
})
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class PDFGenerator extends IonicNativePlugin {
|
||||||
|
/**
|
||||||
|
* Creates a PDF using a URL, it download the document into an in memory Webkit object, and renders it into a PDF.
|
||||||
|
* @param url {string} URL to create a PDF from
|
||||||
|
* @param options {PDFGeneratorOptions} options for PDF generation
|
||||||
|
* @returns {Promise<string>}
|
||||||
|
*/
|
||||||
|
@Cordova({ otherPromise: true })
|
||||||
|
fromURL(url: string, options?: PDFGeneratorOptions): Promise<string> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a PDF using string with the HTML representation, it download the document into an in memory Webkit object, and renders it into a PDF.
|
||||||
|
* @param data {string} HTML string representation to create a PDF from
|
||||||
|
* @param options {PDFGeneratorOptions} options for PDF generation
|
||||||
|
* @returns {Promise<string>}
|
||||||
|
*/
|
||||||
|
@Cordova({ otherPromise: true })
|
||||||
|
fromData(data: string, options?: PDFGeneratorOptions): Promise<string> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user