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

com.adobe.pdfservices.operation.internal.service.DocumentMergeService 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.

There is a newer version: 4.1.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.service;

import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;

import com.adobe.pdfservices.operation.internal.cpf.constants.CPFConstants;
import com.adobe.pdfservices.operation.internal.cpf.dto.request.platform.CPFContentAnalyzerRequests;
import com.adobe.pdfservices.operation.internal.cpf.dto.request.platform.Inputs;
import com.adobe.pdfservices.operation.internal.cpf.dto.request.platform.documentmerge.DocumentMergeParams;
import com.adobe.pdfservices.operation.internal.ExtensionMediaTypeMapping;
import com.adobe.pdfservices.operation.internal.FileRefImpl;
import com.adobe.pdfservices.operation.internal.InternalExecutionContext;
import com.adobe.pdfservices.operation.internal.api.CPFApi;
import com.adobe.pdfservices.operation.internal.http.DefaultRequestHeaders;
import com.adobe.pdfservices.operation.internal.http.HttpResponse;
import com.adobe.pdfservices.operation.pdfops.options.documentmerge.DocumentMergeOptions;

public class DocumentMergeService {

    private static final String INPUT_FORMAT_SPECIFIER = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";

    public static String mergeDocument(InternalExecutionContext context,
                                       FileRefImpl sourceFileRef,
                                       DocumentMergeOptions documentMergeOptions,
                                       String operation) throws FileNotFoundException {
        try {
            //create documentMerge Params
            DocumentMergeParams documentMergeParams=new DocumentMergeParams(documentMergeOptions.getOutputFormat().getFormat(),documentMergeOptions.getJsonDataForMerge());

            // Build cpf inputs with PasswordProtectParams
            Inputs inputs = Inputs.builder(INPUT_FORMAT_SPECIFIER)
                    .setParams(documentMergeParams)
                    .build();

            // Create CPFContentAnalyzerRequests
            CPFContentAnalyzerRequests cpfContentAnalyzerRequests
                    = new CPFContentAnalyzerRequests(CPFConstants.DocumentMerge.PAPI_ENGINE_REPO_ASSET_ID,
                    inputs, ExtensionMediaTypeMapping.getFromExtension(documentMergeOptions.getOutputFormat().toString()).getMediaType());

            // Prepare the sourceFileRefList
            List sourceFileRefList = new ArrayList<>();
            sourceFileRefList.add(sourceFileRef);

            HttpResponse response = CPFApi.cpfCreateOpsApi(context, cpfContentAnalyzerRequests,
                    sourceFileRefList, String.class, operation);

            return response.getHeaders().get(DefaultRequestHeaders.LOCATION_HEADER_NAME);
        } catch (FileNotFoundException fe) {
            throw fe;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy