UNPKG

@adobe/pdfservices-node-sdk

Version:

The Adobe PDF Services Node.js SDK provides APIs for creating, combining, exporting and manipulating PDFs.

130 lines 5.92 kB
"use strict"; /* * Copyright 2024 Adobe * All Rights Reserved. * * NOTICE: Adobe permits you to use, modify, and distribute this file in * accordance with the terms of the Adobe license agreement accompanying * it. If you have received this file from a source other than Adobe, * then your use, modification, or distribution of it requires the prior * written permission of Adobe. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.PDFElectronicSealJob = void 0; const uuid_1 = require("uuid"); const PDFServicesJob_1 = require("./PDFServicesJob"); const ValidationUtil_1 = require("../../internal/util/ValidationUtil"); const OperationHeaderInfoEndpointMap_1 = require("../../internal/constants/OperationHeaderInfoEndpointMap"); const DefaultRequestHeaders_1 = require("../../internal/http/DefaultRequestHeaders"); const CloudAsset_1 = require("../../io/CloudAsset"); const PDFElectronicSealInternalAssetRequest_1 = require("../../internal/dto/request/electronicseal/PDFElectronicSealInternalAssetRequest"); const PDFServicesHelper_1 = require("../../internal/PDFServicesHelper"); const PDFElectronicSealExternalAssetRequest_1 = require("../../internal/dto/request/electronicseal/PDFElectronicSealExternalAssetRequest"); /** * A job that allows clients to apply an electronic seal onto various PDF documents such as * agreements, invoices, and more. * <p> * To know more about PDF Electronic Seal, please see the * <a href="http://www.adobe.com/go/dc_eseal_overview_doc" target="_blank">documentation</a>. * <p> * * @example * Sample Usage: * ```js * const readStream = fs.createReadStream("SOURCE_PATH") * * const credentials = new ServicePrincipalCredentials({ * clientId: process.env.PDF_SERVICES_CLIENT_ID, * clientSecret: process.env.PDF_SERVICES_CLIENT_SECRET * }); * * const pdfServices = new PDFServices({credentials}); * * const sourceFileAsset = await pdfServices.upload({ * readStream: readStream, * mimeType: MimeType.PDF * }); * * const certificateCredentials = new CSCCredential({ * providerName: "<PROVIDER_NAME>", * credentialId: "<CREDENTIAL_ID>", * pin: "<PIN>", * authorizationContext: new CSCAuthContext({accessToken: "<ACCESS_TOKEN>"}) * }); * * const sealFieldName = "Signature1"; * const sealFieldOptions = new FieldOptions({ * fieldName: sealFieldName, * pageNumber: 1, * location: new FieldLocation({ * left: 150, * top: 250, * right: 350, * bottom: 200 * }) * }); * * const params = new PDFElectronicSealParams({ * certificateCredentials, * sealFieldOptions, * }); * * const job = new PDFElectronicSealJob({ * inputAsset: sourceFileAsset, * params, * }); * * const pollingURL = await pdfServices.submit({job}); * * const pdfServicesResponse = await pdfServices.getJobResult({ * pollingURL, * resultType: PDFElectronicSealResult * }); * * const resultAsset = pdfServicesResponse.result.asset; * const streamAsset = await pdfServices.getContent({asset: resultAsset}); * ``` */ class PDFElectronicSealJob extends PDFServicesJob_1.PDFServicesJob { /** * Constructs a new `PDFElectronicSealJob` instance. * * @param params The parameters for constructing an instance of `PDFElectronicSealJob`. * @param params.inputAsset The input asset for the job. Cannot be undefined. * @param [params.sealImageAsset] {@link Asset} object representing the seal image. * @param params.params {@link PDFElectronicSealParams} object to specify the electronic seal parameters. * Cannot be undefined. * @param [params.outputAsset] - {@link Asset} object representing the output asset. */ constructor(params) { super(); ValidationUtil_1.ValidationUtil.validatePDFElectronicSealJobParams(params); this._inputDocumentAsset = params.inputAsset; this._sealImageAsset = params.sealImageAsset; this._pdfElectronicSealParams = params.params; this._outputAsset = params.outputAsset; } /** * @hidden */ async process(executionContext, notifierConfigList) { this.validate(executionContext); const pdfElectronicSealRequest = this.generatePDFServicesAPIRequest(notifierConfigList), xRequestId = (0, uuid_1.v4)(), response = await PDFServicesHelper_1.PDFServicesHelper.submitJob(executionContext, pdfElectronicSealRequest, xRequestId, OperationHeaderInfoEndpointMap_1.OperationHeaderInfoEndpointMap.E_SEAL); return response.headers[DefaultRequestHeaders_1.DefaultRequestHeaders.LOCATION_HEADER_NAME]; } generatePDFServicesAPIRequest(notifierConfigList) { let pdfElectronicSealRequest; const sealImageAssetId = this._sealImageAsset ? this._sealImageAsset.assetId : undefined; if (this._inputDocumentAsset instanceof CloudAsset_1.CloudAsset) { pdfElectronicSealRequest = new PDFElectronicSealInternalAssetRequest_1.PDFElectronicSealInternalAssetRequest(this._inputDocumentAsset.assetId, this._pdfElectronicSealParams, sealImageAssetId, notifierConfigList); } else { pdfElectronicSealRequest = new PDFElectronicSealExternalAssetRequest_1.PDFElectronicSealExternalAssetRequest(this._inputDocumentAsset, this._pdfElectronicSealParams, this._sealImageAsset, this._outputAsset, notifierConfigList); } return pdfElectronicSealRequest; } } exports.PDFElectronicSealJob = PDFElectronicSealJob; //# sourceMappingURL=PDFElectronicSealJob.js.map