Mithilfe des Assembler-Dienstes können Sie feststellen, ob ein PDF-Dokument PDF/A-kompatibel ist. Ein PDF/A-Dokument existiert als Archivformat, das für die Langzeitarchivierung des Dokumentinhalts vorgesehen ist. Die Schriftarten werden im Dokument eingebettet und die Datei bleibt 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 besteht aus zwei Konformitätsstufen, nämlich A und B. Der Hauptunterschied zwischen den beiden Ebenen ist die logische Strukturunterstützung (Barrierefreiheit), die nicht für Konformitätsstufe B erforderlich ist. Unabhängig von der Konformitätsstufe bestimmt PDF/A-1, dass alle Schriftarten in das generierte PDF/A-Dokument eingebettet sind. Derzeit wird nur PDF/A-1b bei der Validierung (und Konvertierung) unterstützt.
Angenommen, für diese Diskussion wird das folgende DDX-Dokument verwendet.
<?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 wird die DocumentInformation
-Element weist den Assembler-Dienst an, Informationen zum PDF-Eingabedokument zurückzugeben. Innerhalb der DocumentInformation
-Element, das PDFAValidation
-Element weist den Assembler-Dienst an, anzugeben, ob das PDF-Eingabedokument PDF/A-kompatibel ist.
Der Assembler-Dienst gibt Informationen zurück, die angeben, ob das PDF-Eingabedokument in einem XML-Dokument, das ein PDFAConformance
-Element. Wenn das PDF-Eingabedokument PDF/A-kompatibel ist, wird der Wert der PDFAConformance
-Element isCompliant
Attribut ist true
. Wenn das PDF-Dokument nicht PDF/A-kompatibel ist, wird der Wert der PDFAConformance
-Element isCompliant
Attribut ist false
.
Da das in diesem Abschnitt angegebene DDX-Dokument eine DocumentInformation
-Element gibt der Assembler-Dienst XML-Daten anstelle eines PDF-Dokuments zurück. Das heißt, der Assembler-Dienst stellt kein PDF-Dokument zusammen oder zerlegt es. Es werden Informationen zum Eingabe-PDF-Dokument in einem XML-Dokument zurückgegeben.
Weitere Informationen zum Assembler-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Weitere Informationen zu einem DDX-Dokument finden Sie unter Assembler-Dienst und DDX-Referenz.
Um festzustellen, ob ein PDF-Dokument PDF/A-kompatibel ist, führen Sie die folgenden Schritte aus:
Projektdateien einschließen
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 anderen unterstützten J2EE-Anwendungsserver als JBoss bereitgestellt wird, 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 bereitgestellt wird. Informationen zum Speicherort aller AEM Forms-JAR-Dateien finden Sie unter Einschließen von AEM Forms-Java-Bibliotheksdateien.
PDF Assembler-Client erstellen
Bevor Sie einen Assembler-Vorgang programmgesteuert ausführen können, müssen Sie einen Assembler-Dienst-Client erstellen.
Vorhandenes DDX-Dokument referenzieren
Es muss auf ein DDX-Dokument verwiesen werden, um einen Assembler-Dienstvorgang durchzuführen. Um festzustellen, ob ein PDF-Eingabedokument PDF/A-kompatibel ist, stellen Sie sicher, dass das DDX-Dokument die PDFAValidation
-Element in einer DocumentInformation
-Element. Die PDFAValidation
-Element weist den Assembler-Dienst an, ein XML-Dokument zurückzugeben, das angibt, ob das PDF-Eingabedokument PDF/A-kompatibel ist.
Referenzieren eines PDF-Dokuments zur Bestimmung der PDF/A-Kompatibilität
Ein PDF-Dokument muss referenziert und an den Assembler-Dienst übergeben werden, um festzustellen, ob das PDF-Dokument PDF/A-kompatibel ist.
Laufzeitoptionen festlegen
Sie können Laufzeitoptionen festlegen, die das Verhalten des Assembler-Dienstes während der Ausführung eines Auftrags steuern. Sie können beispielsweise eine Option festlegen, mit der der Assembler-Dienst angewiesen wird, die Verarbeitung eines Auftrags fortzusetzen, wenn ein Fehler auftritt. Informationen zu den Laufzeitoptionen, die Sie festlegen können, finden Sie unter AssemblerOptionSpec
Klassenreferenz in AEM Forms API-Referenz.
Informationen zum PDF-Dokument abrufen
Nachdem Sie den Assembler-Dienst-Client erstellt haben, auf das DDX-Dokument verweisen, auf ein interaktives PDF-Dokument verweisen und Laufzeitoptionen festlegen, können Sie die invokeDDX
Vorgang. Da das DDX-Dokument die DocumentInformation
-Element gibt der Assembler-Dienst XML-Daten anstelle eines PDF-Dokuments zurück.
Das zurückgegebene XML-Dokument speichern
Das vom Assembler-Dienst 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-Dienst 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
Bestimmen Sie mithilfe der Java-API, ob ein Dokument mit PDF/A kompatibel ist.
Ermitteln Sie mithilfe der Webdienst-API, ob ein Dokument PDF/A-kompatibel ist.
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Programmgesteuertes Zusammenstellen von PDF-Dokumenten
Stellen Sie mithilfe der Assembler-Dienst-API (Java) fest, ob ein PDF-Dokument PDF/A-kompatibel ist:
Projektdateien einschließen.
Schließen 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 durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.Referenzieren Sie ein vorhandenes DDX-Dokument.
java.io.FileInputStream
-Objekt, das das DDX-Dokument darstellt, indem es seinen Konstruktor verwendet und einen string -Wert übergibt, der den Speicherort der DDX-Datei angibt. Um festzustellen, ob das PDF-Dokument PDF/A-kompatibel ist, stellen Sie sicher, dass das DDX-Dokument die PDFAValidation
-Element, das in einer DocumentInformation
-Element.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Referenzieren Sie ein PDF-Dokument, das zur Bestimmung der PDF/A-Kompatibilität verwendet wird.
Erstellen Sie eine java.io.FileInputStream
-Objekt, indem Sie seinen Konstruktor verwenden und den Speicherort eines PDF-Dokuments übergeben, das zum Ermitteln der PDF/A-Kompatibilität verwendet wird.
Erstellen Sie eine com.adobe.idp.Document
-Objekt durch Verwendung seines Konstruktors und Übergabe des java.io.FileInputStream
-Objekt, das das PDF-Dokument enthält.
Erstellen Sie eine java.util.Map
-Objekt, das zum Speichern des Eingabe-PDF-Dokuments mithilfe eines HashMap
-Konstruktor.
Fügen Sie dem java.util.Map
-Objekt durch Aufrufen seiner put
-Methode verwenden und die folgenden Argumente übergeben:
com.adobe.idp.Document
-Objekt, das das PDF-Eingabedokument enthält.Legen Sie Laufzeitoptionen fest.
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen mithilfe seines Konstruktors speichert.AssemblerOptionSpec
-Objekt. Um beispielsweise den Assembler-Dienst anzuweisen, die Verarbeitung eines Auftrags fortzusetzen, wenn ein Fehler auftritt, rufen Sie die AssemblerOptionSpec
-Objekt setFailOnError
-Methode und -übergabe false
.Rufen Sie Informationen zum PDF-Dokument ab.
Rufen Sie die AssemblerServiceClient
-Objekt invokeDDX
-Methode verwenden und die folgenden erforderlichen Werte übergeben:
com.adobe.idp.Document
-Objekt, das das zu verwendende DDX-Dokument darstelltjava.util.Map
-Objekt, das die Eingabedatei enthält, mit der die PDF/A-Kompatibilität ermittelt wird.com.adobe.livecycle.assembler.client.AssemblerOptionSpec
-Objekt, das die Laufzeitoptionen angibtDie invokeDDX
-Methode gibt eine com.adobe.livecycle.assembler.client.AssemblerResult
-Objekt, 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 Eingabedokument ein PDF/A-PDF-Dokument ist:
AssemblerResult
-Objekt getDocuments
-Methode. Dadurch wird eine java.util.Map
-Objekt.java.util.Map
-Objekt, bis Sie das Ergebnis finden com.adobe.idp.Document
-Objekt.com.adobe.idp.Document
-Objekt copyToFile
-Methode, um das XML-Dokument zu extrahieren. Stellen Sie sicher, dass Sie die XML-Daten als XML-Datei speichern.Siehe auch
Schnellstart (SOAP-Modus): Bestimmen, ob ein Dokument mit der Java-API mit PDF/A kompatibel ist (SOAP-Modus)
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Stellen Sie mithilfe der Assembler-Dienst-API (Webdienst) fest, ob ein PDF-Dokument PDF/A-kompatibel ist:
Projektdateien einschließen.
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 localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen Sie einen PDF Assembler-Client.
Erstellen Sie eine AssemblerServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine AssemblerServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/AssemblerService?blob=mtom
). Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.)
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der AssemblerServiceClient.Endpoint.Binding
-Feld. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie die System.ServiceModel.BasicHttpBinding
-Objekt MessageEncoding
-Feld zu WSMessageEncoding.Mtom
. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
AssemblerServiceClient.ClientCredentials.UserName.UserName
.AssemblerServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Referenzieren Sie ein vorhandenes DDX-Dokument.
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern des DDX-Dokuments verwendet.System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort des DDX-Dokuments und den Modus zum Öffnen der Datei darstellt.System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.System.IO.FileStream
-Objekt Read
-Methode verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.BLOB
Objekt durch Zuweisen seiner MTOM
-Feld mit dem Inhalt des Byte-Arrays.Referenzieren Sie ein PDF-Dokument, das zur Bestimmung der PDF/A-Kompatibilität verwendet wird.
BLOB
, indem Sie den Konstruktor verwenden. Die 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 Eingabedokuments und den PDF-Modus darstellt, in dem die Datei geöffnet werden soll.System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.System.IO.FileStream
-Objekt Read
-Methode verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.BLOB
Objekt durch Zuweisen seiner MTOM
-Eigenschaft mit dem Inhalt des Byte-Arrays.MyMapOf_xsd_string_To_xsd_anyType
-Objekt. Dieses Collection-Objekt wird zum Speichern des PDF-Dokuments verwendet.MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekt.MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekt key
-Feld. Dieser Wert muss mit dem Wert des im DDX-Dokument angegebenen PDF-Quellelements übereinstimmen.BLOB
-Objekt, das das PDF-Dokument im MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekt value
-Feld.MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekt MyMapOf_xsd_string_To_xsd_anyType
-Objekt. Rufen Sie die MyMapOf_xsd_string_To_xsd_anyType
object' Add
-Methode und übergeben Sie die MyMapOf_xsd_string_To_xsd_anyType
-Objekt.Legen Sie Laufzeitoptionen fest.
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen mithilfe seines Konstruktors speichert.AssemblerOptionSpec
-Objekt. Um beispielsweise den Assembler-Dienst anzuweisen, die Verarbeitung eines Auftrags fortzusetzen, wenn ein Fehler auftritt, weisen Sie false
der AssemblerOptionSpec
-Objekt failOnError
Datenelement.Rufen Sie Informationen zum PDF-Dokument ab.
Rufen Sie die AssemblerServiceService
-Objekt invoke
-Methode verwenden und die folgenden Werte übergeben:
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 die BLOB
-Objekt, das der PDF-Eingabedatei entspricht.AssemblerOptionSpec
-Objekt, das Laufzeitoptionen angibt.Die invoke
-Methode gibt eine AssemblerResult
-Objekt, 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 Eingabedokument ein PDF/A-PDF-Dokument ist:
AssemblerResult
-Objekt documents
-Feld, das ein Map
-Objekt, das die XML-Daten enthält, die angeben, ob das PDF-Eingabedokument ein PDF/A-Dokument ist.Map
-Objekt, um jedes Zieldokument abzurufen. Dann den Wert dieses Array-Mitglieds in eine BLOB
.BLOB
-Objekt MTOM
-Feld. Dieses Feld speichert ein Array von Bytes, in die Sie als XML-Datei schreiben können.Siehe auch
AEM Forms mithilfe von MTOM aufrufen