8de98079ca
* https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf#page=335 * it has all the properties/methods defined in the spec * unimplemented methods are there but with an empty body to avoid exception when calling an undefined method * implement zoom, zoomType, layout, pageNum, ...
147 lines
3.7 KiB
JavaScript
147 lines
3.7 KiB
JavaScript
/* Copyright 2020 Mozilla Foundation
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
class PrintParams {
|
|
constructor(data) {
|
|
this.binaryOk = true;
|
|
this.bitmapDPI = 150;
|
|
this.booklet = {
|
|
binding: 0,
|
|
duplexMode: 0,
|
|
subsetFrom: 0,
|
|
subsetTo: -1,
|
|
};
|
|
this.colorOverride = 0;
|
|
this.colorProfile = "";
|
|
this.constants = Object.freeze({
|
|
bookletBindings: Object.freeze({
|
|
Left: 0,
|
|
Right: 1,
|
|
LeftTall: 2,
|
|
RightTall: 3,
|
|
}),
|
|
bookletDuplexMode: Object.freeze({
|
|
BothSides: 0,
|
|
FrontSideOnly: 1,
|
|
BasicSideOnly: 2,
|
|
}),
|
|
colorOverrides: Object.freeze({
|
|
auto: 0,
|
|
gray: 1,
|
|
mono: 2,
|
|
}),
|
|
fontPolicies: Object.freeze({
|
|
everyPage: 0,
|
|
jobStart: 1,
|
|
pageRange: 2,
|
|
}),
|
|
handling: Object.freeze({
|
|
none: 0,
|
|
fit: 1,
|
|
shrink: 2,
|
|
tileAll: 3,
|
|
tileLarge: 4,
|
|
nUp: 5,
|
|
booklet: 6,
|
|
}),
|
|
interactionLevel: Object.freeze({
|
|
automatic: 0,
|
|
full: 1,
|
|
silent: 2,
|
|
}),
|
|
nUpPageOrders: Object.freeze({
|
|
Horizontal: 0,
|
|
HorizontalReversed: 1,
|
|
Vertical: 2,
|
|
}),
|
|
printContents: Object.freeze({
|
|
doc: 0,
|
|
docAndComments: 1,
|
|
formFieldsOnly: 2,
|
|
}),
|
|
flagValues: Object.freeze({
|
|
applyOverPrint: 1,
|
|
applySoftProofSettings: 1 << 1,
|
|
applyWorkingColorSpaces: 1 << 2,
|
|
emitHalftones: 1 << 3,
|
|
emitPostScriptXObjects: 1 << 4,
|
|
emitFormsAsPSForms: 1 << 5,
|
|
maxJP2KRes: 1 << 6,
|
|
setPageSize: 1 << 7,
|
|
suppressBG: 1 << 8,
|
|
suppressCenter: 1 << 9,
|
|
suppressCJKFontSubst: 1 << 10,
|
|
suppressCropClip: 1 << 1,
|
|
suppressRotate: 1 << 12,
|
|
suppressTransfer: 1 << 13,
|
|
suppressUCR: 1 << 14,
|
|
useTrapAnnots: 1 << 15,
|
|
usePrintersMarks: 1 << 16,
|
|
}),
|
|
rasterFlagValues: Object.freeze({
|
|
textToOutline: 1,
|
|
strokesToOutline: 1 << 1,
|
|
allowComplexClip: 1 << 2,
|
|
preserveOverprint: 1 << 3,
|
|
}),
|
|
subsets: Object.freeze({
|
|
all: 0,
|
|
even: 1,
|
|
odd: 2,
|
|
}),
|
|
tileMarks: Object.freeze({
|
|
none: 0,
|
|
west: 1,
|
|
east: 2,
|
|
}),
|
|
usages: Object.freeze({
|
|
auto: 0,
|
|
use: 1,
|
|
noUse: 2,
|
|
}),
|
|
});
|
|
this.downloadFarEastFonts = false;
|
|
this.fileName = "";
|
|
this.firstPage = 0;
|
|
this.flags = 0;
|
|
this.fontPolicy = 0;
|
|
this.gradientDPI = 150;
|
|
this.interactive = 1;
|
|
this.lastPage = data.lastPage;
|
|
this.npUpAutoRotate = false;
|
|
this.npUpNumPagesH = 2;
|
|
this.npUpNumPagesV = 2;
|
|
this.npUpPageBorder = false;
|
|
this.npUpPageOrder = 0;
|
|
this.pageHandling = 0;
|
|
this.pageSubset = 0;
|
|
this.printAsImage = false;
|
|
this.printContent = 0;
|
|
this.printerName = "";
|
|
this.psLevel = 0;
|
|
this.rasterFlags = 0;
|
|
this.reversePages = false;
|
|
this.tileLabel = false;
|
|
this.tileMark = 0;
|
|
this.tileOverlap = 0;
|
|
this.tileScale = 1.0;
|
|
this.transparencyLevel = 75;
|
|
this.usePrinterCRD = 0;
|
|
this.useT1Conversion = 0;
|
|
}
|
|
}
|
|
|
|
export { PrintParams };
|