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

com.adobe.pdfservices.operation.pdfjobs.jobs.PDFPropertiesJob 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 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.
 */

package com.adobe.pdfservices.operation.pdfjobs.jobs;

import com.adobe.pdfservices.operation.PDFServicesJob;
import com.adobe.pdfservices.operation.config.notifier.NotifierConfig;
import com.adobe.pdfservices.operation.exception.ServiceApiException;
import com.adobe.pdfservices.operation.internal.ExecutionContext;
import com.adobe.pdfservices.operation.internal.PDFServicesHelper;
import com.adobe.pdfservices.operation.internal.constants.CustomErrorMessages;
import com.adobe.pdfservices.operation.internal.constants.OperationHeaderInfoEndpointMap;
import com.adobe.pdfservices.operation.internal.dto.request.PlatformApiRequest;
import com.adobe.pdfservices.operation.internal.dto.request.pdfproperties.PDFPropertiesExternalAssetRequest;
import com.adobe.pdfservices.operation.internal.dto.request.pdfproperties.PDFPropertiesInternalAssetRequest;
import com.adobe.pdfservices.operation.internal.http.DefaultRequestHeaders;
import com.adobe.pdfservices.operation.internal.http.HttpResponse;
import com.adobe.pdfservices.operation.internal.util.ObjectUtil;
import com.adobe.pdfservices.operation.io.Asset;
import com.adobe.pdfservices.operation.io.CloudAsset;
import com.adobe.pdfservices.operation.io.ExternalAsset;
import com.adobe.pdfservices.operation.pdfjobs.params.pdfproperties.PDFPropertiesParams;

import java.util.List;
import java.util.UUID;


/**
 * A job that is used to fetch properties from an input PDF file. The properties are returned in a POJO.
 * 

* Sample Usage: *

{@code
 *             InputStream inputStream = new FileInputStream(new File("SOURCE_PATH"));
 *
 *             Credentials credentials = new ServicePrincipalCredentials(
 *                     System.getenv("PDF_SERVICES_CLIENT_ID"),
 *                     System.getenv("PDF_SERVICES_CLIENT_SECRET"));
 *
 *             PDFServices pdfServices = new PDFServices(credentials);
 *
 *             Asset asset = pdfServices.upload(inputStream, PDFServicesMediaType.PDF.getMediaType());
 *
 *             PDFPropertiesParams pdfPropertiesParams = PDFPropertiesParams.pdfPropertiesParamsBuilder()
 *                     .includePageLevelProperties()
 *                     .build();
 *             PDFPropertiesJob pdfPropertiesJob = new PDFPropertiesJob(asset)
 *                     .setParams(pdfPropertiesParams);
 *
 *             String location = pdfServices.submit(pdfPropertiesJob);
 *             PDFServicesResponse pdfServicesResponse = pdfServices.getJobResult(location, PDFPropertiesResult.class);
 *
 *             PDFProperties pdfProperties = pdfServicesResponse.getResult().getPdfProperties();
 * }
*/ public class PDFPropertiesJob extends PDFServicesJob { private Asset inputAsset; private PDFPropertiesParams pdfPropertiesParams; /** * Constructs a new {@code PDFPropertiesJob} instance. * * @param asset {@link Asset} object containing the input file; can not be null. */ public PDFPropertiesJob(Asset asset) { ObjectUtil.requireNonNull(asset, String.format(CustomErrorMessages.GENERIC_CAN_NOT_BE_NULL, "Input Asset")); this.inputAsset = asset; } @Override protected String process(ExecutionContext executionContext) throws ServiceApiException { return this.process(executionContext, null); } @Override protected String process(ExecutionContext executionContext, List notifyConfigList) throws ServiceApiException { this.validate(executionContext); PlatformApiRequest pdfPropertiesRequest = generatePlatformApiRequest(notifyConfigList); String xRequestId = UUID.randomUUID().toString(); HttpResponse response = PDFServicesHelper.submitJob(executionContext, pdfPropertiesRequest, xRequestId, OperationHeaderInfoEndpointMap.PDF_PROPERTIES); return response.getHeaders().get(DefaultRequestHeaders.LOCATION_HEADER_NAME); } /** * Set params for the job. * * @param pdfPropertiesParams {@link PDFPropertiesParams} object containing the properties to be fetched; can not * be null. * @return {@code PDFPropertiesJob} instance */ public PDFPropertiesJob setParams(PDFPropertiesParams pdfPropertiesParams) { ObjectUtil.requireNonNull(pdfPropertiesParams, String.format(CustomErrorMessages.GENERIC_CAN_NOT_BE_NULL, "PDF Properties parameters")); this.pdfPropertiesParams = pdfPropertiesParams; return this; } private PlatformApiRequest generatePlatformApiRequest(List notifyConfigList) { PlatformApiRequest pdfPropertiesRequest; if (this.inputAsset instanceof CloudAsset) { pdfPropertiesRequest = new PDFPropertiesInternalAssetRequest(( (CloudAsset) this.inputAsset ).getAssetId(), this.pdfPropertiesParams, notifyConfigList); } else { pdfPropertiesRequest = new PDFPropertiesExternalAssetRequest((ExternalAsset) this.inputAsset, this.pdfPropertiesParams, notifyConfigList); } return pdfPropertiesRequest; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy