Dela upp PDF-dokument programmatiskt programmatically-disassembling-pdf-documents
Exempel och exempel i det här dokumentet gäller endast för AEM Forms i JEE-miljö.
Du kan dela upp ett PDF-dokument genom att skicka det till Assembler-tjänsten. Vanligtvis är den här uppgiften användbar när PDF-dokumentet ursprungligen skapades från många enskilda dokument, till exempel en samling programsatser. På följande bild delas DocA in i flera resulterande dokument, där det första bokmärket på nivå 1 på en sida anger början på ett nytt resulterande dokument.
Om du vill demontera ett PDF-dokument kontrollerar du att elementet PDFsFromBookmarks
finns i DDX-dokumentet. Elementet PDFsFromBookmarks
är ett resultatelement och kan bara vara ett underordnat element till elementet DDX
. Det har inget result
-attribut eftersom det kan leda till att flera dokument genereras.
Elementet PDFsFromBookmarks
gör att ett dokument genereras för varje nivå 1-bokmärke i källdokumentet.
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/">
<PDFsFromBookmarks prefix="stmt">
<PDF source="AssemblerResultPDF.pdf"/>
</PDFsFromBookmarks>
</DDX>
invokeOneDocument
. Om du vill dela upp ett PDF-dokument använder du åtgärden invokeDDX
eftersom även om ett indatadokument skickas till PDF Assembler, returnerar Assembler-tjänsten ett samlingsobjekt som innehåller ett eller flera dokument.Sammanfattning av steg summary-of-steps
Gör så här om du vill dela upp ett PDF-dokument:
- Inkludera projektfiler.
- Skapa en PDF Assembler-klient.
- Referera till ett befintligt DDX-dokument.
- Referera ett PDF-dokument som ska demonteras.
- Ange körningsalternativ.
- Dela upp PDF-dokumentet.
- Spara de upplösta PDF-dokumenten.
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 J2EE-programserver som stöds och som inte är JBoss, måste du ersätta 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 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
Det måste finnas en referens till ett DDX-dokument för att du ska kunna dela upp ett PDF-dokument. Det här DDX-dokumentet måste innehålla elementet PDFsFromBookmarks
.
Referera till ett PDF-dokument som ska demonteras
Om du vill dela upp ett PDF-dokument refererar du till en PDF-fil som representerar det PDF-dokument som ska demonteras. När det skickas till Assembler-tjänsten returneras ett separat PDF-dokument för varje nivå 1-bokmärke i dokumentet.
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.
Disassemblera PDF-dokumentet
När du har skapat Assembler-tjänstklienten, refererat till DDX-dokumentet, refererat till ett PDF-dokument som ska demonteras och angett körningsalternativ, kan du demontera ett PDF-dokument genom att anropa metoden invokeDDX
. Under förutsättning att DDX-dokumentet innehåller instruktioner för att demontera PDF returnerar Assembler-tjänsten omonterade PDF-dokument i ett samlingsobjekt.
Spara de omonterade PDF-dokumenten
Alla uppdelade PDF-dokument returneras inom ett samlingsobjekt. Iterera genom samlingsobjektet och spara varje PDF-dokument som en PDF-fil.
Se även
Dela upp ett PDF-dokument med Java API disassemble-a-pdf-document-using-the-java-api
Dela upp ett PDF-dokument med 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 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 ett PDF-dokument som ska demonteras.
-
Skapa ett
java.util.Map
-objekt som används för att lagra PDF-indatadokument med hjälp av enHashMap
-konstruktor. -
Skapa ett
java.io.FileInputStream
-objekt med hjälp av konstruktorn och skicka platsen för det PDF-dokument som ska demonteras. -
Skapa ett
com.adobe.idp.Document
-objekt och skicka detjava.io.FileInputStream
-objekt som innehåller det PDF-dokument som ska demonteras. -
Lägg till en post i objektet
java.util.Map
genom att anropa dessput
-metod 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.
- Ett
com.adobe.idp.Document
-objekt som innehåller det PDF-dokument som ska demonteras.
-
-
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
-
Dela upp PDF-dokumentet.
Anropa
AssemblerServiceClient
-objektetsinvokeDDX
-metod och skicka följande obligatoriska värden:- Ett
com.adobe.idp.Document
-objekt som representerar det DX-dokument som ska användas - Ett
java.util.Map
-objekt som innehåller det PDF-dokument som ska demonteras - Ett
com.adobe.livecycle.assembler.client.AssemblerOptionSpec
-objekt som anger körningsalternativen, inklusive standardteckensnittet och jobbloggsnivån
Metoden
invokeDDX
returnerar ettcom.adobe.livecycle.assembler.client.AssemblerResult
-objekt som innehåller de omonterade PDF-dokumenten och eventuella undantag som har inträffat. - Ett
-
Spara de upplösta PDF-dokumenten.
Gör så här för att få fram de uppdelade PDF-dokumenten:
- Anropa metoden
getDocuments
för objektetAssemblerResult
. Detta returnerar ettjava.util.Map
-objekt. - Upprepa genom objektet
java.util.Map
tills du hittar det resulterandecom.adobe.idp.Document
-objektet. - Anropa
com.adobe.idp.Document
-objektetscopyToFile
-metod för att extrahera PDF-dokumentet.
- Anropa metoden
Se även
Dela upp PDF-dokument programmatiskt
Snabbstart (SOAP): Dela upp ett PDF-dokument med Java API
Dela upp ett PDF-dokument med hjälp av webbtjänstens API disassemble-a-pdf-document-using-the-web-service-api
Dela upp ett 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 när du anger en tjänstreferens:
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 PDF 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. 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 och skicka bytearrayen, startpositionen och strömlängden som ska läsas. - Fyll objektet
BLOB
genom att tilldela dessMTOM
-egenskap med innehållet i bytearrayen.
- Skapa ett
-
Referera ett PDF-dokument som ska demonteras.
- 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 och skicka bytearrayen, startpositionen och strömlängden som ska läsas. - Fyll i
BLOB
-objektet genom att tilldela dessMTOM
-fält innehållet i bytearrayen. - Skapa ett
MyMapOf_xsd_string_To_xsd_anyType
-objekt. Samlingsobjektet används för att lagra PDF som ska demonteras. - Skapa ett
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. - Tilldela det
BLOB
-objekt som lagrar PDF-dokumentet tillMyMapOf_xsd_string_To_xsd_anyType_Item
-objektetsvalue
-fält. - Lägg till objektet
MyMapOf_xsd_string_To_xsd_anyType_Item
i objektetMyMapOf_xsd_string_To_xsd_anyType
. AnropaMyMapOf_xsd_string_To_xsd_anyType
-objektetsAdd
-metod och skickaMyMapOf_xsd_string_To_xsd_anyType
-objektet.
- 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
-fält.
- Skapa ett
-
Dela upp PDF-dokumentet.
Anropa
AssemblerServiceClient
-objektetsinvokeDDX
-metod och skicka följande värden:- Ett
BLOB
-objekt som representerar DDX-dokumentet som demonterar PDF-dokumentet - Det
MyMapOf_xsd_string_To_xsd_anyType
-objekt som innehåller det PDF-dokument som ska demonteras - Ett
AssemblerOptionSpec
-objekt som anger körningsalternativ
Metoden
invokeDDX
returnerar ettAssemblerResult
-objekt som innehåller jobbresultaten och eventuella undantag som har inträffat. - Ett
-
Spara de upplösta PDF-dokumenten.
Gör så här för att hämta de nya PDF-dokumenten:
- Åtkomst till
AssemblerResult
-objektetsdocuments
-fält, som är ettMap
-objekt som innehåller de omonterade PDF-dokumenten. - Iterera genom objektet
Map
för att få fram varje resulterande dokument. Sedan konverterar du den arraymedlemmensvalue
till enBLOB
. - Extrahera de binära data som representerar PDF-dokumentet genom att komma åt objektets
MTOM
-egenskap förBLOB
. Detta returnerar en array med byte som du kan skriva ut till en PDF-fil.
- Åtkomst till
Se även
Dela upp PDF-dokument programmatiskt