import { PDFServicesJob } from "./PDFServicesJob"; import { Asset } from "../../io/Asset"; import { ProtectPDFParams } from "../params/protectpdf/ProtectPDFParams"; import { ExecutionContext } from "../../internal/ExecutionContext"; import { NotifierConfig } from "../../config/notifier/NotifierConfig"; /** * A job that is used for securing PDF document with password(s). * The password(s) is used for encrypting the PDF document and setting the restriction on certain features * like printing, editing and copying in the PDF document. *

* The supported algorithm for encrypting the PDF document are listed here. The {@link EncryptionAlgorithm} enum can * be used to set the * encryption algorithm. *

*

* For AES-128 encryption the password supports LATIN-I characters only. * For AES-256 encryption the password supports Unicode character set. * *

* * @example * Sample Usage: * ```js * const readStream = fs.createReadStream(""); * * const pdfServices = new PDFServices({ * credentials: new ServicePrincipalCredentials({ * clientId: process.env.PDF_SERVICES_CLIENT_ID, * clientSecret: process.env.PDF_SERVICES_CLIENT_SECRET * }) * }); * * const inputAsset = await pdfServices.upload({ * readStream, * mimeType: MimeType.PDF * }); * * const permissions = new Permissions({ * permissions: [ * Permission.PRINT_LOW_QUALITY, * Permission.EDIT_DOCUMENT_ASSEMBLY, * Permission.COPY_CONTENT * ] * }); * * const params = new ProtectPDFParams({ * userPassword: "openpassword", * ownerPassword: "permissionspassword", * permissions: permissions, * encryptionAlgorithm: EncryptionAlgorithm.AES_256, * contentEncryption: ContentEncryption.ALL_CONTENT_EXCEPT_METADATA, * }); * * const job = new ProtectPDFJob({inputAsset, params}); * * const pollingURL = await pdfServices.submit({job}); * * const pdfServicesResponse = await pdfServices.getJobResult({ * pollingURL, * resultType: ProtectPDFResult * }); * * const resultAsset = pdfServicesResponse.result.asset; * const streamAsset = await pdfServices.getContent({asset: resultAsset}); * ``` */ export declare class ProtectPDFJob extends PDFServicesJob { private readonly _inputAsset; private readonly _outputAsset?; private readonly _params; /** * Constructs a new `ProtectPDFJob` instance. * @param params The parameters for constructing an instance of `ProtectPDFJob`. * @param params.inputAsset The input asset for the job. Cannot be undefined. * @param params.params {@link ProtectPDFParams} object to specify the protection parameters. * @param [params.outputAsset] {@link Asset} object representing the output asset. * @remarks External assets can be set as output only when input is external asset as well. */ constructor(params: { inputAsset: Asset; params: ProtectPDFParams; outputAsset?: Asset; }); /** * @hidden */ process(executionContext: ExecutionContext, notifierConfigList?: NotifierConfig[]): Promise; private generatePDFServicesAPIRequest; }