capacitor-plugin-scanbot-sdk
Version:
Scanbot Document and Barcode Scanner SDK for Capacitor
181 lines (170 loc) • 6.71 kB
JavaScript
/// Auto-generated with ScanbotSDKCodegenV3. Modifications will be overwritten.
/// Generated from core/schemas/PDFConfigurationTypes.yaml
import { PartiallyConstructible } from '../utils/utils';
/**
PDF attributes.
*/
export class PdfAttributes extends PartiallyConstructible {
/** @param source {@displayType `DeepPartial<PdfAttributes>`} */
constructor(source = {}) {
super();
/**
Author.
Default is "Created with Scanbot SDK"
*/
this.author = 'Created with Scanbot SDK';
/**
Creator.
Default is ""
*/
this.creator = '';
/**
Title.
Default is ""
*/
this.title = '';
/**
Subject.
Default is ""
*/
this.subject = '';
/**
Keywords.
Default is ""
*/
this.keywords = '';
if (source.author !== undefined) {
this.author = source.author;
}
if (source.creator !== undefined) {
this.creator = source.creator;
}
if (source.title !== undefined) {
this.title = source.title;
}
if (source.subject !== undefined) {
this.subject = source.subject;
}
if (source.keywords !== undefined) {
this.keywords = source.keywords;
}
}
}
export const PageSizeValues = [
'LETTER',
'LEGAL',
'A3',
'A4',
'A5',
'B4',
'B5',
'EXECUTIVE',
'US4x6',
'US4x8',
'US5x7',
'COMM10',
'CUSTOM',
];
export const PageDirectionValues = ['PORTRAIT', 'LANDSCAPE', 'AUTO'];
export const PageFitValues = ['FIT_IN', 'FILL_IN', 'STRETCH', 'NONE'];
export const ResamplingMethodValues = ['NONE', 'NEAREST', 'LINEAR', 'CUBIC', 'LANCZOS4', 'AREA'];
/**
The parameters `pageSize`, `pageFit`, `dpi` and `resamplingMethod` interact in a complex way
when adding bitmap images (JPEG, PNG, or raw) to the PDF.
There are three cases to consider:
1. `pageSize` is `CUSTOM`:
in this case `dpi` is used as the conversion ratio to calculate both the physical page and
image sizes in inches from the bitmap dimensions. `resamplingMethod` is ignored.
2. `pageSize` is not `CUSTOM` AND `pageFit` is `NONE`:
in this case `dpi` is used as the conversion ratio to calculate only the physical image
size in inches from the bitmap dimensions. The image is centered onto the page.
`resamplingMethod` is ignored.
3. `pageSize` is not `CUSTOM` AND `pageFit` is not `NONE`:
in this case the page has a pre-determined physical size and we want to stretch the image to
fit the page in one of the ways described by `pageFit`. The image DPI is automatically
calculated for each image from the given physical page size, page fit setting and image
dimensions. There are two sub-cases to consider:
a. `resamplingMethod` is NONE OR the calculated DPI is less than or equal to `dpi`:
in this case the image is added to the PDF without resampling, which means that the image
rectangle is simply rescaled to fit into the page as specified by `pageFit` and
`pageSize`.
b. `resamplingMethod` is not NONE AND the calculated DPI is greater than `dpi`:
in this case the bitmap of the image is resampled to match `dpi` using the selected method
before adding it to the PDF. This will result in a bitmap that is smaller than the
original image and hence, the resulting PDF will be smaller in size.
*/
export class PdfConfiguration extends PartiallyConstructible {
/** @param source {@displayType `DeepPartial<PdfConfiguration>`} */
constructor(source = {}) {
super();
/**
Attributes.
*/
this.attributes = new PdfAttributes({});
/**
Physical size of the page. If CUSTOM, the page size will be set as the image size at given dpi.
Default is A4
*/
this.pageSize = 'A4';
/**
Page direction.
Default is PORTRAIT
*/
this.pageDirection = 'PORTRAIT';
/**
How to fit the image into the page. Only used if `pageSize` is not `CUSTOM`.
The image can either be stretched to fill the page,
in one of three ways, or centered on the page without stretching.
Default is FIT_IN
*/
this.pageFit = 'FIT_IN';
/**
The `dpi` parameter has two different meanings depending on the value of `pageSize` and
`pageFit`. If pageSize is CUSTOM or pageFit is NONE, then `dpi` is the conversion ratio used
to convert from units of pixels to physical inches when adding bitmap images (JPEG, PNG, or
raw) to the PDF. Otherwise, if `resamplingMethod` is not NONE, then the image is downscaled
if necessary (if the image after being fit to the page has a higher calculated DPI than
`dpi`) to match `dpi` before adding it to the PDF. Otherwise, the setting is ignored and the
calculated image DPI is used instead.
Default is 72
*/
this.dpi = 72;
/**
JPEG quality for images.
Applies if an image is added as a cv::Mat and therefore needs to be encoded.
Also applies if `resamplingMethod` not NONE and the image being added needs to be
downscaled. Otherwise, when adding JPEG files to the PDF, the files are copied directly into
the PDF and not re-encoded, which is many times faster and also preserves the quality of the
original.
Default is 80
*/
this.jpegQuality = 80;
/**
Resampling method.
Default is NONE
*/
this.resamplingMethod = 'NONE';
if (source.attributes !== undefined) {
this.attributes = new PdfAttributes(source.attributes);
}
if (source.pageSize !== undefined) {
this.pageSize = source.pageSize;
}
if (source.pageDirection !== undefined) {
this.pageDirection = source.pageDirection;
}
if (source.pageFit !== undefined) {
this.pageFit = source.pageFit;
}
if (source.dpi !== undefined) {
this.dpi = source.dpi;
}
if (source.jpegQuality !== undefined) {
this.jpegQuality = source.jpegQuality;
}
if (source.resamplingMethod !== undefined) {
this.resamplingMethod = source.resamplingMethod;
}
}
}
//# sourceMappingURL=PdfConfigurationTypes.js.map