com.adobe.pdfservices.operation.internal.service.DocumentMergeService Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pdfservices-sdk Show documentation
Show all versions of pdfservices-sdk Show documentation
Adobe PDF Services SDK allows you to access RESTful APIs to create, convert, and manipulate PDFs within your applications.
/*
* 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;
}
}
}