Sammanställa icke-interaktiva PDF-dokument assembling-non-interactive-pdf-documents
Du kan sätta ihop ett icke-interaktivt PDF-dokument när du använder ett interaktivt PDF-formulär som indata. Anta alltså att du har ett formulär som användare kan använda för att ange data i sina fält. Du kan skicka formuläret till Assembler-tjänsten, vilket gör att Assembler-tjänsten returnerar ett PDF-dokument som hindrar användare från att ange data i sina fält. Det här dokumentet är ett icke-interaktivt PDF-formulär. Följande bild visar till exempel en låneansökan som representerar ett interaktivt formulär.
Anta att följande DDX-dokument används för den här diskussionen.
<?xml version="1.0" encoding="UTF-8"?>
<DDX xmlns="https://ns.adobe.com/DDX/1.0/">
<PDF result="out.pdf">
<PDF source="inDoc"/>
<NoXFA/>
</PDF>
</DDX>
Observera att källattributet är tilldelat värdet inDoc
i det här DDX-dokumentet. I situationer där endast ett indatadokument skickas till Assembler-tjänsten och ett PDF-dokument returneras, och du anropar åtgärden invokeOneDocument
, tilldelar du PDF-källattributet värdet inDoc
. När åtgärden invokeOneDocument
anropas är värdet inDoc
en fördefinierad nyckel som måste anges i DDX-dokumentet.
Om du skickar två eller flera indatadokument till PDF till Assembler-tjänsten kan du däremot anropa åtgärden invokeDDX
. I det här fallet tilldelar du filnamnet för indata-PDF-dokumentet till attributet source
.
Det här DDX-dokumentet innehåller elementet NoXFA
, som instruerar Assembler-tjänsten att returnera ett icke-interaktivt PDF-dokument.
Med Assembler-tjänsten kan du samla ihop icke-interaktiva PDF-dokument utan att Output-tjänsten är en del av installationen av AEM formulär, om PDF-indatadokumentet är baserat på ett Acrobat-formulär eller ett statiskt XFA-formulär. Om PDF-indatadokumentet är ett dynamiskt XFA-formulär måste utdatatjänsten ingå i installationen av AEM formulär. Om utdatatjänsten inte är en del av installationen av AEM formulär när ett dynamiskt XFA-formulär sätts ihop genereras ett undantag. Se Skapa dokumentutdataströmmar.
Sammanfattning av steg summary-of-steps
Gör så här om du vill sätta ihop ett icke-interaktivt PDF-dokument:
- Inkludera projektfiler.
- Skapa en PDF Assembler-klient.
- Referera till ett befintligt DDX-dokument.
- Referera till ett interaktivt PDF-dokument.
- Ange körningsalternativ.
- Sammanställ dokumentet PDF.
- Spara det icke-interaktiva PDF-dokumentet.
Inkludera projektfiler
Inkludera nödvändiga filer i utvecklingsprojektet. Om du skapar ett klientprogram med Java, inkluderar du de JAR-filer som behövs. Om du använder webbtjänster måste du inkludera proxyfilerna.
Följande JAR-filer måste läggas till i projektets klasssökväg:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-assembler-client.jar
- adobe-utilities.jar (krävs om AEM Forms används i JBoss)
- jbossall-client.jar (krävs om AEM Forms används i JBoss)
Om AEM Forms körs på en annan J2EE-programserver än JBoss måste du ersätta filerna adobe-utilities.jar och jbossall-client.jar med JAR-filer som är specifika för J2EE-programservern som AEM Forms är distribuerad på.
Skapa en Assembler-klient
Innan du programmässigt kan utföra en Assembler-åtgärd måste du skapa en Assembler-tjänstklient.
Referera till ett befintligt DDX-dokument
Ett DDX-dokument måste refereras till för att du ska kunna montera ett PDF-dokument. Det här DDX-dokumentet måste innehålla elementet NoXFA
, som instruerar Assembler-tjänsten att returnera ett icke-interaktivt PDF-dokument.
Referera till ett interaktivt PDF-dokument
Ett interaktivt PDF-dokument måste refereras till och skickas till Assembler-tjänsten för att du ska kunna få tillbaka ett icke-interaktivt PDF-dokument.
Ange körningsalternativ
Du kan ställa in körningsalternativ som styr beteendet för Assembler-tjänsten när den utför ett jobb. Du kan till exempel ange ett alternativ som instruerar Assembler-tjänsten att fortsätta bearbeta ett jobb om ett fel uppstår.
Sammanställ PDF-dokumentet
När du har skapat Assembler-tjänstklienten, refererat till DDX-dokumentet, refererat till ett interaktivt PDF-dokument och angett körningsalternativ, kan du anropa åtgärden invokeOneDocument
. Eftersom bara ett indatadokument i PDF skickas till Assembler-tjänsten och ett enda dokument returneras, kan du använda åtgärden invokeOneDocument
i stället för åtgärden invokeDDX
.
Spara det icke-interaktiva PDF-dokumentet
Om bara ett enda PDF-dokument skickas till Assembler-tjänsten returnerar Assembler-tjänsten ett enstaka dokument i stället för ett samlingsobjekt. Det innebär att när åtgärden invokeOneDocument
anropas returneras ett enda dokument. Eftersom det DDX-dokument som det här avsnittet refererar till innehåller anvisningar om hur du skapar ett icke-interaktivt PDF-dokument, returnerar Assembler-tjänsten ett icke-interaktivt PDF-dokument som kan sparas som en PDF-fil.
Se även
Sammanställa ett icke-interaktivt PDF-dokument med Java API assemble-a-non-interactive-pdf-document-using-the-java-api
Sammanställa ett icke-interaktivt PDF-dokument med hjälp av Assembler Service API (Java):
-
Inkludera projektfiler.
Inkludera JAR-klientfiler, som adobe-assembler-client.jar, i Java-projektets klassökväg.
-
Skapa en Assembler-klient.
- Skapa ett
ServiceClientFactory
-objekt som innehåller anslutningsegenskaper. - Skapa ett
AssemblerServiceClient
-objekt med hjälp av dess konstruktor och skickaServiceClientFactory
-objektet.
- Skapa ett
-
Referera till ett befintligt DDX-dokument.
- Skapa ett
java.io.FileInputStream
-objekt som representerar DDX-dokumentet med hjälp av dess konstruktor och skicka ett strängvärde som anger platsen för DDX-filen. - Skapa ett
com.adobe.idp.Document
-objekt med hjälp av dess konstruktor och skickajava.io.FileInputStream
-objektet.
- Skapa ett
-
Referera till ett interaktivt PDF-dokument.
- Skapa ett
java.io.FileInputStream
-objekt med hjälp av dess konstruktor och skicka platsen för ett interaktivt PDF-dokument. - Skapa ett
com.adobe.idp.Document
-objekt och skickajava.io.FileInputStream
-objektet som innehåller PDF-dokumentet. Det härcom.adobe.idp.Document
-objektet skickas till metodeninvokeOneDocument
.
- Skapa ett
-
Ange körningsalternativ.
- Skapa ett
AssemblerOptionSpec
-objekt som lagrar körningsalternativ med hjälp av dess konstruktor. - Ange körningsalternativ som uppfyller dina affärskrav genom att anropa en metod som tillhör objektet
AssemblerOptionSpec
. Om du till exempel vill instruera Assembler-tjänsten att fortsätta bearbeta ett jobb när ett fel inträffar, anropar duAssemblerOptionSpec
-objektetssetFailOnError
-metod och skickarfalse
.
- Skapa ett
-
Sammanställ dokumentet PDF.
Anropa
AssemblerServiceClient
-objektetsinvokeOneDocument
-metod och skicka följande värden:- Ett
com.adobe.idp.Document
-objekt som representerar DDX-dokumentet. Kontrollera att det här DDX-dokumentet innehåller värdetinDoc
för källelementet i PDF. - Ett
com.adobe.idp.Document
-objekt som innehåller det interaktiva PDF-dokumentet. - Ett
com.adobe.livecycle.assembler.client.AssemblerOptionSpec
-objekt som anger körningsalternativen, inklusive standardteckensnitt och jobbloggsnivå.
Metoden
invokeOneDocument
returnerar ettcom.adobe.idp.Document
-objekt som innehåller ett icke-interaktivt PDF-dokument. - Ett
-
Spara det icke-interaktiva PDF-dokumentet.
- Skapa ett
java.io.File
-objekt och kontrollera att filnamnstillägget är .pdf. - Anropa
Document
-objektetscopyToFile
-metod för att kopiera innehållet iDocument
-objektet till filen. Kontrollera att du använder objektetDocument
som metodeninvokeOneDocument
returnerade.
- Skapa ett
- "Snabbstart (SOAP läge): Sammanställa ett icke-interaktivt PDF-dokument med Java API"
Sammanställa ett icke-interaktivt PDF-dokument med hjälp av webbtjänstens API assemble-a-non-interactive-pdf-document-using-the-web-service-api
Sammanställa ett icke-interaktivt PDF-dokument med Assembler Service API (webbtjänst):
-
Inkludera projektfiler.
Skapa ett Microsoft .NET-projekt som använder MTOM. Kontrollera att du använder följande WSDL-definition:
http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1
.note note NOTE Ersätt localhost
med IP-adressen för servern som är värd för AEM Forms. -
Skapa en Assembler-klient.
-
Skapa ett
AssemblerServiceClient
-objekt med hjälp av dess standardkonstruktor. -
Skapa ett
AssemblerServiceClient.Endpoint.Address
-objekt med konstruktornSystem.ServiceModel.EndpointAddress
. Skicka ett strängvärde som anger WSDL till AEM Forms-tjänsten (till exempelhttp://localhost:8080/soap/services/AssemblerService?blob=mtom
). Du behöver inte använda attributetlc_version
. Det här attributet används när du skapar en tjänstreferens. -
Skapa ett
System.ServiceModel.BasicHttpBinding
-objekt genom att hämta värdet för fältetAssemblerServiceClient.Endpoint.Binding
. Skicka returvärdet tillBasicHttpBinding
. -
Ställ in
System.ServiceModel.BasicHttpBinding
-objektetsMessageEncoding
-fält tillWSMessageEncoding.Mtom
. Detta värde garanterar att MTOM används. -
Aktivera grundläggande HTTP-autentisering genom att utföra följande åtgärder:
- Tilldela användarnamnet för AEM formulär till fältet
AssemblerServiceClient.ClientCredentials.UserName.UserName
. - Tilldela motsvarande lösenordsvärde till fältet
AssemblerServiceClient.ClientCredentials.UserName.Password
. - Tilldela konstantvärdet
HttpClientCredentialType.Basic
till fältetBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Tilldela konstantvärdet
BasicHttpSecurityMode.TransportCredentialOnly
till fältetBasicHttpBindingSecurity.Security.Mode
.
- Tilldela användarnamnet för AEM formulär till fältet
-
-
Referera till ett befintligt DDX-dokument.
- Skapa ett
BLOB
-objekt med hjälp av dess konstruktor. ObjektetBLOB
används för att lagra DDX-dokumentet. - Skapa ett
System.IO.FileStream
-objekt genom att anropa dess konstruktor och skicka ett strängvärde som representerar filplatsen för DDX-dokumentet och läget som filen ska öppnas i. - Skapa en bytearray som lagrar innehållet i objektet
System.IO.FileStream
. Du kan bestämma storleken på bytearrayen genom att hämtaSystem.IO.FileStream
-objektetsLength
-egenskap. - Fyll i bytearrayen med strömdata genom att anropa
System.IO.FileStream
-objektetsRead
-metod. Skicka bytearrayen, startpositionen och strömlängden som ska läsas. - Fyll
BLOB
-objektet genom att tilldela dessMTOM
-fält med innehållet i bytearrayen.
- Skapa ett
-
Referera till ett interaktivt PDF-dokument.
- Skapa ett
BLOB
-objekt med hjälp av dess konstruktor. ObjektetBLOB
används för att lagra indatadokumentet i PDF. Det härBLOB
-objektet skickas tillinvokeOneDocument
som ett argument. - Skapa ett
System.IO.FileStream
-objekt genom att anropa dess konstruktor och skicka ett strängvärde som representerar filplatsen för indata-PDF-dokumentet och läget som filen ska öppnas i. - Skapa en bytearray som lagrar innehållet i objektet
System.IO.FileStream
. Du kan bestämma storleken på bytearrayen genom att hämtaSystem.IO.FileStream
-objektetsLength
-egenskap. - Fyll i bytearrayen med strömdata genom att anropa
System.IO.FileStream
-objektetsRead
-metod. Skicka bytearrayen, startpositionen och strömlängden som ska läsas. - Fyll
BLOB
-objektet genom att tilldela dessMTOM
-fält med innehållet i bytearrayen.
- Skapa ett
-
Ange körningsalternativ.
- Skapa ett
AssemblerOptionSpec
-objekt som lagrar körningsalternativ med hjälp av dess konstruktor. - Ange körningsalternativ för att uppfylla dina affärskrav genom att tilldela ett värde till en datamedlem som tillhör objektet
AssemblerOptionSpec
. Om du till exempel vill instruera Assembler-tjänsten att fortsätta bearbeta ett jobb när ett fel inträffar tilldelar dufalse
tillAssemblerOptionSpec
-objektetsfailOnError
-datamedlem.
- Skapa ett
-
Sammanställ dokumentet PDF.
Anropa
AssemblerServiceClient
-objektetsinvokeOneDocument
-metod och skicka följande värden:- Ett
BLOB
-objekt som representerar DDX-dokumentet - Ett
BLOB
-objekt som representerar det interaktiva PDF-dokumentet - Ett
AssemblerOptionSpec
-objekt som anger körningsalternativ
Metoden
invokeOneDocument
returnerar ettBLOB
-objekt som innehåller ett icke-interaktivt PDF-dokument. - Ett
-
Spara det icke-interaktiva PDF-dokumentet.
- Skapa ett
System.IO.FileStream
-objekt genom att anropa dess konstruktor och skicka ett strängvärde som representerar filplatsen för det icke-interaktiva PDF-dokumentet och läget som filen ska öppnas i. - Skapa en bytearray som lagrar innehållet i objektet
BLOB
som metodeninvokeOneDocument
returnerade. Fyll i bytearrayen genom att hämta värdet förBLOB
-objektetsMTOM
-fält. - Skapa ett
System.IO.BinaryWriter
-objekt genom att anropa dess konstruktor och skickaSystem.IO.FileStream
-objektet. - Skriv bytearrayens innehåll till en PDF-fil genom att anropa
System.IO.BinaryWriter
-objektetsWrite
-metod och skicka bytearrayen.
- Skapa ett
- "Snabbstart (MTOM): Sammanställa ett icke-interaktivt PDF-dokument med hjälp av webbtjänstens API."
Se även