Verwenden des DocAssurance-API
Der DocAssurance-Dienst bietet die Möglichkeit, verschiedene digitale Signatur- oder Verschlüsselungsvorgänge mit PDF-Dokumenten durchzuführen, z. B. Signieren, Zertifizieren, Hinzufügen von Signaturfeldern, Verschlüsseln, Entschlüsseln usw.
Dieser Artikel bietet Ihnen Java-Code-Ausschnitte, die Ihnen den Einstieg in die Verwendung des API erleichtern. Das Codesnippet verwendet ein Zugriffs-Token. In diesem Artikel werden die zum Generieren eines Zugriffs-Tokens erforderlichen Schritte erläutert
Diese Funktion ist im Rahmen des Early-Adopter-Programms verfügbar. Sie können von Ihrer offiziellen E-Mail-Adresse aus an aem-forms-ea@adobe.com schreiben, um dem Early-Adopter-Programm beizutreten und den Zugriff auf diese Funktion zu beantragen.
Voraussetzungen
- Erfahrung mit AEM Forms Cloud Service
- Erfahrung im Umgang mit Apache-HTTP-Komponenten
- Zugriff auf die AEM Forms Cloud Service-Umgebung
Inspizieren eines Dokuments
Verwenden Sie die Inspizierungs-API, um den Sicherheitstyp eines bestimmten PDF-Dokuments abzurufen. Das folgende Codesnippet soll Ihnen den Einstieg erleichtern.
...
File fileToInspect = new File("path_to_your_pdf_file)";
HttpPost httpPost = new HttpPost("<your_aem_forms_instance>/adobe/forms/document/assure/inspect");
httpPost.addHeader("Authorization", "Bearer " + accessToken);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
byte[] fileContent = FileUtils.readFileToByteArray(fileToInspect);
builder.addBinaryBody("document", fileContent, ContentType.create("application/pdf"), "BenefitOverview.pdf");
try
{
HttpEntity entity = builder.build();
httpPost.setEntity(entity);
CloseableHttpClient httpclient = HttpClients.createDefault();
CloseableHttpResponse response = httpclient.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200)
{
String json = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
log.info("The mode of encryption is " + JsonParser.parseString(json).getAsJsonObject().get("mode").getAsString());
}
}
catch (Exception e)
{
log.error(e.getMessage());
}
...
Verschlüsseln eines Dokuments
Verwenden Sie das Verschlüsselungs-API, um PDF-Dokumente mit einem Kennwort zu verschlüsseln. Das folgende Beispiel-Codesnippet verschlüsselt eine bestimmte PDF-Datei.
...
File fileToEncrypt = new File("path_to_your_pdf_file");
HttpPost httpPost = new HttpPost(postURL);
httpPost.addHeader("Authorization", "Bearer " + accessToken ");
MultipartEntityBuilder builder = MultipartEntityBuilder.create(); byte[] fileContent = FileUtils.readFileToByteArray(fileToEncrypt); builder.addBinaryBody("document", fileContent, ContentType.create("application/pdf"), "BenefitOverview.pdf");
String config = "{\"mode\":\"ENCRYPT_WITH_PASSWORD\",\"params\":{\"openPassword\":\"adobe\",\"permPassword\":\"systems\",\"permissions\":[\"ALL_PERM\"]}}";
builder.addTextBody("config", config, ContentType.APPLICATION_JSON);
try
{
HttpEntity entity = builder.build();
httpPost.setEntity(entity);
CloseableHttpClient httpclient = HttpClients.createDefault();
CloseableHttpResponse response = httpclient.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200)
{
InputStream generatedPDF = response.getEntity().getContent();
byte[] bytes = IOUtils.toByteArray(generatedPDF);
File encryptedFile = new File("c:\\aem_forms_cs_api\\encrypted.pdf");
FileOutputStream outputStream = new FileOutputStream(encryptedFile);
outputStream.write(bytes);
outputStream.close();
}
}
catch (Exception e)
{
log.error(e.getMessage());
}
...
Hinzufügen eines Signaturfeldes zu einer PDF-Datei
Verwenden Sie die Signaturfeld-API, um der bereitgestellten PDF-Datei eine Signatur hinzuzufügen. Im folgenden Beispiel-Codesnippet wird ein Signaturfeld namens „SignHere“ auf Seite 4 des Dokuments hinzugefügt
...
File pdfFile = new File(pdfFile1.getPath());
HttpPost httpPost = new HttpPost(postURL);
httpPost.addHeader("Authorization", "Bearer "+accessToken);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
byte[] fileContent = FileUtils.readFileToByteArray(pdfFile);
builder.addBinaryBody("document", fileContent, ContentType.create("application/pdf"), "BenefitOverview.pdf");
builder.addTextBody("field", "SignHere", ContentType.TEXT_PLAIN);
String rectangle = "{\"lowerLeftX\":1,\"lowerLeftY\":40,\"width\":100,\"height\":100}";
builder.addTextBody("rectangle", rectangle, ContentType.APPLICATION_JSON);
Entfernen der Verschlüsselung
Verwenden Sie den PUT-Vorgang auf der Verschlüsselungs-API, um die Verschlüsselung von der bereitgestellten PDF zu entfernen. Das folgende Java-Codesnippet sollte Ihnen bei den ersten Schritten helfen.
...
File fileToDecrypt = new File("path_to_your_pdf_file");
HttpPut httpPut = new HttpPut(putURL);
httpPut.addHeader("Authorization", "Bearer " + accessToken);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
byte[] fileContent = FileUtils.readFileToByteArray(fileToDecrypt);
builder.addBinaryBody("document", fileContent, ContentType.create("application/pdf"), "BenefitOverview.pdf");
builder.addTextBody("config", "systems", ContentType.TEXT_PLAIN);
try {
HttpEntity entity = builder.build();
httpPut.setEntity(entity);
CloseableHttpClient httpclient = HttpClients.createDefault();
CloseableHttpResponse response = httpclient.execute(httpPut);
if (response.getStatusLine().getStatusCode() == 200) {
InputStream generatedPDF = response.getEntity().getContent();
byte[] bytes = IOUtils.toByteArray(generatedPDF);
File encryptionRemoved = new File("c:\\aem_forms_cs_api\\encryption_removed.pdf");
FileOutputStream outputStream = new FileOutputStream(encryptionRemoved);
outputStream.write(bytes);
outputStream.close();
httpclient.close();
}
} catch (Exception e) {
log.error(e.getMessage());
}
...
Postman-Sammlung
Eine Postman-Sammlung des API kann zu Testzwecken von hier heruntergeladen werden. Sie können das API mit der Standardauthentifizierung oder dem Bearer-Token-Typ der Authentifizierung aufrufen.