Suddivisione funzione:
-
Imposta endpoint API e payload
-
Costruisce l'URL dell'API utilizzando
endPoint
fornito e unBUCKET
predefinito. -
Definisce una stringa JSON (
usageRights
) che specifica i diritti da applicare, ad esempio:- Commenti
- File incorporati
- Compilazione modulo
- Esportazione dati modulo
-
-
Carica il file PDF
- Recupera il file
withoutusagerights.pdf
dalla directorypdffiles
. - Registra un errore e chiude se il file non viene trovato.
- Recupera il file
-
Preparare la richiesta HTTP
-
Legge il file PDF in una matrice di byte.
-
Utilizza
MultipartEntityBuilder
per creare una richiesta in più parti contenente:- Il file PDF come corpo binario.
- JSON
usageRights
come corpo del testo.
-
Imposta una richiesta HTTP
POST
con intestazioni:Authorization: Bearer <accessToken>
per autenticazione.X-Adobe-Accept-Experimental: 1
(probabilmente richiesto per compatibilità API).
-
-
Invia la richiesta e gestisci la risposta
- Esegue la richiesta HTTP utilizzando
httpClient.execute(httpPost)
. - Legge la risposta (che dovrebbe essere il PDF aggiornato a cui sono applicati i diritti di utilizzo).
- Scrive il contenuto PDF ricevuto in "ReaderExtended.pdf" in
SAVE_LOCATION
.
- Esegue la richiesta HTTP utilizzando
-
Gestione e pulizia errori
- Rileva e registra eventuali errori
IOException
. - Verifica che tutte le risorse (flussi, client HTTP, risposta) siano chiuse correttamente nel blocco
finally
.
- Rileva e registra eventuali errori
Di seguito è riportato il codice main.java che richiama la funzione applyUsageRights
package com.aemformscs.communicationapi;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
public static void main(String[] args) {
try {
String accessToken = new AccessTokenService().getAccessToken();
DocumentGeneration docGen = new DocumentGeneration();
docGen.applyUsageRights(accessToken, "/adobe/document/assure/usagerights");
// Uncomment as needed
// docGen.extractPDFProperties(accessToken, "/adobe/document/extract/pdfproperties");
// docGen.mergeDataWithXdpTemplate(accessToken, "/adobe/document/generate/pdfform");
} catch (Exception e) {
logger.error("Error occurred: {}", e.getMessage(), e);
}
}
}
Il metodo main
viene inizializzato chiamando getAccessToken()
da AccessTokenService
, che dovrebbe restituire un token valido.
-
Quindi chiama
applyUsageRights()
dalla classeDocumentGeneration
, passando:accessToken
recuperato- Endpoint API per l'applicazione dei diritti di utilizzo.