Sammanställa dokument med Bates-numrering assembling-documents-using-bates-numbering
Exempel och exempel i det här dokumentet är bara för AEM Forms i JEE-miljö.
Du kan sätta ihop PDF-dokument som innehåller unika sididentifierare genom att använda Bates-numrering. Bates-numrering är en metod för att tillämpa unika identifieringsmetoder på en grupp av relaterade dokument. Varje sida i dokumentet (eller dokumentuppsättningen) tilldelas ett Bates-nummer som unikt identifierar sidan. Till exempel kan tillverkningsdokument som innehåller produktstruktur och som är kopplade till produktionen av en sammansättning innehålla en identifierare. Ett Bates-nummer innehåller ett numeriskt värde i följd samt ett valfritt prefix och suffix. Prefixet + numeriskt + suffix kallas bates-mönster.
Följande bild visar ett PDF-dokument som innehåller en unik identifierare i dokumentets sidhuvud.
I det här avsnittet placeras den unika sididentifieraren i ett dokuments sidhuvud. Anta att följande DDX-dokument används.
<?xml version="1.0" encoding="UTF-8"?>
<DDX xmlns="https://ns.adobe.com/DDX/1.0/">
<PDF result="out.pdf">
<Header>
<Center>
<StyledText>
<p font-size="20pt"><BatesNumber/></p>
</StyledText>
</Center>
</Header>
<PDF source="map.pdf" />
<PDF source="directions.pdf" />
</PDF>
</DDX>
Det här DDX-dokumentet sammanfogar två PDF-dokument med namnet map.pdf och vägbeskrivning.pdf till ett enda dokument i PDF. Det resulterande PDF-dokumentet innehåller ett sidhuvud som består av en unik sididentifierare. Dokumentet i ovanstående bild visar till exempel 000016.
Sammanfattning av steg summary-of-steps
Gör så här om du vill sätta ihop ett PDF-dokument som innehåller en unik sididentifierare (Bates-numrering):
- Inkludera projektfiler.
- Skapa en PDF Assembler-klient.
- Referera till ett befintligt DDX-dokument.
- Referera PDF-dokument för indata.
- Ange det inledande Bates-nummervärdet.
- Sammanställ PDF-indatadokumenten.
- Extrahera resultaten.
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 där AEM Forms är driftsatt. Information om platsen för alla AEM Forms JAR-filer finns i Inkludera AEM Forms Java-biblioteksfiler.
Skapa en PDF 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. Ta till exempel det DX-dokument som introducerades i det här avsnittet. Om du vill montera ett PDF-dokument som innehåller unika sididentifierare måste DDX-dokumentet innehålla BatesNumber
-element.
PDF-dokument för referensindata
Det måste finnas referenser till indata-PDF-dokument för att du ska kunna samla ihop ett PDF-dokument. Exempelvis måste dokumenten map.pdf och direction.pdf refereras till för att samla ihop dessa PDF-dokument till ett enda PDF-dokument.
Ange det inledande Bates-nummervärdet
Du kan ställa in det inledande Bates-numret så att det uppfyller dina affärskrav. Anta till exempel att det är ett krav att ställa in startvärdet på 000100. Om du inte anger startvärdet är värdet för den första sidan 00000.
Sammanställa PDF-indatadokument
När du har skapat Assembler-tjänstklienten ska du referera till det DDX-dokument som innehåller BatesNumber
elementinformation, referera till ett inmatningsdokument i PDF och ange körningsalternativ, kan du anropa invokeDDX
som resulterar i att Assembler-tjänsten samlar ihop ett PDF-dokument som innehåller unika sididentifierare.
Extrahera resultaten
Assembler-tjänsten returnerar ett samlingsobjekt som innehåller jobbresultaten. Du kan extrahera det resulterande PDF-dokumentet och eventuella undantag som genereras. I det här fallet finns ett krypterat PDF-dokument i samlingsobjektet.
invokeDDX
operation. Den här åtgärden används när två eller flera indatadokument skickas till PDF till Assembler-tjänsten. Om du bara skickar ett indatadokument i PDF till Assembler-tjänsten bör du anropa invokeOneDocument
operation. Mer information om hur du använder den här åtgärden finns i Sammanställa krypterade PDF-dokument.Se även
Inkludera AEM Forms Java-biblioteksfiler
Programmisk sammanställning av PDF-dokument
Sammanställa dokument med Bates-numrering med Java API assemble-documents-with-bates-numbering-using-the-java-api
Sammanställa ett PDF-dokument som använder unika sididentifierare (Bates-numrering) 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 PDF Assembler-klient.
- Skapa en
ServiceClientFactory
objekt som innehåller anslutningsegenskaper. - Skapa en
AssemblerServiceClient
genom att använda konstruktorn och skickaServiceClientFactory
-objekt.
- Skapa en
-
Referera till ett befintligt DDX-dokument.
- Skapa en
java.io.FileInputStream
-objekt som representerar DDX-dokumentet genom att använda dess konstruktor och skicka ett strängvärde som anger platsen för DDX-filen. - Skapa en
com.adobe.idp.Document
genom att använda konstruktorn och skickajava.io.FileInputStream
-objekt.
- Skapa en
-
Referera PDF-dokument för indata.
-
Skapa en
java.util.Map
objekt som används för att lagra indatadokument i PDF genom att använda enHashMap
konstruktor. -
För varje indatadokument i PDF skapar du en
java.io.FileInputStream
genom att använda dess konstruktor och skicka indatadokumentets plats i PDF. I så fall ska du skicka platsen för ett oskyddat PDF-dokument. -
För varje indatadokument i PDF skapar du en
com.adobe.idp.Document
-objektet och skickajava.io.FileInputStream
-objekt som innehåller dokumentet PDF. -
Lägg till en post i
java.util.Map
genom att anropa dessput
och skicka följande argument:- Ett strängvärde som representerar nyckelnamnet. Detta värde måste matcha värdet för källelementet PDF som anges i DDX-dokumentet. Namnet på källfilen i PDF som anges i DDX-dokumentet som introduceras i det här avsnittet är Loan.pdf.
- A
com.adobe.idp.Document
objekt som innehåller det oskyddade PDF-dokumentet.
-
-
Ange det inledande Bates-nummervärdet.
- Skapa en
AssemblerOptionSpec
objekt som lagrar körningsalternativ med hjälp av dess konstruktor. - Ange det inledande Bates-numret genom att anropa
AssemblerOptionSpec
objektetssetFirstBatesNumber
och skickar ett numeriskt värde som anger det inledande värdet.
- Skapa en
-
Sammanställ PDF-indatadokumenten.
Anropa
AssemblerServiceClient
objektetsinvokeDDX
och skicka följande obligatoriska värden:- A
com.adobe.idp.Document
-objekt som representerar DDX-dokumentet. - A
java.util.Map
objekt som innehåller indata för oskyddad PDF-fil. - A
com.adobe.livecycle.assembler.client.AssemblerOptionSpec
-objekt som anger körningsalternativ, inklusive standardteckensnitt och jobbloggsnivå.
The
invokeDDX
returnerar encom.adobe.livecycle.assembler.client.AssemblerResult
objekt som innehåller ett lösenordskrypterat PDF-dokument. - A
-
Extrahera resultaten.
Utför följande åtgärder för att hämta det nya PDF-dokumentet:
- Anropa
AssemblerResult
objektetsgetDocuments
-metod. Den här åtgärden returnerar enjava.util.Map
-objekt. - Iterera genom
java.util.Map
tills du hittarcom.adobe.idp.Document
-objekt. - Anropa
com.adobe.idp.Document
objektetscopyToFile
metod för att extrahera PDF-dokumentet.
- Anropa
Se även
Snabbstart (SOAP-läge): Sammanställa ett PDF-dokument med Bates-numrering med Java API
Inkludera AEM Forms Java-biblioteksfiler
Sammanställa dokument med Bates-numrering med webbtjänstens API assemble-documents-with-bates-numbering-using-the-web-service-api
Sammanställa ett PDF-dokument som använder unika sididentifierare (Bates-numrering) med Assembler Service API (webbtjänsten):
-
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 till den server där AEM Forms finns. -
Skapa en PDF Assembler-klient.
-
Skapa en
AssemblerServiceClient
genom att använda dess standardkonstruktor. -
Skapa en
AssemblerServiceClient.Endpoint.Address
genom att användaSystem.ServiceModel.EndpointAddress
konstruktor. 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ändalc_version
-attribut. Det här attributet används när du skapar en tjänstreferens. -
Skapa en
System.ServiceModel.BasicHttpBinding
genom att hämta värdet förAssemblerServiceClient.Endpoint.Binding
fält. Skicka returvärdet tillBasicHttpBinding
. -
Ange
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 AEM formuläranvändarnamn 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 AEM formuläranvändarnamn till fältet
-
-
Referera till ett befintligt DDX-dokument.
- Skapa en
BLOB
genom att använda dess konstruktor. TheBLOB
-objektet används för att lagra DDX-dokumentet. - Skapa en
System.IO.FileStream
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
System.IO.FileStream
-objekt. Du kan bestämma storleken på bytearrayen genom att hämtaSystem.IO.FileStream
objektetsLength
-egenskap. - Fylla 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 i
BLOB
genom att tilldelaMTOM
fält med bytearrayens innehåll.
- Skapa en
-
Referera PDF-dokument för indata.
- För varje indatadokument i PDF skapar du en
BLOB
genom att använda dess konstruktor. TheBLOB
-objektet används för att lagra indatadokumentet i PDF. - Skapa en
System.IO.FileStream
genom att anropa dess konstruktor. 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
System.IO.FileStream
-objekt. Du kan bestämma storleken på bytearrayen genom att hämtaSystem.IO.FileStream
objektetsLength
-egenskap. - Fylla 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 i
BLOB
genom att tilldelaMTOM
med bytearrayens innehåll. - Skapa en
MyMapOf_xsd_string_To_xsd_anyType
-objekt. Det här samlingsobjektet används för att lagra PDF-indatadokument. - För varje indatadokument i PDF skapar du en
MyMapOf_xsd_string_To_xsd_anyType_Item
-objekt. Om du t.ex. använder två indata-PDF-dokument skapar du tvåMyMapOf_xsd_string_To_xsd_anyType_Item
objekt. - Tilldela ett strängvärde som representerar nyckelnamnet till
MyMapOf_xsd_string_To_xsd_anyType_Item
objektetskey
fält. Detta värde måste matcha värdet för källelementet PDF som anges i DDX-dokumentet. (Utför den här åtgärden för varje dokument i PDF.) - Tilldela
BLOB
det objekt som lagrar PDF-dokumentet tillMyMapOf_xsd_string_To_xsd_anyType_Item
objektetsvalue
fält. (Utför den här åtgärden för varje dokument i PDF.) - Lägg till
MyMapOf_xsd_string_To_xsd_anyType_Item
objekt tillMyMapOf_xsd_string_To_xsd_anyType
-objekt. AnropaMyMapOf_xsd_string_To_xsd_anyType
objektetsAdd
och skickaMyMapOf_xsd_string_To_xsd_anyType
-objekt. (Utför den här åtgärden för varje dokument i PDF.)
- För varje indatadokument i PDF skapar du en
-
Ange det inledande Bates-nummervärdet.
- Skapa en
AssemblerOptionSpec
objekt som lagrar körningsalternativ med hjälp av dess konstruktor. - Ange det inledande Bates-numret genom att tilldela ett numeriskt värde till
firstBatesNumber
datamedlem som tillhörAssemblerOptionSpec
-objekt.
- Skapa en
-
Sammanställ PDF-indatadokumenten.
Anropa
AssemblerServiceClient
objektetsinvoke
och skicka följande värden:- A
BLOB
-objekt som representerar DDX-dokumentet. - The
MyMapOf_xsd_string_To_xsd_anyType
objekt som innehåller indatadokumenten i PDF. Dess nycklar måste matcha PDF källfilernas namn och dess värden måste varaBLOB
objekt som motsvarar dessa filer. - An
AssemblerOptionSpec
objekt som anger körningsalternativ.
The
invoke
returnerar enAssemblerResult
som innehåller resultatet av jobbet och eventuella undantag som inträffade. - A
-
Extrahera resultaten.
Utför följande åtgärder för att hämta det nya PDF-dokumentet:
- Öppna
AssemblerResult
objektetsdocuments
fält, vilket är ettMap
-objekt som innehåller de resulterande PDF-dokumenten. - Iterera genom
Map
tills du hittar nyckeln som matchar namnet på det resulterande dokumentet. Byt sedan ut arraymedlemmensvalue
tillBLOB
. - Extrahera de binära data som representerar PDF-dokumentet genom att öppna dess
BLOB
objektetsMTOM
-egenskap. Detta returnerar en array med byte som du kan skriva ut till en PDF-fil.
- Öppna
Se även