Über den Output-Dienst
Mit dem Output-Dienst können Sie Dokumente als PDF (einschließlich PDF/A-Dokumente), PostScript, Printer Control Language (PCL) und die folgenden Beschriftungsformate ausgeben:
Mithilfe des Output-Dienstes können Sie XML-Formulardaten mit einem Formularentwurf zusammenführen und das Dokument an einen Netzwerkdrucker oder eine Datei ausgeben.
Es gibt zwei Möglichkeiten, einen Formularentwurf (eine XDP-Datei) an den Output-Dienst zu übergeben. Sie können entweder eine com.adobe.idp.Document
-Instanz, die einen Formularentwurf für den Output-Dienst enthält. Sie können auch einen URI-Wert übergeben, der den Speicherort des Formularentwurfs angibt. Beide Wege werden in Programmieren mit AEM Formularen.
Der Output-Dienst unterstützt keine Acroform PDF-Dokumente, die anwendungsobjektspezifische Skripte enthalten. Acroform PDF-Dokumente, die anwendungsobjektspezifische Skripte enthalten, werden nicht gerendert.
Die folgenden Abschnitte zeigen, wie Sie einen Formularentwurf mithilfe eines URI-Werts an den Output-Dienst übergeben:
Die folgenden Abschnitte zeigen, wie Sie einen Formularentwurf in einem com.adobe.idp.Document
instance:
Bei der Entscheidung, welche Technik verwendet werden soll, sollten Sie den Formularentwurf von einem anderen AEM Forms-Dienst beziehen und dann in einem com.adobe.idp.Document
-Instanz. Beide Übergeben von Dokumenten an den Output-Dienst und Erstellen von PDF-Dokumenten mit Fragmenten -Abschnitte zeigen, wie Sie einen Formularentwurf von einem anderen AEM Forms-Dienst erhalten. Im ersten Abschnitt wird der Formularentwurf aus Content Services (nicht mehr unterstützt) abgerufen. Der zweite Abschnitt ruft den Formularentwurf vom Assembler-Dienst ab.
Wenn Sie den Formularentwurf von einem festen Speicherort wie dem Dateisystem erhalten, können Sie beide Verfahren verwenden. Das heißt, Sie können den URI-Wert für eine XDP-Datei angeben oder eine com.adobe.idp.Document
-Instanz.
Um beim Erstellen eines PDF-Dokuments einen URI-Wert zu übergeben, der den Speicherort des Formularentwurfs angibt, verwenden Sie die generatePDFOutput
-Methode. Ebenso müssen Sie eine com.adobe.idp.Document
-Instanz beim Erstellen eines PDF-Dokuments für den Output-Dienst verwenden Sie die generatePDFOutput2
-Methode.
Wenn Sie einen Ausgabestream an einen Netzwerkdrucker senden, können Sie auch eine der beiden Methoden verwenden. So senden Sie einen Ausgabestream an einen Drucker, indem Sie eine com.adobe.idp.Document
-Instanz, die einen Formularentwurf enthält, verwenden Sie die sendToPrinter2
-Methode. Um einen Ausgabestream an einen Drucker zu senden, indem ein URI-Wert übergeben wird, verwenden Sie die sendToPrinter
-Methode. Die Senden von Druck-Streams an Drucker -Abschnitt verwendet die sendToPrinter
-Methode.
Sie können diese Aufgaben mithilfe des Output-Dienstes ausführen:
Weitere Informationen zum Output-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Sie können den Output-Dienst verwenden, um ein PDF-Dokument zu erstellen, das auf einem Formularentwurf und den von Ihnen bereitgestellten XML-Formulardaten basiert. Das vom Output-Dienst erstellte PDF-Dokument ist kein interaktives PDF-Dokument. Benutzer können keine Formulardaten eingeben oder ändern.
Wenn Sie ein PDF-Dokument für die Langzeitspeicherung erstellen möchten, wird empfohlen, ein PDF/A-Dokument zu erstellen. (Siehe Erstellen von PDF/A-Dokumenten.
Verwenden Sie den Forms-Dienst, um ein interaktives PDF-Formular zu erstellen, mit dem Benutzer Daten eingeben können. (Siehe Rendern interaktiver PDF forms.
Weitere Informationen zum Output-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Um ein PDF-Dokument zu erstellen, 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 unterstützten J2EE-Anwendungsserver bereitgestellt wird, der nicht JBoss ist, müssen Sie die Dateien "adobe-utilities.jar"und "jbossall-client.jar"durch JAR-Dateien ersetzen, die spezifisch für den J2EE-Anwendungsserver sind, auf dem AEM Forms bereitgestellt wird.
Erstellen eines Output Client-Objekts
Bevor Sie einen Output-Dienstvorgang programmgesteuert ausführen können, müssen Sie ein Output-Dienst-Client-Objekt erstellen. Wenn Sie die Java-API verwenden, erstellen Sie eine OutputClient
-Objekt. Wenn Sie die Output-Webdienst-API verwenden, erstellen Sie eine OutputServiceService
-Objekt.
Referenzieren einer XML-Datenquelle
Um Daten mit dem Formularentwurf zusammenzuführen, müssen Sie eine XML-Datenquelle referenzieren, die Daten enthält. Für jedes Formularfeld, das mit Daten gefüllt werden soll, muss ein XML-Element vorhanden sein. Der Name des XML-Elements muss mit dem Feldnamen übereinstimmen. Ein XML-Element wird ignoriert, wenn es keinem Formularfeld entspricht oder wenn der XML-Elementname nicht mit dem Feldnamen übereinstimmt. Wenn alle XML-Elemente angegeben sind, muss die Reihenfolge, in der die XML-Elemente angezeigt werden, nicht eingehalten werden.
Beachten Sie das folgende Beispielformular für einen Kreditantrag.
Um Daten in diesem Formularentwurf zusammenzuführen, müssen Sie eine XML-Datenquelle erstellen, die dem Formular entspricht. Die folgende XML-Datei stellt eine XDP-XML-Datenquelle dar, die dem Beispiel-Hypothekenantragsformular entspricht.
<?xml version="1.0" encoding="UTF-8" ?>
- <xfa:datasets xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
- <xfa:data>
- <data>
- <Layer>
<closeDate>1/26/2007</closeDate>
<lastName>Johnson</lastName>
<firstName>Jerry</firstName>
<mailingAddress>JJohnson@NoMailServer.com</mailingAddress>
<city>New York</city>
<zipCode>00501</zipCode>
<state>NY</state>
<dateBirth>26/08/1973</dateBirth>
<middleInitials>D</middleInitials>
<socialSecurityNumber>(555) 555-5555</socialSecurityNumber>
<phoneNumber>5555550000</phoneNumber>
</Layer>
- <Mortgage>
<mortgageAmount>295000.00</mortgageAmount>
<monthlyMortgagePayment>1724.54</monthlyMortgagePayment>
<purchasePrice>300000</purchasePrice>
<downPayment>5000</downPayment>
<term>25</term>
<interestRate>5.00</interestRate>
</Mortgage>
</data>
</xfa:data>
</xfa:datasets>
Festlegen von PDF-Laufzeitoptionen
Legen Sie die Datei-URI-Option beim Erstellen eines PDF-Dokuments fest. Diese Option gibt den Namen und Speicherort der PDF-Datei an, die der Output-Dienst generiert.
Anstatt die Laufzeitoption für den Datei-URI festzulegen, können Sie das PDF-Dokument programmgesteuert vom komplexen Datentyp abrufen, der vom Output-Dienst zurückgegeben wird. Durch Festlegen der Laufzeitoption für den Datei-URI müssen Sie jedoch keine Anwendungslogik erstellen, die das PDF-Dokument programmgesteuert abruft.
Festlegen von Rendering-Laufzeitoptionen
Beim Erstellen eines PDF-Dokuments können Sie Laufzeitoptionen für das Rendern festlegen. Obwohl diese Optionen nicht erforderlich sind (im Gegensatz zu erforderlichen PDF-Laufzeitoptionen), können Sie Aufgaben wie die Leistungsverbesserung des Output-Dienstes ausführen. Beispielsweise können Sie den Formularentwurf zwischenspeichern, den der Output-Dienst verwendet, um seine Leistung zu verbessern.
Wenn Sie ein getaggtes Acrobat-Formular als Eingabe verwenden, können Sie die Java- oder Webdienst-API des Output-Dienstes nicht verwenden, um die getaggte Einstellung zu deaktivieren. Wenn Sie versuchen, diese Option programmgesteuert auf false
, ist das PDF-Ergebnisdokument weiterhin mit Tags versehen.
Wenn Sie keine Rendering-Laufzeitoptionen festlegen, werden Standardwerte verwendet. Informationen zum Rendern von Laufzeitoptionen finden Sie in der RenderOptionsSpec
-Klassenreferenz. (Siehe AEM Forms API-Referenz).
PDF-Dokument generieren
Nachdem Sie eine gültige XML-Datenquelle referenziert haben, die Formulardaten enthält, und Laufzeitoptionen festgelegt haben, können Sie den Output-Dienst aufrufen, wodurch ein PDF-Dokument generiert wird.
Beim Generieren eines PDF-Dokuments geben Sie URI-Werte an, die vom Output-Dienst zum Erstellen eines PDF-Dokuments erforderlich sind. Ein Formularentwurf kann in Speicherorten wie dem Serverdateisystem oder im Rahmen einer AEM Forms-Anwendung gespeichert werden. Ein Formularentwurf (oder andere Ressourcen wie eine Bilddatei), der Teil einer Forms-Anwendung ist, kann mithilfe des Inhaltsstamm-URI-Werts referenziert werden repository:///
. Betrachten Sie beispielsweise den folgenden Formularentwurf mit dem Namen Loan.xdp innerhalb einer Forms-Anwendung mit dem Namen Anwendungen/FormsApplication:
Um auf die in der vorherigen Abbildung dargestellte Datei "Loan.xdp"zuzugreifen, geben Sie repository:///Applications/FormsApplication/1.0/FormsFolder/
als dritten Parameter, der an die OutputClient
-Objekt generatePDFOutput
-Methode. Geben Sie den Namen des Formulars an (Loan.xdp) als zweiten Parameter, der an die OutputClient
-Objekt generatePDFOutput
-Methode.
Wenn die XDP-Datei Bilder (oder andere Ressourcen wie Fragmente) enthält, platzieren Sie die Ressourcen im selben Anwendungsordner wie die XDP-Datei. AEM Forms verwendet den Inhaltsstamm-URI als Basispfad, um Verweise auf Bilder aufzulösen. Wenn die Datei "Loan.xdp"beispielsweise ein Bild enthält, stellen Sie sicher, dass Sie das Bild in Applications/FormsApplication/1.0/FormsFolder/
.
Sie können beim Aufrufen der OutputClient
-Objekt generatePDFOutput
oder generatePrintedOutput
-Methoden.
Einen vollständigen Schnellstart zum Erstellen eines PDF-Dokuments durch Referenzieren einer XDP-Datei in einer Forms-Anwendung finden Sie unter Schnellstart (EJB-Modus): Erstellen eines PDF-Dokuments basierend auf einer Anwendungs-XDP-Datei mithilfe der Java-API.
Ergebnisse des Vorgangs abrufen
Nachdem der Output-Dienst einen Vorgang ausgeführt hat, gibt er verschiedene Datenelemente zurück, z. B. Status-XML-Daten, die angeben, ob der Vorgang erfolgreich war.
Siehe auch
Erstellen eines PDF-Dokuments mit der Java-API
Erstellen eines PDF-Dokuments mit der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts zur API für Output Service
Erstellen Sie ein PDF-Dokument mithilfe der Ausgabe-API (Java):
Projektdateien einschließen.
Schließen Sie Client-JAR-Dateien wie adobe-output-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie ein Output Client -Objekt.
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.OutputClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.Referenzieren einer XML-Datenquelle.
java.io.FileInputStream
-Objekt, das die XML-Datenquelle darstellt, die zum Ausfüllen des PDF-Dokuments mithilfe des Konstruktors verwendet wird, und einen string -Wert übergibt, der den Speicherort der XML-Datei angibt.com.adobe.idp.Document
, indem Sie den Konstruktor verwenden. Übergeben Sie die java.io.FileInputStream
-Objekt.Festlegen von PDF-Laufzeitoptionen.
PDFOutputOptionsSpec
, indem Sie den Konstruktor verwenden.PDFOutputOptionsSpec
-Objekt setFileURI
-Methode. Übergeben Sie einen string -Wert, der den Speicherort der vom Output-Dienst generierten PDF-Datei angibt. Die Option Datei-URI ist relativ zum J2EE-Anwendungsserver, der als Host für AEM Forms dient, und nicht zum Clientcomputer.Festlegen von Rendering-Laufzeitoptionen.
RenderOptionsSpec
, indem Sie den Konstruktor verwenden.RenderOptionsSpec
-Objekt setCacheEnabled
und übergeben true
.Sie können die PDF-Dokumentversion nicht mithilfe der RenderOptionsSpec
-Objekt setPdfVersion
-Methode, wenn das Eingabedokument ein Acrobat-Formular (ein in Acrobat erstelltes Formular) oder ein XFA-Dokument ist, das signiert oder zertifiziert ist. Das PDF-Ausgabedokument behält die Originalversion des PDF bei. Ebenso können Sie die getaggte Adobe PDF-Option nicht festlegen, indem Sie die RenderOptionsSpec
-Objekt setTaggedPDF
* -Methode, wenn das Eingabedokument ein Acrobat-Formular oder ein signiertes oder zertifiziertes XFA-Dokument ist. *
Sie können die Option für linearisiertes PDF nicht mithilfe der RenderOptionsSpec
-Objekt setLinearizedPDF
-Methode, wenn das PDF-Eingabedokument zertifiziert oder digital signiert ist. (Siehe Digitales Signieren von PDF-Dokumenten .
Erstellen Sie ein PDF-Dokument.
Erstellen Sie ein PDF-Dokument, indem Sie die OutputClient
-Objekt generatePDFOutput
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
Auflistungswert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.com.adobe.idp.Document
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.Die generatePDFOutput
-Methode gibt eine OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält.
Beim Generieren eines PDF-Dokuments durch Aufrufen der generatePDFOutput
beachten Sie, dass Sie keine Daten mit einem XFA-PDF-Formular zusammenführen können, das signiert oder zertifiziert ist. (Siehe Digitales Signieren und Zertifizieren von Dokumenten .
Die OutputResult
-Objekt getRecordLevelMetaDataList
Methodenzurückgaben null
.
Sie können auch ein PDF-Dokument erstellen, indem Sie die OutputClient
-Objekt generatePDFOutput2
-Methode. (Siehe Übergeben von Dokumenten in Content Services (nicht mehr unterstützt) an den Output-Dienst .
Rufen Sie die Ergebnisse des Vorgangs ab.
com.adobe.idp.Document
-Objekt, das den Status der generatePDFOutput
-Vorgang durch Aufrufen der OutputResult
-Objekt getStatusDoc
-Methode. Diese Methode gibt Status-XML-Daten zurück, die angeben, ob der Vorgang erfolgreich war.java.io.File
-Objekt, das die Ergebnisse des Vorgangs enthält. Stellen Sie sicher, dass die Dateinamenerweiterung .xml lautet.com.adobe.idp.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der com.adobe.idp.Document
-Objekt auf die Datei verweist (stellen Sie sicher, dass Sie die com.adobe.idp.Document
-Objekt, das von der getStatusDoc
-Methode).Obwohl der Output-Dienst das PDF-Dokument an den Speicherort schreibt, der durch das an das PDFOutputOptionsSpec
-Objekt setFileURI
-Methode verwenden, können Sie das PDF/A-Dokument programmgesteuert abrufen, indem Sie die OutputResult
-Objekt getGeneratedDoc
-Methode.
Siehe auch
Schnellstart (EJB-Modus): Erstellen eines PDF-Dokuments mit der Java-API
Schnellstart (SOAP-Modus): Erstellen eines PDF-Dokuments mit der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Erstellen Sie ein PDF-Dokument mithilfe der Output API (Webdienst):
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/OutputService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
* mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird. *
Erstellen Sie ein Output Client -Objekt.
Erstellen Sie eine OutputServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine OutputServiceClient.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/OutputService?blob=mtom
. Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen. Geben Sie jedoch ?blob=mtom
, um MTOM zu verwenden.
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der OutputServiceClient.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:
OutputServiceClient.ClientCredentials.UserName.UserName
.OutputServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Referenzieren einer XML-Datenquelle.
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern von XML-Daten verwendet, die mit dem PDF-Dokument zusammengeführt werden.System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort der XML-Datei darstellt, die Formulardaten enthält.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.Festlegen von PDF-Laufzeitoptionen
PDFOutputOptionsSpec
, indem Sie den Konstruktor verwenden.PDFOutputOptionsSpec
-Objekt fileURI
Datenelement. Die Option Datei-URI ist relativ zum J2EE-Anwendungsserver, der als Host für AEM Forms dient, und nicht zum Clientcomputer.Festlegen von Rendering-Laufzeitoptionen.
RenderOptionsSpec
, indem Sie den Konstruktor verwenden.true
der RenderOptionsSpec
-Objekt cacheEnabled
Datenelement.Sie können die PDF-Dokumentversion nicht mithilfe der RenderOptionsSpec
-Objekt setPdfVersion
-Methode, wenn das Eingabedokument ein Acrobat-Formular (ein in Acrobat erstelltes Formular) oder ein XFA-Dokument ist, das signiert oder zertifiziert ist. Das PDF-Ausgabedokument behält die Originalversion des PDF bei. Ebenso können Sie die getaggte Adobe PDF-Option nicht festlegen, indem Sie die RenderOptionsSpec
-Objekt setTaggedPDF
* Methode, wenn das Eingabedokument ein Acrobat-Formular oder ein signiertes oder zertifiziertes XFA-Dokument ist.*
Sie können die Option für linearisiertes PDF nicht mithilfe der RenderOptionsSpec
-Objekt linearizedPDF
-Element, wenn das PDF-Eingabedokument zertifiziert oder digital signiert ist. (Siehe Digitales Signieren von PDF-Dokumenten .
Erstellen Sie ein PDF-Dokument.
Erstellen Sie ein PDF-Dokument, indem Sie die OutputServiceService
-Objekt generatePDFOutput
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
Auflistungswert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.BLOB
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.BLOB
-Objekt, das von der generatePDFOutput
-Methode. Die generatePDFOutput
-Methode füllt dieses Objekt mit generierten Metadaten, die das Dokument beschreiben. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich).BLOB
-Objekt, das von der generatePDFOutput
-Methode. Die generatePDFOutput
-Methode füllt dieses Objekt mit Ergebnisdaten. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich).OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich).Beim Generieren eines PDF-Dokuments durch Aufrufen der generatePDFOutput
beachten Sie, dass Sie keine Daten mit einem XFA-PDF-Formular zusammenführen können, das signiert oder zertifiziert ist. (Siehe Digitales Signieren und Zertifizieren von Dokumenten .
Sie können auch ein PDF-Dokument erstellen, indem Sie die OutputClient
-Objekt generatePDFOutput2
-Methode. (Siehe Übergeben von Dokumenten in Content Services (nicht mehr unterstützt) an den Output-Dienst .
Rufen Sie die Ergebnisse des Vorgangs ab.
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der einen XML-Dateispeicherort darstellt, der Ergebnisdaten enthält. Stellen Sie sicher, dass die Dateinamenerweiterung .xml lautet.BLOB
-Objekt, das von der OutputServiceService
-Objekt generatePDFOutput
-Methode (der achte Parameter). Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
field
.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef
Die OutputServiceService
-Objekt generateOutput
-Methode veraltet ist.
Sie können den Output-Dienst verwenden, um ein PDF/A-Dokument zu erstellen. Da PDF/A ein Archivierungsformat für die langfristige Beibehaltung des Dokumentinhalts ist, werden alle Schriftarten eingebettet und die Datei unkomprimiert. PDF/A-Dokumente sind daher in der Regel größer als normale PDF-Dokumente. Darüber hinaus enthält ein PDF/A-Dokument keine Audio- und Videoinhalte. Wie andere Output-Dienstaufgaben stellen Sie sowohl einen Formularentwurf als auch Daten bereit, die mit einem Formularentwurf zusammengeführt werden sollen, um ein PDF/A-Dokument zu erstellen.
Die PDF/A-1-Spezifikation besteht aus zwei Konformitätsstufen, nämlich a und b. Der wesentliche Unterschied zwischen den beiden besteht in der Unterstützung der logischen Struktur (Zugänglichkeit), die für die Konformitätsstufe b nicht erforderlich ist. Unabhängig von der Konformitätsstufe bestimmt PDF/A-1, dass alle Schriftarten in das generierte PDF/A-Dokument eingebettet sind.
Obwohl PDF/A der Standard für die Archivierung von PDF-Dokumenten ist, ist es nicht erforderlich, PDF/A für die Archivierung zu verwenden, wenn ein Standarddokument für die PDF Ihren Unternehmensanforderungen entspricht. Der PDF/A-Standard dient der Erstellung einer PDF-Datei, die über einen längeren Zeitraum gespeichert werden kann und die Anforderungen an die Dokumentenerhaltung erfüllt. Beispielsweise kann eine URL nicht in eine PDF/A eingebettet werden, da die URL im Laufe der Zeit ungültig werden kann.
Ihr Unternehmen muss seine eigenen Anforderungen, die Zeitdauer, in der Sie das Dokument aufbewahren möchten, Überlegungen zur Dateigröße und Ihre eigene Archivierungsstrategie beurteilen. Mit dem DocConverter-Dienst können Sie programmatisch feststellen, ob ein PDF-Dokument PDF/A-kompatibel ist. (Siehe Programmatische Bestimmung der PDF/A-Kompatibilität.
Ein PDF/A-Dokument muss die im Formularentwurf angegebene Schriftart verwenden und Schriften können nicht ersetzt werden. Wenn daher eine Schriftart, die sich in einem PDF-Dokument befindet, auf dem Host-Betriebssystem (Betriebssystem) nicht verfügbar ist, tritt eine Ausnahme auf.
Wenn ein PDF/A-Dokument in Acrobat geöffnet wird, wird eine Meldung angezeigt, die bestätigt, dass es sich um ein PDF/A-Dokument handelt, wie in der folgenden Abbildung dargestellt.
Die AIIM-Website verfügt über einen Abschnitt mit häufig gestellten Fragen zur PDF/A, auf den Sie unter https://www.loc.gov/preservation/digital/formats/fdd/fdd000125.shtml.
Weitere Informationen zum Output-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Um ein PDF/A-Dokument zu erstellen, führen Sie die folgenden Schritte aus:
Projektdateien einschließen
Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie ein benutzerdefiniertes Programm 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 bereitgestellt wird, der nicht JBoss ist, müssen Sie die Dateien "adobe-utilities.jar"und "jbossall-client.jar"durch JAR-Dateien ersetzen, die spezifisch für den J2EE-Anwendungsserver sind, auf dem AEM Forms bereitgestellt wird.
Erstellen eines Output Client-Objekts
Bevor Sie einen Output-Dienstvorgang programmgesteuert ausführen können, müssen Sie ein Output-Dienst-Client-Objekt erstellen. Wenn Sie die Java-API verwenden, erstellen Sie eine OutputClient
-Objekt. Wenn Sie die Output-Webdienst-API verwenden, erstellen Sie eine OutputServiceService
-Objekt.
Referenzieren einer XML-Datenquelle
Um Daten mit dem Formularentwurf zusammenzuführen, müssen Sie eine XML-Datenquelle referenzieren, die Daten enthält. Für jedes Formularfeld, das mit Daten gefüllt werden soll, muss ein XML-Element vorhanden sein. Der Name des XML-Elements muss mit dem Feldnamen übereinstimmen. Ein XML-Element wird ignoriert, wenn es keinem Formularfeld entspricht oder wenn der XML-Elementname nicht mit dem Feldnamen übereinstimmt. Wenn alle XML-Elemente angegeben sind, muss die Reihenfolge, in der die XML-Elemente angezeigt werden, nicht eingehalten werden.
Festlegen von PDF/A-Laufzeitoptionen
Sie können die Option Datei-URI beim Erstellen eines PDF/A-Dokuments festlegen. Der URI ist relativ zum J2EE-Anwendungsserver, der als Host für AEM Forms dient. Wenn Sie also C:\Adobe festlegen, wird die Datei in den Ordner auf dem Server geschrieben, nicht in den Client-Computer. Der URI gibt den Namen und Speicherort der PDF/A-Datei an, die der Output-Dienst generiert.
Festlegen von Rendering-Laufzeitoptionen
Beim Erstellen von PDF/A-Dokumenten können Sie Laufzeitoptionen für das Rendern festlegen. Zwei PDF/A-Optionen, die Sie festlegen können, sind die PDFAConformance
und PDFARevisionNumber
-Werte. Die PDFAConformance
-Wert bezieht sich darauf, wie ein PDF-Dokument Anforderungen erfüllt, die angeben, wie langfristige elektronische Dokumente beibehalten werden. Gültige Werte für diese Option sind A
und B
. Informationen zur Konformität von Level a und B finden Sie in der ISO-Spezifikation PDF/A-1 mit dem Titel ISO 19005-1 Dokumentenmanagement.
Die PDFARevisionNumber
-Wert bezieht sich auf die Revisionsnummer eines PDF/A-Dokuments. Informationen zur Revisionsnummer eines PDF/A-Dokuments finden Sie in der ISO-Spezifikation PDF/A-1 mit dem Titel ISO 19005-1 Dokumentenmanagement.
Sie können die getaggte Adobe PDF-Option nicht auf false
beim Erstellen eines PDF/A 1A-Dokuments. PDF/A 1A ist immer ein getaggtes PDF-Dokument. Außerdem können Sie die getaggte Adobe PDF-Option nicht auf true
beim Erstellen eines PDF/A 1B-Dokuments. PDF/A 1B ist immer ein PDF-Dokument ohne Tags.
Erstellen eines PDF/A-Dokuments
Nachdem Sie eine gültige XML-Datenquelle referenziert haben, die Formulardaten enthält, und Laufzeitoptionen festgelegt haben, können Sie den Output-Dienst aufrufen, wodurch ein PDF/A-Dokument generiert wird.
Ergebnisse des Vorgangs abrufen
Nachdem der Output-Dienst einen Vorgang ausgeführt hat, gibt er verschiedene Datenelemente wie XML-Daten zurück, die angeben, ob der Vorgang erfolgreich war.
Siehe auch
Erstellen eines PDF/A-Dokuments mit der Java-API
Erstellen eines PDF/A-Dokuments mithilfe der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts zur API für Output Service
Erstellen Sie ein PDF/A-Dokument mithilfe der Ausgabe-API (Java):
Projektdateien einschließen.
Schließen Sie Client-JAR-Dateien wie adobe-output-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie ein Output Client -Objekt.
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.OutputClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.Referenzieren einer XML-Datenquelle.
java.io.FileInputStream
-Objekt, das die XML-Datenquelle darstellt, die zum Ausfüllen des PDF/A-Dokuments mithilfe seines Konstruktors verwendet wird, und einen string -Wert übergibt, der den Speicherort der XML-Datei angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Festlegen von PDF/A-Laufzeitoptionen.
PDFOutputOptionsSpec
, indem Sie den Konstruktor verwenden.PDFOutputOptionsSpec
-Objekt setFileURI
-Methode. Übergeben Sie einen string -Wert, der den Speicherort der vom Output-Dienst generierten PDF-Datei angibt. Die Option Datei-URI ist relativ zum J2EE-Anwendungsserver, der als Host für AEM Forms dient, und nicht zum Clientcomputer.Festlegen von Rendering-Laufzeitoptionen.
RenderOptionsSpec
, indem Sie den Konstruktor verwenden.PDFAConformance
-Wert durch Aufrufen der RenderOptionsSpec
-Objekt setPDFAConformance
-Methode und Übergeben einer PDFAConformance
enum -Wert, der die Konformitätsstufe angibt. Um beispielsweise Konformitätsstufe A anzugeben, übergeben Sie PDFAConformance.A
.PDFARevisionNumber
-Wert durch Aufrufen der RenderOptionsSpec
-Objekt setPDFARevisionNumber
Methode und Übergabe PDFARevisionNumber.Revision_1
.Die PDF-Version eines PDF/A-Dokuments ist 1.4, unabhängig davon, welchen Wert Sie für die RenderOptionsSpec
-Objekt setPdfVersion
-Methode.
Erstellen Sie ein PDF/A-Dokument.
Erstellen Sie ein PDF/A-Dokument, indem Sie die OutputClient
-Objekt generatePDFOutput
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
Auflistungswert. Um ein PDF/A-Dokument zu generieren, geben Sie TransformationFormat.PDFA
.PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.com.adobe.idp.Document
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.Die generatePDFOutput
-Methode gibt eine OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält.
Die OutputResult
-Objekt getRecordLevelMetaDataList
Methodenzurückgaben null
*. *
Sie können auch ein PDF/A-Dokument erstellen, indem Sie die OutputClient
-Objekt generatePDFOutput
2 Methode. (Siehe Übergeben von Dokumenten in Content Services (nicht mehr unterstützt) an den Output-Dienst.
Rufen Sie die Ergebnisse des Vorgangs ab.
com.adobe.idp.Document
-Objekt, das den Status der generatePDFOutput
-Methode durch Aufrufen der OutputResult
-Objekt getStatusDoc
-Methode.java.io.File
-Objekt, das die Ergebnisse des Vorgangs enthält. Stellen Sie sicher, dass die Dateinamenerweiterung .xml lautet.com.adobe.idp.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der com.adobe.idp.Document
-Objekt auf die Datei verweist (stellen Sie sicher, dass Sie die com.adobe.idp.Document
-Objekt, das von der getStatusDoc
-Methode).Obwohl der Output-Dienst das PDF/A-Dokument an den Speicherort schreibt, der durch das an das PDFOutputOptionsSpec
-Objekt setFileURI
-Methode verwenden, können Sie das PDF/A-Dokument programmgesteuert abrufen, indem Sie die OutputResult
-Objekt getGeneratedDoc
* Methode.*
Siehe auch
Schnellstart (SOAP-Modus): Erstellen eines PDF/A-Dokuments mit der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen.
Erstellen Sie ein PDF/A-Dokument mithilfe der Output API (Webdienst):
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/OutputService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
* mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird. *
Erstellen Sie ein Output Client -Objekt.
Erstellen Sie eine OutputServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine OutputServiceClient.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/OutputService?blob=mtom
. Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen. Geben Sie jedoch ?blob=mtom
, um MTOM zu verwenden.
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der OutputServiceClient.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:
OutputServiceClient.ClientCredentials.UserName.UserName
.OutputServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Referenzieren einer XML-Datenquelle.
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern von Daten verwendet, die mit dem PDF/A-Dokument zusammengeführt werden.System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort des zu verschlüsselnden PDF-Dokuments und den 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
-Feld mit dem Inhalt des Byte-Arrays.Festlegen von PDF/A-Laufzeitoptionen.
PDFOutputOptionsSpec
, indem Sie den Konstruktor verwenden.PDFOutputOptionsSpec
-Objekt fileURI
Datenelement. Die Option Datei-URI ist relativ zum J2EE-Anwendungsserver, der als Host für AEM Forms dient, nicht zum ClientcomputerFestlegen von Rendering-Laufzeitoptionen.
RenderOptionsSpec
, indem Sie den Konstruktor verwenden.PDFAConformance
Wert durch Zuweisung eines PDFAConformance
enum -Wert auf RenderOptionsSpec
-Objekt PDFAConformance
Datenelement. Um beispielsweise Konformitätsstufe A anzugeben, weisen Sie PDFAConformance.A
zu diesem Datenelement hinzu.PDFARevisionNumber
Wert durch Zuweisung eines PDFARevisionNumber
enum -Wert auf RenderOptionsSpec
-Objekt PDFARevisionNumber
Datenelement. Zuweisen PDFARevisionNumber.Revision_1
zu diesem Datenelement hinzu.Die PDF-Version eines PDF/A-Dokuments ist 1.4, unabhängig vom angegebenen Wert.
Erstellen Sie ein PDF/A-Dokument.
Erstellen Sie ein PDF-Dokument, indem Sie die OutputServiceService
-Objekt generatePDFOutput
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat.PDFA
.PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.BLOB
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.BLOB
-Objekt, das von der generatePDFOutput
-Methode. Die generatePDFOutput
-Methode füllt dieses Objekt mit generierten Metadaten, die das Dokument beschreiben. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich.)BLOB
-Objekt, das von der generatePDFOutput
-Methode. Die generatePDFOutput
-Methode füllt dieses Objekt mit Ergebnisdaten. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich.)OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich.)Sie können auch ein PDF/A-Dokument erstellen, indem Sie die OutputClient
-Objekt generatePDFOutput
2 Methode. (Siehe Übergeben von Dokumenten in Content Services (nicht mehr unterstützt) an den Output-Dienst.
Rufen Sie die Ergebnisse des Vorgangs ab.
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der einen XML-Dateispeicherort darstellt, der Ergebnisdaten enthält. Stellen Sie sicher, dass die Dateinamenerweiterung .xml lautet.BLOB
-Objekt, das von der OutputServiceService
-Objekt generatePDFOutput
-Methode (der achte Parameter). Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
-Feld.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef
Der Output-Dienst rendert ein nicht interaktives PDF-Formular, das auf einem Formularentwurf basiert, der normalerweise als XDP-gespeichert und in Designer erstellt wird. Sie können eine com.adobe.idp.Document
-Objekt, das den Formularentwurf für den Output-Dienst enthält. Der Output-Dienst rendert dann den Formularentwurf im com.adobe.idp.Document
-Objekt.
Der Vorteil der Übergabe eines com.adobe.idp.Document
Objekt an den Output-Dienst ist, dass andere AEM Forms-Dienstvorgänge eine com.adobe.idp.Document
-Instanz. Das heißt, Sie können eine com.adobe.idp.Document
-Instanz von einem anderen Dienstvorgang aus und rendern Sie ihn. Angenommen, eine XDP-Datei wird in einem Knoten von Content Services (veraltet) gespeichert, der /Company Home/Form Designs
, wie in der folgenden Abbildung dargestellt.
Sie können "Loan.xdp"programmgesteuert aus Content Services (nicht mehr unterstützt) abrufen und die XDP-Datei in einem com.adobe.idp.Document
-Objekt.
Weitere Informationen zum Forms-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Führen Sie die folgenden Aufgaben aus, um ein von Content Services (nicht mehr unterstützt) gespeichertes Dokument an den Output-Dienst zu übergeben:
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, schließen Sie die Proxy-Dateien ein.
Erstellen einer Ausgabe und eines Document Management Client-API-Objekts
Bevor Sie einen Output-Dienst-API-Vorgang programmgesteuert ausführen können, erstellen Sie ein Output Client-API-Objekt. Da mit diesem Workflow eine XDP-Datei aus Content Services (nicht mehr unterstützt) abgerufen wird, erstellen Sie ein Document Management-API-Objekt.
Abrufen des Formularentwurfs aus Content Services (nicht mehr unterstützt)
Rufen Sie die XDP-Datei aus Content Services (nicht mehr unterstützt) ab, indem Sie die Java- oder Webdienst-API verwenden. Die XDP-Datei wird innerhalb einer com.adobe.idp.Document
Instanz (oder BLOB
-Instanz, wenn Sie Webdienste verwenden). Anschließend können Sie die com.adobe.idp.Document
-Instanz zum Output-Dienst.
Nicht interaktives PDF-Formular rendern
Übergeben Sie zum Rendern eines nicht interaktiven Formulars die Variable com.adobe.idp.Document
-Instanz, die von Content Services (nicht mehr unterstützt) an den Output-Dienst zurückgegeben wurde.
Zwei neue Methoden namens generatePDFOutput2
und g eneratePrintedOutput2
akzeptieren com.adobe.idp.Document
-Objekt, das einen Formularentwurf enthält. Sie können auch eine com.adobe.idp.Document
, der den Formularentwurf beim Senden eines Druckstreams an einen Netzwerkdrucker an den Output-Dienst enthält.
Ausführen einer Aktion mit dem Formulardatenstream
Sie können das nicht interaktive Formular als PDF-Datei speichern. Das Formular kann in Adobe Reader oder Acrobat angezeigt werden.
Siehe auch
Übergeben von Dokumenten an den Output-Dienst mithilfe der Java-API
Übergeben von Dokumenten an den Output-Dienst mithilfe der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts zur API für Output Service
Erstellen von PDF-Dokumenten mit Fragmenten
Übergeben Sie ein Dokument, das von Content Services (nicht mehr unterstützt) mithilfe der Output-Dienst- und Content Services-API (nicht mehr unterstützt) abgerufen wurde:
Projektdateien einschließen.
Schließen Sie Client-JAR-Dateien wie adobe-output-client.jar und adobe-contentservices-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie eine Ausgabe und ein Document Management Client-API-Objekt.
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält. (Siehe Einstellung von Verbindungseigenschaften.)OutputClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.DocumentManagementServiceClientImpl
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Rufen Sie den Formularentwurf aus Content Services ab (nicht mehr unterstützt).
Rufen Sie die DocumentManagementServiceClientImpl
-Objekt retrieveContent
-Methode verwenden und die folgenden Werte übergeben:
SpacesStore
. Dieser Wert ist ein obligatorischer Parameter./Company Home/Form Designs/Loan.xdp
). Dieser Wert ist ein obligatorischer Parameter.Die retrieveContent
-Methode gibt eine CRCResult
-Objekt, das die XDP-Datei enthält. Abrufen einer com.adobe.idp.Document
-Instanz durch Aufrufen der CRCResult
-Objekt getDocument
-Methode.
Rendern Sie das nicht interaktive PDF-Formular.
Rufen Sie die OutputClient
-Objekt generatePDFOutput2
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
Auflistungswert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.com.adobe.idp.Document
-Objekt, das den Formularentwurf darstellt (verwenden Sie die vom CRCResult
-Objekt getDocument
-Methode).PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.com.adobe.idp.Document
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.Die generatePDFOutput2
-Methode gibt eine OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält.
Führen Sie eine Aktion mit dem Formulardatenstream aus.
com.adobe.idp.Document
-Objekt, das das nicht interaktive Formular durch Aufrufen der OutputResult
-Objekt getGeneratedDoc
-Methode.java.io.File
-Objekt, das die Ergebnisse des Vorgangs enthält. Stellen Sie sicher, dass die Dateinamenerweiterung .pdf lautet.com.adobe.idp.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der com.adobe.idp.Document
-Objekt auf die Datei verweist (stellen Sie sicher, dass Sie die com.adobe.idp.Document
-Objekt, das von der getGeneratedDoc
-Methode).Siehe auch
Schnellstart (EJB-Modus): Übergeben von Dokumenten an den Output-Dienst mithilfe der Java-API
Schnellstart (SOAP-Modus): Übergeben von Dokumenten an den Output-Dienst mithilfe der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Übergeben Sie ein Dokument, das von Content Services (nicht mehr unterstützt) mithilfe der Output-Dienst- und Content Services-API (nicht mehr unterstützt) abgerufen wurde (Webdienst):
Projektdateien einschließen.
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Da diese Client-Anwendung zwei AEM Forms-Dienste aufruft, erstellen Sie zwei Dienstverweise. Verwenden Sie die folgende WSDL-Definition für den Dienstverweis, der mit dem Output-Dienst verknüpft ist: http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1
.
Verwenden Sie die folgende WSDL-Definition für die Dienstreferenz, die mit dem Document Management-Dienst verknüpft ist: http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1
.
Da die BLOB
Datentyp für beide Dienstverweise verwendet wird, müssen Sie die BLOB
Datentyp bei der Verwendung. Im entsprechenden Webdienst-Schnellstart werden alle BLOB
-Instanzen sind vollständig qualifiziert.
Ersetzen localhost
* mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird. *
Erstellen Sie eine Ausgabe und ein Document Management Client-API-Objekt.
Erstellen Sie eine OutputServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine OutputServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/OutputService?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 OutputServiceClient.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:
OutputServiceClient.ClientCredentials.UserName.UserName
.OutputServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.Konstantenwert zuweisen BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.
Wiederholen Sie diese Schritte für die DocumentManagementServiceClient
* Service-Client. *
Rufen Sie den Formularentwurf aus Content Services ab (nicht mehr unterstützt).
Abrufen von Inhalten durch Aufrufen der DocumentManagementServiceClient
-Objekt retrieveContent
-Methode verwenden und die folgenden Werte übergeben:
SpacesStore
. Dieser Wert ist ein obligatorischer Parameter./Company Home/Form Designs/Loan.xdp
). Dieser Wert ist ein obligatorischer Parameter.BLOB
Ausgabeparameter, der den Inhalt speichert. Sie können diesen Ausgabeparameter verwenden, um den Inhalt abzurufen.ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType
Ausgabeparameter, der Inhaltsattribute speichert.CRCResult
Ausgabeparameter. Anstatt dieses Objekt zu verwenden, können Sie die BLOB
Ausgabeparameter zum Abrufen des Inhalts.Rendern Sie das nicht interaktive PDF-Formular.
Rufen Sie die OutputServiceClient
-Objekt generatePDFOutput2
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
Auflistungswert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.BLOB
-Objekt, das den Formularentwurf darstellt (verwenden Sie die BLOB
-Instanz, die von Content Services (nicht mehr unterstützt) zurückgegeben wird.PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.BLOB
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.BLOB
-Objekt, das von der generatePDFOutput2
-Methode. Die generatePDFOutput2
-Methode füllt dieses Objekt mit generierten Metadaten, die das Dokument beschreiben. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich).OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich).Die generatePDFOutput2
-Methode gibt eine BLOB
-Objekt, das das nicht interaktive PDF-Formular enthält.
Führen Sie eine Aktion mit dem Formulardatenstream aus.
System.IO.FileStream
-Objekt durch Aufrufen seines Konstruktors. Übergeben Sie einen string -Wert, der den Dateispeicherort des interaktiven PDF-Dokuments und den Dateimodus darstellt, in dem die Datei geöffnet werden soll.BLOB
-Objekt, das aus dem generatePDFOutput2
-Methode. Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Der Output-Dienst rendert ein nicht interaktives PDF-Formular, das auf einem Formularentwurf basiert, der normalerweise als XDP-gespeichert und in Designer erstellt wird. Sie können eine com.adobe.idp.Document
-Objekt, das den Formularentwurf für den Output-Dienst enthält. Der Output-Dienst rendert dann den Formularentwurf im com.adobe.idp.Document
-Objekt.
Der Vorteil der Übergabe eines com.adobe.idp.Document
Objekt an den Output-Dienst ist, dass andere AEM Forms-Dienstvorgänge eine com.adobe.idp.Document
-Instanz. Das heißt, Sie können eine com.adobe.idp.Document
-Instanz von einem anderen Dienstvorgang aus und rendern Sie ihn. Angenommen, eine XDP-Datei wird im AEM Forms-Repository gespeichert, wie in der folgenden Abbildung dargestellt.
Die FormsFolder -Ordner ist ein benutzerdefinierter Speicherort im AEM Forms-Repository (dieser Speicherort ist ein Beispiel und ist standardmäßig nicht vorhanden). In diesem Beispiel befindet sich ein Formularentwurf namens "Loan.xdp"in diesem Ordner. Neben dem Formularentwurf können auch andere Formularkomponenten wie Bilder an dieser Stelle gespeichert werden. Der Pfad zu einer Ressource im AEM Forms-Repository lautet:
Applications/Application-name/Application-version/Folder.../Filename
Sie können "Loan.xdp"programmgesteuert aus dem AEM Forms-Repository abrufen und an den Output-Dienst in einem com.adobe.idp.Document
-Objekt.
Sie können eine PDF basierend auf einer XDP-Datei im Repository auf zwei Arten erstellen. Sie können den XDP-Speicherort als Referenz übergeben oder Sie können die XDP programmgesteuert aus dem Repository abrufen und an den Output-Dienst in einer XDP-Datei übergeben.
Schnellstart (EJB-Modus): Erstellen eines PDF-Dokuments basierend auf einer Anwendungs-XDP-Datei mithilfe der Java-API (zeigt, wie der Speicherort der XDP-Datei als Referenz übergeben wird).
Schnellstart (EJB-Modus): Übergeben eines Dokuments im AEM Forms-Repository an den Output-Dienst mithilfe der Java-API (zeigt, wie Sie die XDP-Datei programmgesteuert aus dem AEM Forms-Repository abrufen und an den Output-Dienst in einem com.adobe.idp.Document
-Instanz). (In diesem Abschnitt wird beschrieben, wie Sie diese Aufgabe durchführen.)
Weitere Informationen zum Forms-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Führen Sie die folgenden Aufgaben aus, um ein vom AEM Forms-Repository abgerufenes Dokument an den Output-Dienst zu übergeben:
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, schließen Sie die Proxy-Dateien ein.
Erstellen einer Ausgabe und eines Document Management Client-API-Objekts
Bevor Sie einen Output-Dienst-API-Vorgang programmgesteuert ausführen können, erstellen Sie ein Output Client-API-Objekt. Da mit diesem Workflow eine XDP-Datei aus Content Services (nicht mehr unterstützt) abgerufen wird, erstellen Sie ein Document Management-API-Objekt.
Abrufen des Formularentwurfs aus dem AEM Forms-Repository
Rufen Sie die XDP-Datei mithilfe der Repository-API aus dem AEM Forms-Repository ab. (Siehe Lesen von Ressourcen.
Die XDP-Datei wird innerhalb einer com.adobe.idp.Document
Instanz (oder BLOB
-Instanz, wenn Sie Webdienste verwenden). Anschließend können Sie die com.adobe.idp.Document
-Instanz des Output-Dienstes.
Nicht interaktives PDF-Formular rendern
Übergeben Sie zum Rendern eines nicht interaktiven Formulars die Variable com.adobe.idp.Document
-Instanz, die mithilfe der AEM Forms Repository-API zurückgegeben wurde.
Zwei neue Methoden namens generatePDFOutput2
und generatePrintedOutput2
akzeptieren com.adobe.idp.Document
-Objekt, das einen Formularentwurf enthält. Sie können auch eine com.adobe.idp.Document
, der den Formularentwurf beim Senden eines Druckstreams an einen Netzwerkdrucker an den Output-Dienst enthält.
Ausführen einer Aktion mit dem Formulardatenstream
Sie können das nicht interaktive Formular als PDF-Datei speichern. Das Formular kann in Adobe Reader oder Acrobat angezeigt werden.
Siehe auch
Übergeben von Dokumenten im Repository an den Output-Dienst mithilfe der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts zur API für Output Service
ResourceRepositoryClient
Übergeben Sie ein aus dem Repository abgerufenes Dokument mithilfe des Output-Dienstes und der Repository-API (Java):
Projektdateien einschließen.
Schließen Sie Client-JAR-Dateien wie adobe-output-client.jar und adobe-repository-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie eine Ausgabe und ein Document Management Client-API-Objekt.
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält. (Siehe Einstellung von Verbindungseigenschaften.)OutputClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.DocumentManagementServiceClientImpl
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Rufen Sie den Formularentwurf aus dem AEM Forms-Repository ab.
Rufen Sie die ResourceRepositoryClient
-Objekt readResourceContent
-Methode verwenden und einen string -Wert übergeben, der den URI-Speicherort an die XDP-Datei angibt. Beispiel: /Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. Dieser Wert ist ein Pflichtwert. Diese Methode gibt eine com.adobe.idp.Document
-Instanz, die die XDP-Datei darstellt.
Rendern Sie das nicht interaktive PDF-Formular.
Rufen Sie die OutputClient
-Objekt generatePDFOutput2
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
Auflistungswert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.repository:///Applications/FormsApplication/1.0/FormsFolder/
.com.adobe.idp.Document
-Objekt, das den Formularentwurf darstellt (verwenden Sie die vom ResourceRepositoryClient
-Objekt readResourceContent
-Methode).PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.com.adobe.idp.Document
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.Die generatePDFOutput2
-Methode gibt eine OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält.
Führen Sie eine Aktion mit dem Formulardatenstream aus.
com.adobe.idp.Document
-Objekt, das das nicht interaktive Formular durch Aufrufen der OutputResult
-Objekt getGeneratedDoc
-Methode.java.io.File
-Objekt, das die Ergebnisse des Vorgangs enthält. Stellen Sie sicher, dass die Dateinamenerweiterung .pdf lautet.com.adobe.idp.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der com.adobe.idp.Document
-Objekt auf die Datei verweist (stellen Sie sicher, dass Sie die com.adobe.idp.Document
-Objekt, das von der getGeneratedDoc
-Methode).Siehe auch
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Sie können die Output- und Assembler-Dienste verwenden, um einen Ausgabestream zu erstellen, z. B. ein PDF-Dokument, das auf Fragmenten basiert. Der Assembler-Dienst stellt ein XDP-Dokument zusammen, das auf Fragmenten in mehreren XDP-Dateien basiert. Das assemblierte XDP-Dokument wird an den Output-Dienst übergeben, der ein PDF-Dokument erstellt. Obwohl dieser Workflow ein zu erstellendes PDF-Dokument anzeigt, kann der Output-Dienst für diesen Workflow andere Ausgabetypen wie ZPL generieren. Ein PDF-Dokument dient nur zu Diskussionszwecken.
Die folgende Abbildung zeigt diesen Workflow.
Vor dem Lesen Erstellen von PDF-Dokumenten mit Fragmenten sollten Sie sich mit der Verwendung des Assembler-Dienstes zum Zusammenführen mehrerer XDP-Dokumente vertraut machen. (Siehe Assemblieren mehrerer XDP-Fragmente.
Sie können auch einen vom Assembler-Dienst zusammengestellten Formularentwurf an den Forms-Dienst anstelle des Output-Dienstes übergeben. Der Hauptunterschied zwischen dem Output-Dienst und dem Forms-Dienst besteht darin, dass der Forms-Dienst interaktive PDF-Dokumente generiert und der Output-Dienst nicht interaktive PDF-Dokumente erzeugt. Außerdem kann der Forms-Dienst keine druckerbasierten Ausgabestreams wie ZPL generieren.
Weitere Informationen zum Output-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Um ein auf Fragmenten basierendes PDF-Dokument zu erstellen, 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.
Erstellen eines Output- und Assembler-Client-Objekts
Bevor Sie einen Output-Dienst-API-Vorgang programmgesteuert ausführen können, erstellen Sie ein Output Client-API-Objekt. Da dieser Workflow den Assembler-Dienst aufruft, um den Formularentwurf zu erstellen, erstellen Sie außerdem ein Assembler-Client-API-Objekt.
Verwenden des Assembler-Dienstes zum Generieren des Formularentwurfs
Verwenden Sie den Assembler-Dienst, um den Formularentwurf mithilfe von Fragmenten zu generieren. Der Assembler-Dienst gibt einen com.adobe.idp.Document
-Instanz, die den Formularentwurf enthält.
Verwenden des Output-Dienstes zum Generieren des PDF-Dokuments
Sie können den Output-Dienst verwenden, um ein PDF-Dokument mit dem Formularentwurf zu generieren, den der Assembler-Dienst erstellt hat. Übergeben Sie die com.adobe.idp.Document
-Instanz, die der Assembler-Dienst an den Output-Dienst zurückgegeben hat.
PDF-Dokument als PDF-Datei speichern
Nachdem der Output-Dienst ein PDF-Dokument generiert hat, können Sie es als PDF-Datei speichern.
Siehe auch
Erstellen eines PDF-Dokuments basierend auf Fragmenten mithilfe der Java-API
Erstellen eines PDF-Dokuments basierend auf Fragmenten mithilfe der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts zur API für Output Service
Assemblieren mehrerer XDP-Fragmente
Erstellen Sie ein PDF-Dokument basierend auf Fragmenten mithilfe der Output Service-API und der Assembler-Dienst-API (Java):
Projektdateien einschließen.
Schließen Sie Client-JAR-Dateien wie adobe-output-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie ein Output- und Assembler-Client-Objekt.
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.OutputClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.AssemblerServiceClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.Verwenden Sie den Assembler-Dienst, um den Formularentwurf zu generieren.
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 darstellt.java.util.Map
-Objekt, das die XDP-Eingabedateien enthält.com.adobe.livecycle.assembler.client.AssemblerOptionSpec
-Objekt, das die Laufzeitoptionen angibt, einschließlich der Standardschrift und der Auftragsprotokollebene.Die invokeDDX
-Methode gibt eine com.adobe.livecycle.assembler.client.AssemblerResult
-Objekt, das das assemblierte XDP-Dokument enthält. Um das assemblierte XDP-Dokument abzurufen, führen Sie die folgenden Aktionen aus:
AssemblerResult
-Objekt getDocuments
-Methode. Diese Methode gibt 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 zum Extrahieren des assemblierten XDP-Dokuments.Verwenden Sie den Output-Dienst, um das PDF-Dokument zu generieren.
Rufen Sie die OutputClient
-Objekt generatePDFOutput2
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
Auflistungswert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
com.adobe.idp.Document
-Objekt, das den Formularentwurf darstellt (verwenden Sie die vom Assembler-Dienst zurückgegebene Instanz)PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthältRenderOptionsSpec
Objekt, das Laufzeitoptionen zum Rendern enthältcom.adobe.idp.Document
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollenDie generatePDFOutput2
-Methode gibt eine OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält
Speichern Sie das PDF-Dokument als PDF-Datei.
com.adobe.idp.Document
-Objekt, das das PDF-Dokument darstellt, indem das OutputResult
-Objekt getGeneratedDoc
-Methode.java.io.File
-Objekt, das die Ergebnisse des Vorgangs enthält. Stellen Sie sicher, dass die Dateinamenerweiterung .pdf lautet.com.adobe.idp.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der com.adobe.idp.Document
-Objekt in die Datei ein. (Stellen Sie sicher, dass Sie die com.adobe.idp.Document
-Objekt, das getGeneratedDoc
-Methode zurückgegeben.)Siehe auch
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen.
Erstellen Sie ein PDF-Dokument basierend auf Fragmenten mithilfe der Output Service-API und der Assembler-Dienst-API (Webdienst):
Projektdateien einschließen.
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Verwenden Sie die folgende WSDL-Definition für den Dienstverweis, der mit dem Output-Dienst verknüpft ist:
http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.
Verwenden Sie die folgende WSDL-Definition für die Dienstreferenz, die mit dem Assembler-Dienst verknüpft ist:
http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1.
Da die BLOB
Datentyp für beide Dienstverweise verwendet wird, müssen Sie die BLOB
Datentyp bei der Verwendung. Im entsprechenden Webdienst-Schnellstart werden alle BLOB
-Instanzen sind vollständig qualifiziert.
Ersetzen localhost
* mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird. *
Erstellen Sie ein Output- und Assembler-Client-Objekt.
Erstellen Sie eine OutputServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine OutputServiceClient.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/OutputService?blob=mtom
. Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen. Geben Sie jedoch ?blob=mtom
, um MTOM zu verwenden.
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der OutputServiceClient.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:
OutputServiceClient.ClientCredentials.UserName.UserName
-Feld.OutputServiceClient.ClientCredentials.UserName.Password
-Feld.HttpClientCredentialType.Basic
der BasicHttpBindingSecurity.Transport.ClientCredentialType
-Feld.Zuweisen der BasicHttpSecurityMode.TransportCredentialOnly
Konstantenwert zum BasicHttpBindingSecurity.Security.Mode
-Feld.
Wiederholen Sie diese Schritte für die AssemblerServiceClient
* -Objekt. *
Verwenden Sie den Assembler-Dienst, um den Formularentwurf zu generieren.
Rufen Sie die AssemblerServiceClient
-Objekt invokeDDX
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das das DDX-Dokument darstelltMyMapOf_xsd_string_To_xsd_anyType
-Objekt, das die erforderlichen Dateien enthältAssemblerOptionSpec
-Objekt, das Laufzeitoptionen angibtDie invokeDDX
-Methode gibt eine AssemblerResult
-Objekt, das die Ergebnisse des Auftrags sowie alle aufgetretenen Ausnahmen enthält. Um das neu erstellte XDP-Dokument abzurufen, führen Sie die folgenden Aktionen aus:
AssemblerResult
-Objekt documents
-Feld, das ein Map
-Objekt, das die resultierenden PDF-Dokumente enthält.Map
-Objekt, um den zusammengestellten Formularentwurf abzurufen. Schließen Sie die value
zu BLOB
. Weiterleiten BLOB
-Instanz zum Output-Dienst.Verwenden Sie den Output-Dienst, um das PDF-Dokument zu generieren.
Rufen Sie die OutputServiceClient
-Objekt generatePDFOutput2
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
Auflistungswert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.BLOB
-Objekt, das den Formularentwurf darstellt (verwenden Sie die BLOB
-Instanz, die vom Assembler-Dienst zurückgegeben wird).PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.BLOB
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.BLOB
-Objekt, das generatePDFOutput2
-Methode gefüllt. Die generatePDFOutput2
-Methode füllt dieses Objekt mit generierten Metadaten, die das Dokument beschreiben. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich).OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich).Die generatePDFOutput2
-Methode gibt eine BLOB
-Objekt, das das nicht interaktive PDF-Formular enthält.
Speichern Sie das PDF-Dokument als PDF-Datei.
System.IO.FileStream
-Objekt durch Aufrufen seines Konstruktors. Übergeben Sie einen string -Wert, der den Dateispeicherort des interaktiven PDF-Dokuments und den Dateimodus darstellt, in dem die Datei geöffnet werden soll.BLOB
-Objekt, das aus dem generatePDFOutput2
-Methode. Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Mit dem Output-Dienst können Sie Streams wie PostScript, Printer Control Language (PCL) oder die folgenden Beschriftungsformate in eine Datei drucken:
Mit dem Output-Dienst können Sie XML-Daten mit einem Formularentwurf zusammenführen und das Formular in eine Datei drucken. Die folgende Abbildung zeigt den Output-Dienst zum Erstellen von Laser- und Beschriftungsdateien.
Informationen zum Senden von Druckstreams an Drucker finden Sie unter Senden von Druck-Streams an Drucker.
Weitere Informationen zum Output-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Führen Sie die folgenden Schritte aus, um in eine Datei zu drucken:
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 unterstützten J2EE-Anwendungsserver bereitgestellt wird, der nicht JBoss ist, müssen Sie die Dateien "adobe-utilities.jar"und "jbossall-client.jar"durch JAR-Dateien ersetzen, die spezifisch für den J2EE-Anwendungsserver sind, auf dem AEM Forms bereitgestellt wird. (Siehe Einbeziehung von AEM Forms Java-Bibliotheksdateien.)
Erstellen eines Output Client-Objekts
Bevor Sie einen Output-Dienstvorgang programmgesteuert ausführen können, müssen Sie ein Output-Dienst-Client-Objekt erstellen. Wenn Sie die Java-API verwenden, erstellen Sie eine OutputClient
-Objekt. Wenn Sie die Output-Webdienst-API verwenden, erstellen Sie eine OutputServiceService
-Objekt.
Referenzieren einer XML-Datenquelle
Zum Drucken eines Dokuments, das Daten enthält, müssen Sie eine XML-Datenquelle referenzieren, die XML-Elemente für jedes Formularfeld enthält, das mit Daten gefüllt werden soll. Der Name des XML-Elements muss mit dem Feldnamen übereinstimmen. Ein XML-Element wird ignoriert, wenn es keinem Formularfeld entspricht oder wenn der XML-Elementname nicht mit dem Feldnamen übereinstimmt. Wenn alle XML-Elemente angegeben sind, muss die Reihenfolge, in der die XML-Elemente angezeigt werden, nicht eingehalten werden.
Festlegen der zum Drucken in einer Datei erforderlichen Drucklaufzeitoptionen
Um in eine Datei zu drucken, müssen Sie die Laufzeitoption Datei-URI festlegen, indem Sie den Speicherort und den Namen der Datei angeben, in die der Output-Dienst druckt. So weisen Sie beispielsweise den Output-Dienst an, eine PostScript-Datei mit dem Namen MortgageForm.ps auf C:\Adobe, geben Sie C:\Adobe\MortgageForm.ps an.
Es gibt optionale Laufzeitoptionen, die Sie definieren können. Informationen zu allen Optionen, die Sie festlegen können, finden Sie unter PrintedOutputOptionsSpec
Klassenreferenz in AEM Forms API-Referenz.
Druckdatenstrom in eine Datei drucken
Nachdem Sie eine gültige XML-Datenquelle referenziert haben, die Formulardaten enthält, und Drucklaufzeitoptionen festgelegt haben, können Sie den Output-Dienst aufrufen, wodurch eine Datei gedruckt wird.
Ergebnisse des Vorgangs abrufen
Nachdem der Output-Dienst einen Vorgang ausgeführt hat, werden verschiedene Datenelemente wie XML-Daten zurückgegeben, die angeben, ob der Vorgang erfolgreich war.
Siehe auch
Drucken in Dateien mithilfe der Java-API
Drucken in Dateien mithilfe der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts zur API für Output Service
Drucken Sie mit der Output API (Java) in eine Datei:
Projektdateien einschließen.
Schließen Sie Client-JAR-Dateien wie die Datei "adobe-output-client.jar"in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie ein Output Client -Objekt.
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.OutputClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.Referenzieren einer XML-Datenquelle.
java.io.FileInputStream
-Objekt, das die XML-Datenquelle darstellt, die zum Ausfüllen des Dokuments mithilfe seines Konstruktors verwendet wird, und einen string -Wert übergibt, der den Speicherort der XML-Datei angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Legen Sie die zum Drucken in eine Datei erforderlichen Drucklaufzeitoptionen fest.
PrintedOutputOptionsSpec
, indem Sie den Konstruktor verwenden.setFileURI
-Methode verwenden und einen string -Wert übergeben, der den Namen und Speicherort der Datei darstellt. Wenn Sie beispielsweise möchten, dass der Output-Dienst in eine PostScript-Datei mit dem Namen "MortgageForm.ps"unter C:\Adobe druckt, geben Sie C:\Adobe\MortgageForm.ps an.PrintedOutputOptionsSpec
-Objekt setCopies
-Methode verwenden und einen ganzzahligen Wert übergeben, der die Anzahl der Exemplare darstellt.Drucken Sie den Druckdatenstrom in eine Datei.
Drucken Sie in einer Datei, indem Sie die OutputClient
-Objekt generatePrintedOutput
-Methode verwenden und die folgenden Werte übergeben:
PrintFormat
Auflistungswert, der das zu erstellende Druckstream-Format angibt. Um beispielsweise einen PostScript-Druckstream zu erstellen, übergeben Sie PrintFormat.PostScript
.null
, wenn Sie die XDC-Datei angegeben haben, die verwendet werden soll, indem Sie die PrintedOutputOptionsSpec
-Objekt).PrintedOutputOptionsSpec
-Objekt, das Laufzeitoptionen enthält, die zum Drucken in eine Datei erforderlich sind.com.adobe.idp.Document
-Objekt, das die XML-Datenquelle enthält, die Formulardaten enthält.Die generatePrintedOutput
-Methode gibt eine OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält.
Die OutputResult
-Objekt getRecordLevelMetaDataList
Methodenzurückgaben null
*. *
Rufen Sie die Ergebnisse des Vorgangs ab.
com.adobe.idp.Document
-Objekt, das den Status der generatePrintedOutput
-Methode durch Aufrufen der OutputResult
-Objekt getStatusDoc
-Methode OutputResult
-Objekt wurde von der generatePrintedOutput
-Methode).java.io.File
-Objekt, das die Ergebnisse des Vorgangs enthält. Stellen Sie sicher, dass die Dateierweiterung XML ist.com.adobe.idp.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der com.adobe.idp.Document
-Objekt auf die Datei verweist (stellen Sie sicher, dass Sie die com.adobe.idp.Document
-Objekt, das von der getStatusDoc
-Methode).Siehe auch
Schnellstart (SOAP-Modus): Drucken in einer Datei mit der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen.
Drucken Sie mit der Output API (Webdienst) in eine Datei:
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/OutputService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
* mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird. *
Erstellen Sie ein Output Client -Objekt.
Erstellen Sie eine OutputServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine OutputServiceClient.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/OutputService?blob=mtom
. Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen. Geben Sie jedoch ?blob=mtom
, um MTOM zu verwenden.
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der OutputServiceClient.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:
OutputServiceClient.ClientCredentials.UserName.UserName
.OutputServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Referenzieren einer XML-Datenquelle.
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern von Formulardaten verwendet.System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Speicherort der XML-Datei angibt, die Formulardaten enthält.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 binaryData
-Eigenschaft mit dem Inhalt des Byte-Arrays.Legen Sie die zum Drucken in eine Datei erforderlichen Drucklaufzeitoptionen fest.
PrintedOutputOptionsSpec
, indem Sie den Konstruktor verwenden.PrintedOutputOptionsSpec
-Objekt fileURI
Datenelement. Wenn der Output-Dienst beispielsweise in eine PostScript-Datei mit dem Namen MortgageForm.ps unter C:\Adobe, geben Sie C:\Adobe\MortgageForm.ps an.PrintedOutputOptionsSpec
-Objekt copies
Datenmitglieder.Drucken Sie den Druckdatenstrom in eine Datei.
Drucken Sie in einer Datei, indem Sie die OutputServiceService
-Objekt generatePrintedOutput
-Methode verwenden und die folgenden Werte übergeben:
PrintFormat
Auflistungswert, der das zu erstellende Druckstream-Format angibt. Um beispielsweise einen PostScript-Druckstream zu erstellen, übergeben Sie PrintFormat.PostScript
.null
, wenn Sie die XDC-Datei angegeben haben, die verwendet werden soll, indem Sie die PrintedOutputOptionsSpec
-Objekt).PrintedOutputOptionsSpec
-Objekt, das zum Drucken in eine Datei erforderliche Drucklaufzeitoptionen enthält.BLOB
-Objekt, das die XML-Datenquelle enthält, die Formulardaten enthält.BLOB
-Objekt, das von der generatePDFOutput
-Methode. Die generatePDFOutput
-Methode füllt dieses Objekt mit generierten Metadaten, die das Dokument beschreiben. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich.)BLOB
-Objekt, das von der generatePDFOutput
-Methode. Die generatePDFOutput
-Methode füllt dieses Objekt mit Ergebnisdaten. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich.)OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich.)Rufen Sie die Ergebnisse des Vorgangs ab.
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der einen XML-Dateispeicherort darstellt, der Ergebnisdaten enthält. Stellen Sie sicher, dass die Dateierweiterung XML ist.BLOB
-Objekt, das von der OutputServiceService
-Objekt generatePDFOutput
-Methode (der achte Parameter). Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef
Sie können den Output-Dienst verwenden, um Druckstreams wie PostScript, Printer Control Language (PCL) oder die folgenden Beschriftungsformate an Netzwerkdrucker zu senden:
Mit dem Output-Dienst können Sie XML-Daten mit einem Formularentwurf zusammenführen und das Formular als Druckstream ausgeben. Sie können beispielsweise einen PostScript-Druckstream erstellen und an einen Netzwerkdrucker senden. Die folgende Abbildung zeigt den Output-Dienst, der Druckstreams an Netzwerkdrucker sendet.
Um zu demonstrieren, wie ein Druckstrom an einen Netzwerkdrucker gesendet wird, sendet dieser Abschnitt einen PostScript-Druckstrom mithilfe des SharedPrinter-Druckerprotokolls an einen Netzwerkdrucker.
Weitere Informationen zum Output-Dienst finden Sie unter Dienstreferenz für AEM Forms.
So senden Sie einen Druckstream an einen Netzwerkdrucker:
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 unterstützten J2EE-Anwendungsserver bereitgestellt wird, der nicht JBoss ist, müssen Sie die Dateien "adobe-utilities.jar"und "jbossall-client.jar"durch JAR-Dateien ersetzen, die spezifisch für den J2EE-Anwendungsserver sind, auf dem AEM Forms bereitgestellt wird.
Erstellen eines Output Client-Objekts
Bevor Sie einen Output-Dienstvorgang programmgesteuert ausführen können, erstellen Sie ein Output-Dienst-Client-Objekt. Wenn Sie die Java-API verwenden, erstellen Sie eine OutputClient
-Objekt. Wenn Sie die Output-Webdienst-API verwenden, erstellen Sie eine OutputServiceClient
-Objekt.
Referenzieren einer XML-Datenquelle
Zum Drucken eines Dokuments, das Daten enthält, müssen Sie eine XML-Datenquelle referenzieren, die XML-Elemente für jedes Formularfeld enthält, das mit Daten gefüllt werden soll. Der Name des XML-Elements muss mit dem Feldnamen übereinstimmen. Ein XML-Element wird ignoriert, wenn es keinem Formularfeld entspricht oder wenn der XML-Elementname nicht mit dem Feldnamen übereinstimmt. Wenn alle XML-Elemente angegeben sind, muss die Reihenfolge, in der die XML-Elemente angezeigt werden, nicht eingehalten werden.
Festlegen von Drucklaufzeitoptionen
Sie können die Laufzeitoptionen beim Senden eines Druckstreams an einen Drucker festlegen, einschließlich der folgenden Optionen:
Informationen zu allen Laufzeitoptionen, die Sie festlegen können, finden Sie unter PrintedOutputOptionsSpec
-Klassenreferenz.
Abrufen eines zu druckenden Dokuments
Rufen Sie einen Druckstream ab, der an einen Drucker gesendet werden soll. Sie können beispielsweise eine PostScript-Datei abrufen und an einen Drucker senden.
Sie können eine PDF-Datei senden, wenn Ihr Drucker PDF unterstützt. Ein Problem beim Senden eines PDF-Dokuments an einen Drucker besteht jedoch darin, dass jeder Druckerhersteller über eine andere Implementierung des PDF-Interpreters verfügt. Das heißt, einige Druckereien verwenden die Adobe PDF-Interpretation, aber es hängt vom Drucker ab. Andere Drucker haben einen eigenen PDF-Interpreter. Daher können die Druckergebnisse variieren.
Eine weitere Einschränkung beim Senden eines PDF-Dokuments an einen Drucker besteht darin, dass es nur gedruckt wird. Es kann nicht auf Duplex, Papierfachauswahl und Stapeln zugreifen, außer durch Einstellungen am Drucker.
Um ein zu druckendes Dokument abzurufen, verwenden Sie die generatePrintedOutput
-Methode. In der folgenden Tabelle sind die Inhaltstypen aufgeführt, die für einen bestimmten Druckstream festgelegt werden, wenn die generatePrintedOutput
-Methode.
Druckformat |
Beschreibung |
---|---|
DPL |
Erstellt einen standardmäßigen oder benutzerdefinierten xdc-Ausgabestream dpl203.xdc. |
DPL300DPI |
Erstellt einen DPL-Ausgabe-Stream mit 300 DPI. |
DPL406DPI |
Erstellt einen DPL-Ausgabe-Stream mit 400 DPI. |
DPL600DPI |
Erstellt einen DPL-Ausgabe-Stream mit 600 DPI. |
GenericColorPCL |
Erstellt einen generischen Farb-PCL (5c)-Ausgabestream. |
GenericPSLevel3 |
Erstellt einen generischen PostScript Level 3-Ausgabestream. |
IPL |
Erstellt einen benutzerdefinierten IPL-Ausgabestream. |
IPL 300 DPI |
Erstellt einen IPL-Ausgabe-Stream mit 300 DPI. |
IPL 400 DPI |
Erstellt einen IPL-Ausgabe-Stream mit 400 DPI. |
PCL |
Erstellt einen generischen monochrome PCL (5e)-Ausgabestream. |
PostScript |
Erstellt einen generischen PostScript Level 2-Ausgabestream. |
TPCL |
Erstellt einen benutzerdefinierten TPCL-Ausgabestream. |
TPCL305DPI |
Erstellt einen TPCL 305-DPI-Ausgabestream. |
TPCL600DPI |
Erstellt einen TPCL-Ausgabe-Stream mit 600 DPI. |
ZPL |
Erstellt einen ZPL-Ausgabe-Stream mit 203 DPI. |
ZPL 300 DPI |
Erstellt einen ZPL-Ausgabestream mit 300 DPI. |
Sie können auch einen Druckstream an einen Drucker senden, indem Sie generatePrintedOutput2
-Methode. Die Schnellstarts, die mit dem Abschnitt Senden von Druckstreams an Drucker verknüpft sind, verwenden jedoch die generatePrintedOutput
-Methode.
Senden Sie den Druckstrom an einen Netzwerkdrucker.
Nachdem Sie ein zu druckendes Dokument abgerufen haben, können Sie den Output-Dienst aufrufen, wodurch ein Druckstream an einen Netzwerkdrucker gesendet wird. Damit der Output-Dienst den Drucker erfolgreich finden kann, müssen Sie sowohl den Druckserver als auch den Druckernamen angeben. Darüber hinaus müssen Sie auch das Druckprotokoll angeben.
Wenn PDFG auf dem Formularserver installiert ist und der Server unter Windows Server 2008 ausgeführt wird, können Sie die SharedPrinter-Eigenschaft nicht verwenden. Verwenden Sie in diesem Fall ein anderes Druckerprotokoll.
Wenn Sie einen Netzwerkdrucker verwenden und der Zugriffsmechanismus SharedPrinter lautet, müssen Sie den vollständigen Netzwerkpfad des Druckers angeben. Senden Sie einen Druckstrom mithilfe der Java-API an einen Netzwerkdrucker.
Senden Sie mithilfe der Output API (Java) einen Druckstream an einen Netzwerkdrucker:
Projektdateien einschließen.
Schließen Sie Client-JAR-Dateien wie die Datei "adobe-output-client.jar"in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Output Client-Objekts
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.OutputClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.Referenzieren einer XML-Datenquelle
java.io.FileInputStream
-Objekt, das die XML-Datenquelle darstellt, die zum Ausfüllen des Dokuments mithilfe seines Konstruktors verwendet wird, und einen string -Wert übergibt, der den Speicherort der XML-Datei angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Festlegen von Drucklaufzeitoptionen
Erstellen Sie eine PrintedOutputOptionsSpec
-Objekt, das Drucklaufzeitoptionen darstellt. Sie können beispielsweise die Anzahl der zu druckenden Kopien angeben, indem Sie die PrintedOutputOptionsSpec
-Objekt setCopies
-Methode.
Sie können den Paginierungswert nicht mithilfe der Variablen PrintedOutputOptionsSpec
-Objekt setPagination
-Methode verwenden, wenn Sie einen ZPL-Druckstrom generieren. Ebenso können Sie die folgenden Optionen für einen ZPL-Druckstream nicht festlegen: OutputJog, PageOffset und Staple. Die setPagination
* ist für die PostScript-Generierung nicht gültig. Sie gilt nur für die PCL-Generierung. *
Abrufen eines zu druckenden Dokuments
Abrufen eines zu druckenden Dokuments durch Aufrufen der OutputClient
-Objekt generatePrintedOutput
-Methode verwenden und die folgenden Werte übergeben:
PrintFormat
Auflistungswert, der den Druckstrom angibt. Um beispielsweise einen PostScript-Druckstream zu erstellen, übergeben Sie PrintFormat.PostScript
.PrintedOutputOptionsSpec
-Objekt, das Laufzeitoptionen enthält, die zum Drucken in einer Datei erforderlich sind.com.adobe.idp.Document
-Objekt, das die XML-Datenquelle darstellt, die die mit dem Formularentwurf zusammenzuführenden Formulardaten enthält.Diese Methode gibt eine OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält.
Erstellen Sie eine com.adobe.idp.Document
-Objekt, das durch Aufrufen des OutputResult
object ‘s getGeneratedDoc
-Methode. Diese Methode gibt eine com.adobe.idp.Document
-Objekt.
Senden Sie den Druckstrom an einen Netzwerkdrucker.
Senden Sie den Druckstrom an einen Netzwerkdrucker, indem Sie die OutputClient
-Objekt sendToPrinter
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das den an den Drucker zu sendenden Druckstrom darstellt.PrinterProtocol
enumeration -Wert, der das zu verwendende Druckerprotokoll angibt. Um beispielsweise das SharedPrinter-Protokoll anzugeben, übergeben Sie PrinterProtocol.SharedPrinter
.\\\PrintSever1
.\\\PrintSever1\Printer1
.Die sendToPrinter
wurde der AEM Forms-API in Version 8.2.1 hinzugefügt.
Senden Sie mithilfe der Output-API (Webdienst) einen Druckdatenstrom an einen Netzwerkdrucker:
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/OutputService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
* mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird. *
Erstellen Sie ein Output Client -Objekt.
Erstellen Sie eine OutputServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine OutputServiceClient.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/OutputService?blob=mtom
. Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen. Geben Sie jedoch ?blob=mtom
, um MTOM zu verwenden.
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der OutputServiceClient.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:
OutputServiceClient.ClientCredentials.UserName.UserName
.OutputServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Referenzieren einer XML-Datenquelle.
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern von Formulardaten verwendet.System.IO.FileStream
-Objekt durch Aufrufen seines Konstruktors. Übergeben Sie einen string -Wert, der den Speicherort der XML-Datei angibt, die Formulardaten enthält.System.IO.FileStream
-Objekt. Bestimmen Sie die Byte-Array-Länge, 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.Festlegen von Drucklaufzeitoptionen.
Erstellen Sie ein Objekt PrintedOutputOptionsSpec
, indem Sie den Konstruktor verwenden. Sie können beispielsweise die Anzahl der zu druckenden Exemplare angeben, indem Sie dem Wert PrintedOutputOptionsSpec
-Objekt copies
Datenelement.
Sie können den Paginierungswert nicht mithilfe der Variablen PrintedOutputOptionsSpec
-Objekt pagination
Datenelement, wenn Sie einen ZPL-Druckstream generieren. Ebenso können Sie die folgenden Optionen für einen ZPL-Druckstream nicht festlegen: OutputJog, PageOffset und Staple. Die pagination
* -Datenelement ist für die PostScript-Generierung nicht gültig. Sie gilt nur für die PCL-Generierung. *
Abrufen eines zu druckenden Dokuments.
Abrufen eines zu druckenden Dokuments durch Aufrufen der OutputServiceService
-Objekt generatePrintedOutput
-Methode verwenden und die folgenden Werte übergeben:
PrintFormat
Auflistungswert, der den Druckstrom angibt. Um beispielsweise einen PostScript-Druckstream zu erstellen, übergeben Sie PrintFormat.PostScript
.PrintedOutputOptionsSpec
-Objekt, das Drucklaufzeitoptionen enthält, die beim Senden eines Druckstreams an einen Netzwerkdrucker verwendet werden.BLOB
-Objekt, das die XML-Datenquelle enthält, die Formulardaten enthält.BLOB
-Objekt, das von der generatePrintedOutput
-Methode. Die generatePrintedOutput
-Methode füllt dieses Objekt mit generierten Metadaten, die das Dokument beschreiben. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich.)BLOB
-Objekt, das von der generatePrintedOutput
-Methode. Die generatePrintedOutput
-Methode füllt dieses Objekt mit Ergebnisdaten. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich.)OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich.)Erstellen Sie eine BLOB
-Objekt, das an den Drucker gesendet wird, indem der Wert des OutputResult
object ‘s generatedDoc
-Methode. Diese Methode gibt eine BLOB
-Objekt, das PostScript-Daten enthält, die von der generatePrintedOutput
-Methode.
Senden Sie den Druckstrom an einen Netzwerkdrucker.
Senden Sie den Druckstrom an einen Netzwerkdrucker, indem Sie die OutputClient
-Objekt sendToPrinter
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das den an den Drucker zu sendenden Druckstrom darstellt.PrinterProtocol
enumeration -Wert, der das zu verwendende Druckerprotokoll angibt. Um beispielsweise das SharedPrinter-Protokoll anzugeben, übergeben Sie PrinterProtocol.SharedPrinter
.bool
-Wert, der angibt, ob der vorherige Parameterwert verwendet werden soll. Übergeben des Werts true
. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich.)\\\PrintSever1
.\\\PrintSever1\Printer1
.Die sendToPrinter
wurde der AEM Forms-API in Version 8.2.1 hinzugefügt.
Der Output-Dienst kann für jeden Datensatz in einer XML-Datenquelle oder in einer Datei, die alle Datensätze enthält, separate Dokumente erstellen (diese Funktion ist die Standardfunktion). Angenommen, zehn Datensätze befinden sich in einer XML-Datenquelle und Sie weisen den Output-Dienst an, mithilfe der Output-Dienst-API für jeden Datensatz separate PDF-Dokumente (oder andere Ausgabetypen) zu erstellen. Daher generiert der Output-Dienst zehn PDF-Dokumente. (Anstatt Dokumente zu erstellen, können Sie mehrere Druck-Streams an einen Drucker senden.)
Die folgende Abbildung zeigt auch den Output-Dienst, der eine XML-Datendatei verarbeitet, die mehrere Datensätze enthält. Nehmen Sie jedoch an, dass Sie den Output-Dienst anweisen, ein einzelnes PDF-Dokument zu erstellen, das alle Datensätze enthält. In diesem Fall generiert der Output-Dienst ein Dokument, das alle Datensätze enthält.
Die folgende Abbildung zeigt den Output-Dienst, der eine XML-Datendatei verarbeitet, die mehrere Datensätze enthält. Angenommen, Sie weisen den Output-Dienst an, für jeden Datensatz ein separates PDF-Dokument zu erstellen. In diesem Fall generiert der Output-Dienst für jeden Datensatz ein separates PDF-Dokument.
Die folgenden XML-Daten zeigen ein Beispiel einer Datendatei, die drei Datensätze enthält.
<?xml version="1.0" encoding="UTF-8"?>
<batch>
<LoanRecord>
<mortgageAmount>500000</mortgageAmount>
<lastName>Blue</lastName>
<firstName>Tony</firstName>
<SSN>555666777</SSN>
<PositionTitle>Product Manager</PositionTitle>
<Address>555 No Where Dr</Address>
<City>New York</City>
<StateProv>New York</StateProv>
<ZipCode>51256</ZipCode>
<Email>TBlue@NoMailServer.com</Email>
<PhoneNum>555-7418</PhoneNum>
<FaxNum>555-9981</FaxNum>
<Description>Buy a home</Description>
</LoanRecord>
<LoanRecord>
<mortgageAmount>300000</mortgageAmount>
<lastName>White</lastName>
<firstName>Sam</firstName>
<SSN>555666222</SSN>
<PositionTitle>Program Manager</PositionTitle>
<Address>557 No Where Dr</Address>
<City>New York</City>
<StateProv>New York</StateProv>
<ZipCode>51256</ZipCode>
<Email>SWhite@NoMailServer.com</Email>
<PhoneNum>555-7445</PhoneNum>
<FaxNum>555-9986</FaxNum>
<Description>Buy a home</Description>
</LoanRecord>
<LoanRecord>
<mortgageAmount>700000</mortgageAmount>
<lastName>Green</lastName>
<firstName>Steve</firstName>
<SSN>55566688</SSN>
<PositionTitle>Project Manager</PositionTitle>
<Address>445 No Where Dr</Address>
<City>New York</City>
<StateProv>New York</StateProv>
<ZipCode>51256</ZipCode>
<Email>SGreeb@NoMailServer.com</Email>
<PhoneNum>555-2211</PhoneNum>
<FaxNum>555-2221</FaxNum>
<Description>Buy a home</Description>
</LoanRecord>
</batch>
Beachten Sie, dass das XML-Element, das jeden Datensatz startet und beendet, LoanRecord
. Dieses XML-Element wird durch die Anwendungslogik referenziert, die mehrere Dateien generiert.
Weitere Informationen zum Output-Dienst finden Sie unter Dienstreferenz für AEM Forms.
So erstellen Sie mehrere PDF-Dateien basierend auf einer XML-Datenquelle:
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 unterstützten J2EE-Anwendungsserver bereitgestellt wird, der nicht JBoss ist, müssen Sie die Dateien "adobe-utilities.jar"und "jbossall-client.jar"durch JAR-Dateien ersetzen, die spezifisch für den J2EE-Anwendungsserver sind, auf dem AEM Forms bereitgestellt wird.
Erstellen eines Output Client-Objekts
Bevor Sie einen Output-Dienstvorgang programmgesteuert ausführen können, müssen Sie ein Output-Dienst-Client-Objekt erstellen. Wenn Sie die Java-API verwenden, erstellen Sie eine OutputClient
-Objekt. Wenn Sie die Output-Webdienst-API verwenden, erstellen Sie eine OutputServiceService
-Objekt.
Referenzieren einer XML-Datenquelle
Referenzieren Sie eine XML-Datenquelle, die mehrere Datensätze enthält. Ein XML-Element muss verwendet werden, um die Datensätze zu trennen. In der Beispiel-XML-Datenquelle, die oben in diesem Abschnitt gezeigt wird, heißt beispielsweise das XML-Element, das Datensätze trennt LoanRecord
.
Für jedes Formularfeld, das mit Daten gefüllt werden soll, muss ein XML-Element vorhanden sein. Der Name des XML-Elements muss mit dem Feldnamen übereinstimmen. Ein XML-Element wird ignoriert, wenn es keinem Formularfeld entspricht oder wenn der XML-Elementname nicht mit dem Feldnamen übereinstimmt. Wenn alle XML-Elemente angegeben sind, muss die Reihenfolge, in der die XML-Elemente angezeigt werden, nicht eingehalten werden.
Festlegen von PDF-Laufzeitoptionen
Sie müssen die folgenden Laufzeitoptionen festlegen, damit der Output-Dienst erfolgreich mehrere Dateien basierend auf einer XML-Datenquelle erstellt:
LoanRecord
. (Anstatt die Laufzeitoption "Record Name"festzulegen, können Sie die Datensatzebene festlegen, indem Sie ihr einen numerischen Wert zuweisen, der die Elementebene angibt, die Datensätze enthält. Sie können jedoch nur den Datensatznamen oder die Datensatzebene festlegen. Sie können nicht beide Werte festlegen.)Festlegen von Rendering-Laufzeitoptionen
Sie können Laufzeitoptionen beim Rendern mehrerer Dateien festlegen. Obwohl diese Optionen nicht erforderlich sind (im Gegensatz zu erforderlichen Ausgabelaufzeitoptionen), können Sie Aufgaben wie die Verbesserung der Leistung des Output-Dienstes ausführen. Beispielsweise können Sie den Formularentwurf zwischenspeichern, den der Output-Dienst verwendet, um die Leistung zu verbessern.
Wenn der Output-Dienst Batch-Datensätze verarbeitet, liest er inkrementell Daten, die mehrere Datensätze enthalten. Das heißt, der Output-Dienst liest die Daten in den Speicher und gibt die Daten frei, während der Datensatz-Batch verarbeitet wird. Der Output-Dienst lädt Daten inkrementell, wenn eine von zwei Laufzeitoptionen festgelegt ist. Wenn Sie die Laufzeitoption "Record Name"festlegen, liest der Output-Dienst die Daten inkrementell. Wenn Sie die Laufzeitoption "Record Level"auf 2 oder höher setzen, liest der Output-Dienst die Daten auf inkrementelle Weise.
Sie können mithilfe der PDFOutputOptionsSpec
oder PrintedOutputOptionSpec
-Objekt setLazyLoading
-Methode. Sie können den Wert übergeben false
zu dieser Methode, die das inkrementelle Laden deaktiviert.
Mehrere PDF-Dateien generieren
Nachdem Sie eine gültige XML-Datenquelle referenziert haben, die mehrere Datensätze enthält und Laufzeitoptionen festgelegt hat, können Sie den Output-Dienst aufrufen, wodurch mehrere Dateien generiert werden. Wenn Sie mehrere Datensätze generieren, wird die OutputResult
-Objekt getGeneratedDoc
Methodenzurückgaben null
.
Ergebnisse des Vorgangs abrufen
Nachdem der Output-Dienst einen Vorgang ausgeführt hat, werden XML-Daten zurückgegeben, die angeben, ob der Vorgang erfolgreich war. Die folgende XML-Datei wird vom Output-Dienst zurückgegeben. In diesem Fall generiert der Output-Dienst 42 Dokumente.
<?xml version="1.0" encoding="UTF-8"?>
<printResult>
<status>0</status>
<requestId>4ad85f9e2</requestId>
<context/>
<messages>
<message>Printed all 42 records successfully.</message>
</messages>
<printSpec>
<input>
<validated>true</validated>
<dataFile recordIdField="" recordLevel="0" recordName="LoanRecord"/>
<sniffRules lookAhead="300"/>
<formDesign>Loan.xdp</formDesign>
<contentRoot>C:\Adobe</contentRoot>
<metadata-spec record="false"/>
</input>
<output>
<format>PDF</format>
<fileURI>C:\Adobe\forms\Loan.pdf</fileURI>
<optionString>cacheenabled=true&padebug=false&linearpdf=false&pdfarevisionnumber=1&pdfaconformance=A&taggedpdf=false&TransactionTimeOut=180</optionString>
<waitForResponse>true</waitForResponse>
<outputStream>multiple</outputStream>
</output>
</printSpec>
</printResult>
Siehe auch
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts zur API für Output Service
Erstellen Sie mehrere PDF-Dateien mithilfe der Ausgabe-API (Java):
Projektdateien einschließen"
Schließen Sie Client-JAR-Dateien wie adobe-output-client.jar in den Klassenpfad Ihres Java-Projekts ein. .
Erstellen eines Output Client-Objekts
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.OutputClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.Referenzieren einer XML-Datenquelle
java.io.FileInputStream
-Objekt, das die XML-Datenquelle darstellt, die mehrere Datensätze enthält, indem es seinen Konstruktor verwendet und einen string -Wert übergibt, der den Speicherort der XML-Datei angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Festlegen von PDF-Laufzeitoptionen
PDFOutputOptionsSpec
, indem Sie den Konstruktor verwenden.PDFOutputOptionsSpec
-Objekt setGenerateManyFiles
-Methode. Übergeben Sie beispielsweise den Wert true
, um den Output-Dienst anzuweisen, für jeden Datensatz in der XML-Datenquelle eine separate PDF-Datei zu erstellen. (Wenn Sie false
, generiert der Output-Dienst ein einzelnes PDF-Dokument, das alle Datensätze enthält).PDFOutputOptionsSpec
-Objekt setFileUri
-Methode verwenden und einen string -Wert übergeben, der den Speicherort der Dateien angibt, die der Output-Dienst generiert. Die Option Datei-URI ist relativ zum J2EE-Anwendungsserver, der als Host für AEM Forms dient, und nicht zum Clientcomputer.OutputOptionsSpec
-Objekt setRecordName
-Methode verwenden und einen string -Wert übergeben, der den XML-Elementnamen in der Datenquelle angibt, der die Datensätze trennt. (Betrachten Sie beispielsweise die zuvor in diesem Abschnitt gezeigte XML-Datenquelle. Der Name des XML-Elements, das die Datensätze trennt, ist LoanRecord).Festlegen von Rendering-Laufzeitoptionen
RenderOptionsSpec
, indem Sie den Konstruktor verwenden.RenderOptionsSpec
-Objekt setCacheEnabled
und das Übergeben einer Boolean
Wert von true
.Mehrere PDF-Dateien generieren
Generieren mehrerer PDF-Dateien durch Aufrufen der OutputClient
-Objekt generatePDFOutput
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
enum -Wert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.com.adobe.idp.Document
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.Die generatePDFOutput
-Methode gibt eine OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält.
Ergebnisse des Vorgangs abrufen
java.io.File
-Objekt, das eine XML-Datei darstellt, die die Ergebnisse der generatePDFOutput
-Methode. Stellen Sie sicher, dass die Dateinamenerweiterung .xml lautet.com.adobe.idp.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der com.adobe.idp.Document
-Objekt auf die Datei verweist (stellen Sie sicher, dass Sie die com.adobe.idp.Document
-Objekt, das von der applyUsageRights
-Methode).Siehe auch
Schnellstart (EJB-Modus): Erstellen mehrerer PDF-Dateien mit der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Erstellen Sie mehrere PDF-Dateien mithilfe der Output-API (Webdienst):
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/OutputService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen Sie ein Output Client -Objekt.
Erstellen Sie eine OutputServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine OutputServiceClient.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/OutputService?blob=mtom
. Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen. Geben Sie jedoch ?blob=mtom
, um MTOM zu verwenden.
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der OutputServiceClient.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:
OutputServiceClient.ClientCredentials.UserName.UserName
.OutputServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Referenzieren einer XML-Datenquelle.
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern von Formulardaten verwendet, die mehrere Datensätze enthalten.System.IO.FileStream
-Objekt durch Aufrufen seines Konstruktors. Übergeben Sie einen string -Wert, der den Dateispeicherort der XML-Datei darstellt, die mehrere Datensätze enthält.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.Festlegen von PDF-Laufzeitoptionen.
PDFOutputOptionsSpec
, indem Sie den Konstruktor verwenden.OutputOptionsSpec
-Objekt generateManyFiles
Datenelement. Weisen Sie beispielsweise den Wert zu true
zu diesem Datenelement hinzu, um den Output-Dienst anzuweisen, eine separate PDF-Datei für jeden Datensatz in der XML-Datenquelle zu erstellen. (Wenn Sie false
auf dieses Datenelement verweist, generiert der Output-Dienst eine PDF, die alle Datensätze enthält.OutputOptionsSpec
-Objekt fileURI
Datenelement. Die Option Datei-URI ist relativ zum J2EE-Anwendungsserver, der als Host für AEM Forms dient, und nicht zum Clientcomputer.OutputOptionsSpec
-Objekt recordName
Datenelement.OutputOptionsSpec
-Objekt copies
Datenelement.Festlegen von Rendering-Laufzeitoptionen.
RenderOptionsSpec
, indem Sie den Konstruktor verwenden.true
der RenderOptionsSpec
-Objekt cacheEnabled
Datenelement.Generieren Sie mehrere PDF-Dateien.
Erstellen mehrerer PDF-Dateien durch Aufrufen der OutputServiceService
-Objekt generatePDFOutput
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat.PDF
.PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.BLOB
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.BLOB
-Objekt, das von der generatePDFOutput
-Methode. Die generatePDFOutput
-Methode füllt dieses Objekt mit generierten Metadaten, die das Dokument beschreiben.BLOB
-Objekt, das von der generatePDFOutput
-Methode. Die generatePDFOutput
-Methode füllt dieses Objekt mit Ergebnisdaten.OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält.Ergebnisse des Vorgangs abrufen
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der einen XML-Dateispeicherort darstellt, der Ergebnisdaten enthält. Stellen Sie sicher, dass die Dateinamenerweiterung .xml lautet.BLOB
-Objekt, das von der OutputServiceService
-Objekt generatePDFOutput
-Methode (der achte Parameter). Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt binaryData
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef
Sie können Suchregeln erstellen, die dazu führen, dass der Output-Dienst Eingabedaten prüft und verschiedene Formularentwürfe verwendet, die auf dem Dateninhalt basieren, um die Ausgabe zu generieren. Wenn beispielsweise der Text Hypothek sich in den Eingabedaten befindet, kann der Output-Dienst einen Formularentwurf namens Mortgage.xdp verwenden. Wenn der Text Automobil befindet sich in den Eingabedaten, kann der Output-Dienst einen Formularentwurf verwenden, der als "AutomobileLoan.xdp"gespeichert ist. Obwohl der Output-Dienst verschiedene Ausgabetypen generieren kann, geht dieser Abschnitt davon aus, dass der Output-Dienst eine PDF-Datei generiert. Das folgende Diagramm zeigt den Output-Dienst, der eine PDF-Datei durch Verarbeitung einer XML-Datendatei und Verwendung eines von vielen Formularentwürfen generiert.
Darüber hinaus kann der Output-Dienst Dokumentpakete generieren, in denen mehrere Datensätze im Datensatz bereitgestellt werden und jeder Datensatz mit einem Formularentwurf übereinstimmt und ein einzelnes Dokument aus mehreren Formularentwürfen generiert wird.
Weitere Informationen zum Output-Dienst finden Sie unter Dienstreferenz für AEM Forms.
So weisen Sie den Output-Dienst an, beim Generieren eines Dokuments Suchregeln zu verwenden:
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 unterstützten J2EE-Anwendungsserver bereitgestellt wird, der nicht JBoss ist, müssen Sie adobe-utilities.jar und jbossall-client.jar durch JAR-Dateien ersetzen, die spezifisch für den J2EE-Anwendungsserver sind, auf dem AEM Forms bereitgestellt wird.
Erstellen eines Output Client-Objekts
Bevor Sie einen Output-Dienstvorgang programmgesteuert ausführen können, müssen Sie ein Output-Dienst-Client-Objekt erstellen.
Referenzieren einer XML-Datenquelle
Für jedes Formularfeld, das mit Daten gefüllt werden soll, muss ein XML-Element vorhanden sein. Der Name des XML-Elements muss mit dem Feldnamen übereinstimmen. Ein XML-Element wird ignoriert, wenn es keinem Formularfeld entspricht oder wenn der XML-Elementname nicht mit dem Feldnamen übereinstimmt. Es ist nicht erforderlich, die Reihenfolge der Anzeige der XML-Elemente einzuhalten, solange alle XML-Elemente angegeben sind.
Suchregeln definieren
Um Suchregeln zu definieren, definieren Sie ein oder mehrere Textmuster, nach denen der Output-Dienst in den Eingabedaten sucht. Für jedes von Ihnen definierte Textmuster geben Sie einen entsprechenden Formularentwurf an, der verwendet wird, wenn sich das Textmuster befindet. Wenn sich ein Textmuster befindet, verwendet der Output-Dienst den entsprechenden Formularentwurf, um die Ausgabe zu generieren. Ein Beispiel für ein Textmuster ist Hypothek.
Wenn sich keine Textmuster befinden, wird das Standardformular verwendet. Stellen Sie sicher, dass sich alle von Ihnen verwendeten Formularentwürfe im Inhaltsstamm befinden.
Festlegen von PDF-Laufzeitoptionen
Legen Sie die folgenden PDF-Laufzeitoptionen fest, damit der Output-Dienst erfolgreich ein PDF-Dokument erstellen kann, das auf mehreren Formularentwürfen basiert:
Festlegen von Rendering-Laufzeitoptionen
Sie können Laufzeitoptionen beim Erstellen von PDF-Dateien für das Rendering festlegen. Obwohl diese Optionen nicht erforderlich sind (im Gegensatz zu PDF-Laufzeitoptionen), können Sie Aufgaben wie die Leistungsverbesserung des Output-Dienstes ausführen. Beispielsweise können Sie den Formularentwurf zwischenspeichern, den der Output-Dienst verwendet, um die Leistung zu verbessern.
PDF-Dokument generieren
Nachdem Sie eine gültige XML-Datenquelle referenziert und Laufzeitoptionen festgelegt haben, können Sie den Output-Dienst aufrufen, um ein PDF-Dokument zu generieren. Wenn der Output-Dienst ein bestimmtes Textmuster in den Eingabedaten findet, verwendet er den entsprechenden Formularentwurf. Wenn kein Textmuster verwendet wird, verwendet der Output-Dienst den Standardformularentwurf.
Ergebnisse des Vorgangs abrufen
Nachdem der Output-Dienst einen Vorgang ausgeführt hat, werden XML-Daten zurückgegeben, die angeben, ob der Vorgang erfolgreich war.
Siehe auch
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts zur API für Output Service
Erstellen Sie Suchregeln mithilfe der Ausgabe-API (Java):
Projektdateien einschließen.
Schließen Sie Client-JAR-Dateien wie adobe-output-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie ein Output Client -Objekt.
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.OutputClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.Referenzieren einer XML-Datenquelle.
java.io.FileInputStream
-Objekt, das die XML-Datenquelle darstellt, die zum Ausfüllen des PDF-Dokuments mithilfe des Konstruktors verwendet wird, und einen string -Wert übergibt, der den Speicherort der XML-Datei angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Definieren Sie Suchregeln.
Rule
, indem Sie den Konstruktor verwenden.Rule
-Objekt setPattern
-Methode verwenden und einen string -Wert übergeben, der ein Textmuster angibt.Rule
-Objekt setForm
-Methode . Übergeben Sie einen string -Wert, der den Namen des Formularentwurfs angibt.Wiederholen Sie für jedes zu definierende Textmuster die vorherigen drei Unterschritte.
java.util.List
Objekt mithilfe von java.util.ArrayList
-Konstruktor.Rule
-Objekt, das Sie erstellt haben, rufen Sie die java.util.List
-Objekt add
-Methode und übergeben Sie die Rule
-Objekt.Festlegen von PDF-Laufzeitoptionen.
PDFOutputOptionsSpec
, indem Sie den Konstruktor verwenden.PDFOutputOptionsSpec
-Objekt setFileURI
-Methode. Übergeben Sie einen string -Wert, der den Speicherort der PDF-Datei angibt. Die Option Datei-URI ist relativ zum J2EE-Anwendungsserver, der als Host für AEM Forms dient, und nicht zum Clientcomputer.PDFOutputOptionsSpec
-Objekt setRules
-Methode. Übergeben Sie die java.util.List
-Objekt, das Rule
Objekte.PDFOutputOptionsSpec
-Objekt setLookAhead
-Methode. Übergeben Sie einen ganzzahligen Wert, der die Anzahl der Bytes darstellt.Festlegen von Rendering-Laufzeitoptionen.
RenderOptionsSpec
, indem Sie den Konstruktor verwenden.RenderOptionsSpec
-Objekt setCacheEnabled
und übergeben true
.Erstellen Sie ein PDF-Dokument.
Erstellen Sie ein PDF-Dokument, das auf mehreren Formularentwürfen basiert, indem Sie die OutputClient
-Objekt generatePDFOutput
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
Auflistungswert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.com.adobe.idp.Document
-Objekt, das die Formulardaten enthält, die vom Output-Dienst nach den definierten Textmustern durchsucht werden.Die generatePDFOutput
-Methode gibt eine OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält.
Rufen Sie die Ergebnisse des Vorgangs ab.
com.adobe.idp.Document
-Objekt, das den Status der generatePDFOutput
-Methode durch Aufrufen der OutputResult
-Objekt getStatusDoc
-Methode.java.io.File
-Objekt, das die Ergebnisse des Vorgangs enthält. Stellen Sie sicher, dass die Dateierweiterung .xml lautet.com.adobe.idp.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der com.adobe.idp.Document
-Objekt auf die Datei verweist (stellen Sie sicher, dass Sie die com.adobe.idp.Document
-Objekt, das von der getStatusDoc
-Methode).Siehe auch
Schnellstart (EJB-Modus): Erstellen von Suchregeln mit der Java-API
Schnellstart (SOAP-Modus): Erstellen von Suchregeln mit der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Erstellen Sie Suchregeln mithilfe der Output-API (Webdienst):
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/OutputService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen Sie ein Output Client -Objekt.
Erstellen Sie eine OutputServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine OutputServiceClient.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/OutputService?blob=mtom
. Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen. Geben Sie jedoch ?blob=mtom
, um MTOM zu verwenden.
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der OutputServiceClient.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:
OutputServiceClient.ClientCredentials.UserName.UserName
.OutputServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Referenzieren einer XML-Datenquelle.
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern von Daten verwendet, die mit dem PDF-Dokument zusammengeführt werden.System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort des zu verschlüsselnden PDF-Dokuments und den 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
-Feld mit dem Inhalt des Byte-Arrays.Definieren Sie Suchregeln.
Rule
, indem Sie den Konstruktor verwenden.Rule
-Objekt pattern
Datenelement.Rule
-Objekt form
Datenelement.Wiederholen Sie für jedes zu definierende Textmuster die vorherigen drei Unterschritte.
MyArrayOf_xsd_anyType
-Objekt, das die Regeln speichert.Rule
-Objekt auf ein Element der MyArrayOf_xsd_anyType
Array. Rufen Sie die MyArrayOf_xsd_anyType
-Objekt Add
-Methode für jeden Rule
-Objekt.Festlegen von PDF-Laufzeitoptionen
PDFOutputOptionsSpec
, indem Sie den Konstruktor verwenden.PDFOutputOptionsSpec
-Objekt fileURI
Datenelement. Die Option Datei-URI ist relativ zum J2EE-Anwendungsserver, der als Host für AEM Forms dient, und nicht zum Clientcomputer.PDFOutputOptionsSpec
-Objekt copies
Datenelement.MyArrayOf_xsd_anyType
-Objekt, das die Regeln im PDFOutputOptionsSpec
-Objekt rules
Datenelement.PDFOutputOptionsSpec
-Objekt lookAhead
Datenmethode.Festlegen von Rendering-Laufzeitoptionen
RenderOptionsSpec
, indem Sie den Konstruktor verwenden.true
der RenderOptionsSpec
-Objekt cacheEnabled
Datenelement.Sie können die PDF-Dokumentversion nicht mithilfe der RenderOptionsSpec
-Objekt pdfVersion
-Element, wenn das Eingabedokument ein Acrobat-Formular ist. Das PDF-Ausgabedokument behält die PDF-Version des Acrobat-Formulars bei. Ebenso können Sie die getaggte PDF-Option nicht mithilfe der RenderOptionsSpec
-Objekt taggedPDF
-Methode, wenn das Eingabedokument ein Acrobat-Formular ist.
Sie können die Option für linearisiertes PDF nicht mithilfe der RenderOptionsSpec
-Objekt linearizedPDF
-Element, wenn das PDF-Eingabedokument zertifiziert oder digital signiert ist. Weitere Informationen finden Sie unter Digitales Signieren von PDF-Dokumenten.
PDF-Dokument generieren
Erstellen Sie ein PDF-Dokument, indem Sie die OutputServiceService
-Objekt generatePDFOutput
-Methode verwenden und die folgenden Werte übergeben:
TransformationFormat
Auflistungswert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.PDFOutputOptionsSpec
-Objekt, das PDF-Laufzeitoptionen enthält.RenderOptionsSpec
-Objekt, das Laufzeitoptionen zum Rendern enthält.BLOB
-Objekt, das die XML-Datenquelle enthält, die Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.BLOB
-Objekt, das von der generatePDFOutput
-Methode. Die generatePDFOutput
-Methode füllt dieses Objekt mit generierten Metadaten, die das Dokument beschreiben. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich).BLOB
-Objekt, das von der generatePDFOutput
-Methode. Die generatePDFOutput
-Methode füllt dieses Objekt mit Ergebnisdaten. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich).OutputResult
-Objekt, das die Ergebnisse des Vorgangs enthält. (Dieser Parameterwert ist nur für den Webdienstaufruf erforderlich).Beim Generieren eines PDF-Dokuments durch Aufrufen der generatePDFOutput
beachten Sie, dass Sie keine Daten mit einem XFA-PDF-Formular zusammenführen können, das signiert, zertifiziert oder Verwendungsrechte enthält. Weitere Informationen zu Verwendungsrechten finden Sie unter Anwenden von Nutzungsrechten auf PDF-Dokumente.
Ergebnisse des Vorgangs abrufen
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der einen XML-Dateispeicherort darstellt, der Ergebnisdaten enthält. Stellen Sie sicher, dass die Dateierweiterung XML ist.BLOB
-Objekt, das von der OutputServiceService
-Objekt generatePDFOutput
-Methode (der achte Parameter). Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef
Sie können den Output-Dienst verwenden, um ein interaktives PDF-Dokument in ein nicht interaktives PDF umzuwandeln. Mit einem interaktiven PDF-Dokument können Benutzer Daten in die PDF-Dokumentfelder eingeben oder ändern. Der Prozess der Umwandlung eines interaktiven PDF-Dokuments in ein nicht interaktives PDF-Dokument wird als Abflachung. Wenn ein PDF-Dokument reduziert wird, kann ein Benutzer die Daten in den Dokumentfeldern nicht ändern. Dies kann ein Grund dafür sein, PDF-Dokumente zu reduzieren.
Sie können die folgenden Arten von PDF-Dokumenten reduzieren:
Der Versuch, eine PDF zu reduzieren, bei der es sich um ein nicht interaktives PDF-Dokument handelt, verursacht eine Ausnahme.
Weitere Informationen zum Output-Dienst finden Sie unter Dienstreferenz für AEM Forms.
So reduzieren Sie ein interaktives PDF-Dokument auf ein nicht interaktives PDF-Dokument:
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 unterstützten J2EE-Anwendungsserver bereitgestellt wird, der nicht JBoss ist, müssen Sie die Dateien "adobe-utilities.jar"und "jbossall-client.jar"durch JAR-Dateien ersetzen, die spezifisch für den J2EE-Anwendungsserver 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.
Erstellen eines Output Client-Objekts
Bevor Sie einen Output-Dienstvorgang programmgesteuert ausführen können, müssen Sie ein Output-Dienst-Client-Objekt erstellen. Wenn Sie die Java-API verwenden, erstellen Sie eine OutputClient
-Objekt. Wenn Sie die Output-Webdienst-API verwenden, erstellen Sie eine OutputServiceService
-Objekt.
Abrufen eines interaktiven PDF-Dokuments
Rufen Sie ein interaktives PDF-Dokument ab, das Sie in ein nicht interaktives PDF-Dokument umwandeln möchten. Der Versuch, ein nicht interaktives PDF-Dokument umzuwandeln, verursacht eine Ausnahme.
PDF-Dokument transformieren
Nachdem Sie ein interaktives PDF-Dokument abgerufen haben, können Sie es in ein nicht interaktives PDF-Dokument umwandeln. Der Output-Dienst gibt ein nicht interaktives PDF-Dokument zurück.
Speichern Sie das nicht interaktive PDF-Dokument als PDF-Datei
Sie können das nicht interaktive PDF-Dokument als PDF-Datei speichern.
Siehe auch
Reduzieren eines PDF-Dokuments mithilfe der Java-API
Reduzieren eines PDF-Dokuments mithilfe der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts zur API für Output Service
Reduzieren Sie ein interaktives PDF-Dokument mithilfe der Output API (Java) auf ein nicht interaktives PDF-Dokument:
Projektdateien einschließen.
Schließen Sie Client-JAR-Dateien wie adobe-output-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie ein Output Client -Objekt.
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.OutputClient
-Objekt durch Verwendung seines Konstruktors und Übergabe des ServiceClientFactory
-Objekt.Rufen Sie ein interaktives PDF-Dokument ab.
java.io.FileInputStream
-Objekt, das das zu transformierende interaktive PDF-Dokument darstellt, indem es seinen Konstruktor verwendet und einen Zeichenfolgenwert übergibt, der den Speicherort der interaktiven PDF-Datei angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Transformieren Sie das PDF-Dokument.
Umwandeln des interaktiven PDF-Dokuments in ein nicht interaktives PDF-Dokument durch Aufrufen des OutputServiceService
-Objekt transformPDF
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das das interaktive PDF-Dokument enthält.TransformationFormat
enum -Wert. Um ein nicht interaktives PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.PDFARevisionNumber
enum -Wert, der die Revisionsnummer angibt. Da dieser Parameter für ein PDF/A-Dokument vorgesehen ist, können Sie null
.null
.PDFAConformance
enum -Wert, der die Konformitätsstufe PDF/A darstellt. Da dieser Parameter für ein PDF/A-Dokument vorgesehen ist, können Sie null
.Die transformPDF
-Methode gibt eine com.adobe.idp.Document
-Objekt, das ein nicht interaktives PDF-Dokument enthält.
Speichern Sie das nicht interaktive PDF-Dokument als PDF-Datei.
java.io.File
-Objekt ein und stellen Sie sicher, dass die Dateinamenerweiterung .pdf lautet.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der Document
-Objekt auf die Datei verweist (stellen Sie sicher, dass Sie die Document
-Objekt, das von der transformPDF
-Methode).Siehe auch
Schnellstart (EJB-Modus): Transformieren eines PDF-Dokuments mit der Java-API
Schnellstart (SOAP-Modus): Transformieren eines PDF-Dokuments mit der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Reduzieren Sie ein interaktives PDF-Dokument mithilfe der Output API (Webdienst) auf ein nicht interaktives PDF-Dokument:
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/OutputService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen Sie ein Output Client -Objekt.
Erstellen Sie eine OutputServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine OutputServiceClient.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/OutputService?blob=mtom
. Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen. Geben Sie jedoch ?blob=mtom
, um MTOM zu verwenden.
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der OutputServiceClient.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:
OutputServiceClient.ClientCredentials.UserName.UserName
.OutputServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Rufen Sie ein interaktives PDF-Dokument ab.
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern des interaktiven PDF-Dokuments verwendet.System.IO.FileStream
-Objekt durch Aufrufen des Konstruktors und Übergeben eines Zeichenfolgenwerts, der den Dateispeicherort des interaktiven PDF-Dokuments 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
-Eigenschaft mit dem Inhalt des Byte-Arrays.Transformieren Sie das PDF-Dokument.
Umwandeln des interaktiven PDF-Dokuments in ein nicht interaktives PDF-Dokument durch Aufrufen des OutputClient
-Objekt transformPDF
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das das interaktive PDF-Dokument enthält.TransformationFormat
Auflistungswert. Um ein nicht interaktives PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF
.PDFARevisionNumber
enum -Wert, der die Revisionsnummer angibt.PDFARevisionNumber
wird der enum -Wert verwendet. Da dieser Parameter für ein PDF/A-Dokument vorgesehen ist, können Sie false
.null
.PDFAConformance
enum -Wert, der die Konformitätsstufe PDF/A darstellt.PDFAConformance
wird der enum -Wert verwendet. Da dieser Parameter für ein PDF/A-Dokument vorgesehen ist, können Sie false
.Die transformPDF
-Methode gibt eine BLOB
-Objekt, das ein nicht interaktives PDF-Dokument enthält.
Speichern Sie das nicht interaktive PDF-Dokument als PDF-Datei.
System.IO.FileStream
-Objekt durch Aufrufen des Konstruktors und Übergeben eines Zeichenfolgenwerts, der den Dateispeicherort des nicht interaktiven PDF-Dokuments darstellt.BLOB
-Objekt, das von der transformPDF
-Methode. Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef