AEM 6.4 hat das Ende der erweiterten Unterstützung erreicht und diese Dokumentation wird nicht mehr aktualisiert. Weitere Informationen finden Sie in unserer technische Unterstützung. Unterstützte Versionen suchen here.
Mithilfe des Assembler-Services können Sie feststellen, ob ein PDF-Dokument PDF/A-kompatibel ist. Ein PDF/A-Dokument liegt als ein Archivierungsformat vor, das für die langfristige Speicherung von Dokumentinhalten vorgesehen ist. Die Schriftarten werden in das Dokument eingebettet und die Datei ist unkomprimiert. PDF/A-Dokumente sind daher in der Regel größer als normale PDF-Dokumente. Außerdem enthalten PDF/A-Dokumente keine Audio- und Videoinhalte.
Die PDF/A-1-Spezifikation umfasst zwei Konformitätsstufen (Level), nämlich A und B. Der Hauptunterschied zwischen den beiden Stufen ist die Unterstützung der logischen Struktur (Barrierefreiheit), die für die Konformitätsstufe B nicht erforderlich ist. Unabhängig von der Konformitätsstufe schreibt PDF/A-1 vor, dass alle Schriftarten in das generierte PDF/A-Dokument eingebettet sind. Derzeit wird bei der Gültigkeitsprüfung (und Konvertierung) nur PDF/A-1b unterstützt.
Nehmen Sie für dieses Thema bitte an, dass das folgende DDX-Dokument verwendet wird.
<?xml version="1.0" encoding="UTF-8"?>
<DDX xmlns="https://ns.adobe.com/DDX/1.0/">
<DocumentInformation source="Loan.pdf" result="Loan_result.xml">
<PDFAValidation compliance="PDF/A-1b" resultLevel="Detailed" ignoreUnusedResources="true" allowCertificationSignatures="true" />
</DocumentInformation>
</DDX>
In diesem DDX-Dokument weist das Element DocumentInformation
den Assembler-Dienst an, Informationen über das PDF-Eingabedokument zurückzugeben. Innerhalb des Elements DocumentInformation
weist das Element PDFAValidation
den Assembler-Service an anzugeben, ob das PDF-Eingabedokument PDF/A-kompatibel ist.
Der Assembler-Service gibt Informationen zurück, die detailliert angeben, ob das PDF-Eingabedokument in einem XML-Dokument, das ein PDFAConformance
-Element enthält, PDF/A-kompatibel ist. Wenn das PDF-Eingabedokument PDF/A-kompatibel ist, hat das Attribut isCompliant
des PDFAConformance
-Elements den Wert true
. Wenn das PDF-Dokument nicht PDF/A-kompatibel ist, hat das Attribut isCompliant
des PDFAConformance
-Elements den Wert false
.
Da das in diesem Abschnitt näher beschriebene DDX-Dokument ein DocumentInformation
-Element enthält, gibt der Assembler-Service anstelle eines PDF-Dokuments XML-Daten zurück. Das heißt, durch den Assembler-Service erfolgt weder ein Zusammenfügen noch ein Aufteilen von PDF-Dokumenten. Es werden lediglich Informationen zu dem PDF-Eingabedokument in einem XML-Dokument zurückgegeben.
Weitere Informationen zum Assembler-Service finden Sie in der Service-Referenz für AEM Forms.
Weitere Informationen zu einem DDX-Dokument finden Sie in der Referenz für Assembler-Service und DDX.
Gehen Sie wie folgt vor, um festzustellen, ob ein PDF-Dokument PDF/A-kompatibel ist:
Einschließen von Projektdateien
Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:
Wenn AEM Forms auf einem unterstützten J2EE-Anwendungsserver implementiert ist, der von JBoss verschieden ist, müssen Sie die Dateien „adobe-utilities.jar“ und „jbossall-client.jar“ durch JAR-Dateien ersetzen, die für den J2EE-Anwendungsserver spezifisch sind, auf dem AEM Forms implementiert ist. Informationen zum Speicherort aller AEM Forms-JAR-Dateien finden Sie unter Einbeziehen von AEM Forms-Java-Bibliotheksdateien.
Erstellen eines PDF-Assembler-Clients
Bevor Sie einen Assembler-Vorgang programmgesteuert ausführen können, müssen Sie einen Assembler-Dienst-Client erstellen.
Referenzieren eines vorhandenen DDX-Dokuments
Es muss auf ein DDX-Dokument verwiesen werden, um einen Assembler-Service-Vorgang auszuführen. Um festzustellen, ob ein PDF-Eingabedokument PDF/A-kompatibel ist, stellen Sie sicher, dass das DDX-Dokument das PDFAValidation
-Element in einem DocumentInformation
-Element enthält. Das PDFAValidation
-Element weist den Assembler-Service an, ein XML-Dokument zurückzugeben, das angibt, ob das PDF-Eingabedokument PDF/A-kompatibel ist.
Referenzieren eines PDF-Dokuments zur Ermittlung der PDF/A-Kompatibilität
Ein PDF-Dokument muss referenziert und an den Assembler-Service übergeben werden, um festzustellen, ob das PDF-Dokument PDF/A-kompatibel ist.
Festlegen von Laufzeitoptionen
Sie können Laufzeitoptionen festlegen, die das Verhalten des Assembler-Services während der Ausführung eines Auftrags steuern. Sie können beispielsweise eine Option festlegen, mit der der Assembler-Service angewiesen wird, die Verarbeitung eines Auftrags fortzusetzen, wenn ein Fehler auftritt. Informationen über die Laufzeitoptionen, die Sie festlegen können, finden Sie unter AssemblerOptionSpec
-Klassenverweis in AEM Forms API-Referenz.
Abrufen von Informationen über das PDF-Dokument
Nachdem Sie den Assembler-Service-Client erstellt haben, auf das DDX-Dokument verwiesen haben, auf ein interaktives PDF-Dokument verwiesen haben und Laufzeitoptionen festgelegt haben, können Sie den invokeDDX
-Vorgang aufrufen. Da das DDX-Dokument das DocumentInformation
-Element enthält, gibt der Assembler-Service XML-Daten anstelle eines PDF-Dokuments zurück.
Speichern des zurückgegebenen XML-Dokuments
Das vom Assembler-Service zurückgegebene XML-Dokument gibt an, ob das PDF-Eingabedokument PDF/A-kompatibel ist. Wenn das PDF-Eingabedokument beispielsweise nicht PDF/A-kompatibel ist, gibt der Assembler-Service ein XML-Dokument zurück, das das folgende Element enthält:
<PDFAConformance isCompliant="false" compliance="PDF/A-1b" resultLevel="Detailed" ignoreUnusedResources="true" allowCertificationSignatures="true">
Speichern Sie das XML-Dokument als XML-Datei, damit Sie die Datei öffnen und die Ergebnisse anzeigen können.
Siehe auch
Ermitteln Sie mithilfe der Java-API, ob ein Dokument PDF/A-kompatibel ist.
Ermitteln Sie mithilfe der Web-Service-API, ob ein Dokument PDF/A-kompatibel ist.
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Programmatisches Zusammenstellen von PDF-Dokumenten
So ermitteln Sie mithilfe der Assembler-Service-API (Java), ob ein PDF-Dokument PDF/A-kompatibel ist:
Schließen Sie Projektdateien ein.
Fügen Sie Client-JAR-Dateien wie „adobe-assembler-client.jar“ in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie einen PDF Assembler-Client.
ServiceClientFactory
-Objekt, das Verbindungseigenschaften enthält.AssemblerServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Referenzieren Sie ein vorhandenes DDX-Dokument.
java.io.FileInputStream
-Objekt, das das DDX-Dokument darstellt, indem Sie seinen Konstruktor verwenden und einen Zeichenfolgenwert übergiben, der den Speicherort der DDX-Datei angibt. Um festzustellen, ob das PDF-Dokument PDF/A-kompatibel ist, stellen Sie sicher, dass das DDX-Dokument das PDFAValidation
-Element enthält, das in einem DocumentInformation
-Element enthalten ist.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Referenzieren Sie ein PDF-Dokument, das zum Bestimmen der PDF/A-Kompatibilität verwendet wird.
Erstellen Sie ein java.io.FileInputStream
-Objekt, indem Sie seinen Konstruktor verwenden und den Speicherort eines PDF-Dokuments übergeben, das zum Bestimmen der PDF/A-Kompatibilität verwendet wird.
Erstellen Sie ein com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben, das das PDF-Dokument enthält.
Erstellen Sie ein java.util.Map
-Objekt, das mithilfe eines HashMap
-Konstruktors zum Speichern des Eingabe-PDF-Dokuments verwendet wird.
Fügen Sie dem java.util.Map
-Objekt durch Aufrufen seiner put
-Methode und Übergeben der folgenden Argumente einen Eintrag hinzu:
com.adobe.idp.Document
-Objekt, das das PDF-Eingabedokument enthält.Legen Sie Laufzeitoptionen fest.
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen speichert, indem Sie seinen Konstruktor verwenden.AssemblerOptionSpec
-Objekt gehört. Um beispielsweise den Assembler-Service anzuweisen, die Verarbeitung eines Auftrags fortzusetzen, wenn ein Fehler auftritt, rufen Sie die setFailOnError
-Methode des AssemblerOptionSpec
-Objekts auf und übergeben Sie false
.Rufen Sie Informationen zum PDF-Dokument ab.
Rufen Sie die invokeDDX
-Methode des AssemblerServiceClient
-Objekts auf und übergeben Sie die folgenden erforderlichen Werte:
com.adobe.idp.Document
-Objekt, das das zu verwendende DDX-Dokument darstelltjava.util.Map
-Objekt, das die PDF-Eingabedatei enthält, mit der die PDF/A-Kompatibilität ermittelt wird.com.adobe.livecycle.assembler.client.AssemblerOptionSpec
-Objekt, das die Optionen für die Laufzeit angibtDie invokeDDX
-Methode gibt ein com.adobe.livecycle.assembler.client.AssemblerResult
-Objekt zurück, das XML-Daten enthält, die angeben, ob das PDF-Eingabedokument PDF/A-kompatibel ist.
Speichern Sie das zurückgegebene XML-Dokument.
So rufen Sie XML-Daten ab, die angeben, ob das PDF-Eingabedokument ein PDF/A-Dokument ist:
getDocuments
-Methode des AssemblerResult
-Objekts auf. Dadurch wird ein java.util.Map
-Objekt zurückgegeben.java.util.Map
-Objekt, bis Sie das resultierende com.adobe.idp.Document
-Objekt finden.copyToFile
-Methode des com.adobe.idp.Document
-Objekts auf, um das XML-Dokument zu extrahieren. Stellen Sie sicher, dass Sie die XML-Daten als XML-Datei speichern.Siehe auch
Schnellstart (SOAP-Modus): Mithilfe der Java-API (SOAP-Modus) bestimmen, ob ein Dokument PDF/A-kompatibel ist
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Stellen Sie mithilfe der Assembler-Service-API (Webservice) fest, ob ein PDF-Dokument PDF/A-kompatibel ist:
Schließen Sie Projektdateien ein.
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1
.
Ersetzen Sie localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen Sie einen PDF Assembler-Client.
Erstellen Sie ein AssemblerServiceClient
-Objekt, indem Sie seinen standardmäßigen Konstruktor verwenden.
Erstellen Sie ein AssemblerServiceClient.Endpoint.Address
-Objekt mithilfe des System.ServiceModel.EndpointAddress
-Konstruktors. Übergeben Sie einen Zeichenfolgenwert mit der WSDL an den AEM Forms-Service (z. B. http://localhost:8080/soap/services/AssemblerService?blob=mtom
). Das Attribut lc_version
muss nicht verwendet werden. Dieses Attribut wird verwendet, wenn Sie einen Service-Verweis erstellen.)
Erstellen Sie ein System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts des Felds AssemblerServiceClient.Endpoint.Binding
. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie das MessageEncoding
-Feld des System.ServiceModel.BasicHttpBinding
-Objekts auf WSMessageEncoding.Mtom
fest. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Schritte ausführen:
AssemblerServiceClient.ClientCredentials.UserName.UserName
den AEM Forms-Benutzernamen zu.AssemblerServiceClient.ClientCredentials.UserName.Password
den entsprechenden Passwortwert zu.BasicHttpBindingSecurity.Transport.ClientCredentialType
den konstanten Wert HttpClientCredentialType.Basic
zu.BasicHttpBindingSecurity.Security.Mode
den Konstantenwert BasicHttpSecurityMode.TransportCredentialOnly
zu.Referenzieren Sie ein vorhandenes DDX-Dokument.
BLOB
, indem Sie den Konstruktor verwenden. Das BLOB
-Objekt wird zum Speichern des DDX-Dokuments verwendet.System.IO.FileStream
, indem Sie den Konstruktor aufrufen und einen String-Wert übergeben, der den Dateispeicherort des DDX-Dokuments und den Modus, in dem die Datei geöffnet werden soll, repräsentiert.System.IO.FileStream
-Objekts speichert. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die Length
-Eigenschaft des System.IO.FileStream
-Objekts abrufen.Read
-Methode des System.IO.FileStream
-Objekts aufrufen und ihr das Byte-Array, die Startposition und die zu lesende Datenstromlänge übergeben.BLOB
-Objekt, indem Sie seinem Feld MTOM
die Inhalte des Byte-Arrays zuweisen.Referenzieren Sie ein PDF-Dokument, das zum Bestimmen der PDF/A-Kompatibilität verwendet wird.
BLOB
, indem Sie den Konstruktor verwenden. Das BLOB
-Objekt wird zum Speichern des PDF-Eingabedokuments verwendet.System.IO.FileStream
-Objekt durch Aufrufen des Konstruktors und Übergeben eines Zeichenfolgenwerts, der den Dateispeicherort des PDF-Eingabedokuments und den Modus darstellt, in dem die Datei geöffnet werden soll.System.IO.FileStream
-Objekts gespeichert wird. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die Length
-Eigenschaft des System.IO.FileStream
-Objekts abrufen.Read
-Methode des System.IO.FileStream
-Objekts aufrufen und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.BLOB
-Objekt, indem Sie seiner Eigenschaft MTOM
die Inhalte des Byte-Arrays zuweisen.MyMapOf_xsd_string_To_xsd_anyType
. Dieses Collection-Objekt wird zum Speichern des PDF-Dokuments verwendet.MyMapOf_xsd_string_To_xsd_anyType_Item
.key
des MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekts einen String-Wert zu, der den Schlüsselnamen repräsentiert. Dieser Wert muss mit dem Wert des im DDX-Dokument angegebenen PDF-Quellelements übereinstimmen.BLOB
-Objekt, in dem das PDF-Dokument gespeichert wird, dem value
-Feld des MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekts zu.MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekt dem MyMapOf_xsd_string_To_xsd_anyType
-Objekt hinzu. Rufen Sie die Add
-Methode des MyMapOf_xsd_string_To_xsd_anyType
-Objekts auf und übergeben Sie das Objekt MyMapOf_xsd_string_To_xsd_anyType
.Legen Sie Laufzeitoptionen fest.
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen speichert, indem Sie seinen Konstruktor verwenden.AssemblerOptionSpec
-Objekt gehört, einen Wert zuweisen. Um beispielsweise den Assembler-Service anzuweisen, die Verarbeitung eines Auftrags fortzusetzen, wenn ein Fehler auftritt, weisen Sie dem failOnError
-Daten-Member des AssemblerOptionSpec
-Objekts false
zu.Rufen Sie Informationen zum PDF-Dokument ab.
Rufen Sie die invoke
-Methode des AssemblerServiceService
-Objekts auf und übergeben Sie die folgenden Werte:
BLOB
-Objekt, das das DDX-Dokument darstellt.MyMapOf_xsd_string_To_xsd_anyType
-Objekt, das das PDF-Eingabedokument enthält. Die Schlüssel müssen mit den Namen der PDF-Quelldateien übereinstimmen, und ihre Werte müssen das BLOB
-Objekt sein, das der PDF-Eingabedatei entspricht.AssemblerOptionSpec
-Objekt, das Laufzeitoptionen angibt.Die invoke
-Methode gibt ein AssemblerResult
-Objekt zurück, das XML-Daten enthält, die angeben, ob das PDF-Eingabedokument ein PDF/A-Dokument ist.
Speichern Sie das zurückgegebene XML-Dokument.
So rufen Sie XML-Daten ab, die angeben, ob das PDF-Eingabedokument ein PDF/A-Dokument ist:
documents
des AssemblerResult
-Objekts zu, wobei es sich um ein Map
-Objekt handelt, das die XML-Daten enthält, die angeben, ob das PDF-Eingabedokument ein PDF/A-Dokument ist.Map
-Objekt aus, um jedes Zieldokument zu erhalten. Anschließend ändern Sie den Wert dieses Array-Elements in BLOB
.MTOM
des BLOB
-Objekts zugreifen. Dieses Feld speichert ein Array von Bytes, das sich als XML-Datei ausgeben lässt.Siehe auch