All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.adobe.pdfservices.operation.internal.dto.request.protectpdf.ProtectPDFExternalAssetRequest Maven / Gradle / Ivy

Go to download

Adobe PDF Services SDK allows you to access RESTful APIs to create, convert, and manipulate PDFs within your applications. Older versions can be found under groupId: com.adobe.documentservices, artifactId: pdftools-sdk

There is a newer version: 4.2.0
Show newest version
/*
 * Copyright 2019 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.
 */

package com.adobe.pdfservices.operation.internal.dto.request.protectpdf;

import com.adobe.pdfservices.operation.config.notifier.NotifierConfig;
import com.adobe.pdfservices.operation.exception.SDKException;
import com.adobe.pdfservices.operation.internal.dto.request.PlatformApiRequest;
import com.adobe.pdfservices.operation.io.ExternalAsset;
import com.adobe.pdfservices.operation.pdfjobs.params.protectpdf.ContentEncryption;
import com.adobe.pdfservices.operation.pdfjobs.params.protectpdf.PasswordProtectParams;
import com.adobe.pdfservices.operation.pdfjobs.params.protectpdf.Permission;
import com.adobe.pdfservices.operation.pdfjobs.params.protectpdf.ProtectPDFParams;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.ArrayList;
import java.util.List;

@JsonInclude(JsonInclude.Include.NON_NULL)
public class ProtectPDFExternalAssetRequest implements PlatformApiRequest {

    @JsonProperty("input")
    private ExternalAsset inputExternalAsset;

    @JsonProperty("output")
    private ExternalAsset outputExternalAsset;

    @JsonProperty("params")
    private ProtectPDFParamsPayload protectPDFParamsPayload;

    @JsonProperty("notifiers")
    private List notifierConfigList;

    public ProtectPDFExternalAssetRequest(ExternalAsset inputExternalAsset, ProtectPDFParams protectPDFParams,
                                          List notifierConfigList) {
        this.inputExternalAsset = inputExternalAsset;
        this.notifierConfigList = notifierConfigList;

        PasswordProtection passwordProtection;
        String encryptionAlgorithm;
        String contentToEncrypt = ContentEncryption.ALL_CONTENT.getValue();
        List permissions = null;

        if (protectPDFParams instanceof PasswordProtectParams) {
            PasswordProtectParams passwordProtectParams = (PasswordProtectParams) protectPDFParams;
            passwordProtection = new PasswordProtection(passwordProtectParams.getUserPassword(),
                                                        passwordProtectParams.getOwnerPassword());
            encryptionAlgorithm = passwordProtectParams.getEncryptionAlgorithm().getValue();

            if (passwordProtectParams.getContentEncryption() != null)
                contentToEncrypt = passwordProtectParams.getContentEncryption().getValue();

            // if permissions are not null && permissions set is not empty
            if (passwordProtectParams.getPermissions() != null && !passwordProtectParams.getPermissions().getValues()
                    .isEmpty()) {
                permissions = new ArrayList<>();
                for (Permission permission : passwordProtectParams.getPermissions().getValues()) {
                    permissions.add(permission.getValue());
                }
            }
        } else {
            throw new SDKException("Please provide valid protect pdf params");
        }

        ProtectPDFParamsPayload protectPDFParamsPayload = new ProtectPDFParamsPayload();
        protectPDFParamsPayload.setPasswordProtection(passwordProtection);
        protectPDFParamsPayload.setPermissions(permissions);
        protectPDFParamsPayload.setContentToEncrypt(contentToEncrypt);
        protectPDFParamsPayload.setEncryptionAlgorithm(encryptionAlgorithm);
        this.protectPDFParamsPayload = protectPDFParamsPayload;

    }

    public ProtectPDFExternalAssetRequest setOutput(ExternalAsset outputExternalAsset) {
        this.outputExternalAsset = outputExternalAsset;
        return this;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy