Show Menu
ARGOMENTI×

Scomposizione programmatica dei documenti PDF

È possibile smontare un documento PDF trasferendolo al servizio Assembler. In genere, questa attività è utile quando il documento PDF è stato creato originariamente da molti documenti, ad esempio una raccolta di istruzioni. Nell'illustrazione seguente, DocA è diviso in più documenti risultanti, dove il segnalibro di primo livello 1 in una pagina identifica l'inizio di un nuovo documento risultante.
Per smontare un documento PDF, assicurarsi che l' PDFsFromBookmarks elemento si trovi nel documento DDX. L' PDFsFromBookmarks elemento è un elemento risultante e può essere solo un elemento secondario dell' DDX elemento. Non ha un result attributo perché può generare più documenti.
L' PDFsFromBookmarks elemento determina la generazione di un singolo documento per ciascun segnalibro di livello 1 nel documento di origine.
Ai fini di questa discussione, si supponga di utilizzare il seguente documento DDX.
 <?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>

Prima di leggere questa sezione, è consigliabile avere familiarità con l'assemblaggio dei documenti PDF tramite il servizio Assembler. (Vedere Assemblaggio di documenti PDF a livello di programmazione.)
Quando si passa un singolo documento PDF al servizio Assembler e si ritorna a un singolo documento, è possibile richiamare l' invokeOneDocument operazione. Tuttavia, per smontare un documento PDF, utilizzare l' invokeDDX operazione perché, sebbene un documento PDF di input venga passato al servizio Assembler, il servizio Assembler restituisce un oggetto raccolta contenente uno o più documenti.
Per ulteriori informazioni sul servizio Assembler, consultate Guida di riferimento ai servizi per AEM Forms .
Per ulteriori informazioni su un documento DDX, vedere Servizio Assembler e Riferimento DDX.

Riepilogo dei passaggi

Per smontare un documento PDF, effettuare le seguenti operazioni:
  1. Includere i file di progetto.
  2. Creare un client Assembler PDF.
  3. Fare riferimento a un documento DDX esistente.
  4. Fare riferimento a un documento PDF per smontare.
  5. Impostare le opzioni di esecuzione.
  6. Smontare il documento PDF.
  7. Salvare i documenti PDF smontati.
Includi file di progetto
Includete i file necessari nel progetto di sviluppo. Se create un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate i servizi Web, accertatevi di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-assembler-client.jar
  • adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
  • jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
se AEM Forms è implementato su un server applicazione J2EE supportato che non sia JBoss, è necessario sostituire adobe-utilities.jar e jbossall-client.jar con file JAR specifici per il server applicazione J2EE su cui è distribuito AEM Forms.
Creare un client Assembler PDF
Prima di eseguire un'operazione Assembler a livello di programmazione, è necessario creare un client di servizio Assembler.
Riferimento a un documento DDX esistente
Per smontare un documento PDF è necessario fare riferimento a un documento DDX. Questo documento DDX deve contenere l' PDFsFromBookmarks elemento .
Riferimento a un documento PDF da smontare
Per smontare un documento PDF, fare riferimento a un file PDF che rappresenta il documento PDF da smontare. Quando viene passato al servizio Assembler, viene restituito un documento PDF separato per ciascun segnalibro di livello 1 nel documento.
Impostazione delle opzioni di esecuzione
È possibile impostare opzioni di esecuzione che controllano il comportamento del servizio Assembler mentre esegue un processo. Ad esempio, potete impostare un'opzione che indichi al servizio Assembler di continuare l'elaborazione di un processo in caso di errore.
Smontare il documento PDF
Dopo aver creato il client del servizio Assembler, fare riferimento al documento DDX, fare riferimento a un documento PDF per smontare e impostare le opzioni di esecuzione, è possibile smontare un documento PDF richiamando il invokeDDX metodo. Se il documento DDX contiene istruzioni per smontare il documento PDF, il servizio Assembler restituisce documenti PDF smontati all'interno di un oggetto raccolta.
Salvare i documenti PDF smontati
Tutti i documenti PDF disassemblati vengono restituiti all'interno di un oggetto raccolta. Iterare l'oggetto della raccolta e salvare ciascun documento PDF come file PDF.
Consulta anche

Smontare un documento PDF utilizzando l'API Java

Smontare un documento PDF utilizzando l'API Assembler Service (Java):
  1. Includere i file di progetto.
    Includete file JAR client, ad esempio adobe-assembler-client.jar, nel percorso di classe del progetto Java.
  2. Creare un client Assembler PDF.
    • Creare un ServiceClientFactory oggetto che contenga proprietà di connessione.
    • Creare un AssemblerServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
  3. Fare riferimento a un documento DDX esistente.
    • Creare un java.io.FileInputStream oggetto che rappresenta il documento DDX utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del file DDX.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
  4. Fare riferimento a un documento PDF per smontare.
    • Creare un oggetto java.util.Map utilizzato per memorizzare i documenti PDF di input utilizzando un HashMap costruttore.
    • Creare un java.io.FileInputStream oggetto utilizzando il relativo costruttore e passare la posizione del documento PDF da smontare.
    • Creare un com.adobe.idp.Document oggetto e passare l' java.io.FileInputStream oggetto che contiene il documento PDF da smontare.
    • Aggiungere una voce all' java.util.Map oggetto richiamandone il put metodo e passando gli argomenti seguenti:
      • Un valore di stringa che rappresenta il nome della chiave. Questo valore deve corrispondere al valore dell'elemento di origine PDF specificato nel documento DDX.
      • Un com.adobe.idp.Document oggetto che contiene il documento PDF da smontare.
  5. Impostare le opzioni di esecuzione.
    • Creare un AssemblerOptionSpec oggetto che memorizza le opzioni di esecuzione utilizzando il relativo costruttore.
    • Impostate le opzioni di runtime per soddisfare i requisiti aziendali richiamando un metodo che appartiene all' AssemblerOptionSpec oggetto. Ad esempio, per indicare al servizio Assembler di continuare a elaborare un processo quando si verifica un errore, richiamare il metodo dell' AssemblerOptionSpec oggetto setFailOnError e passare false .
  6. Smontare il documento PDF.
    Richiamare il metodo dell' AssemblerServiceClient oggetto invokeDDX e trasmettere i seguenti valori obbligatori:
    • Un com.adobe.idp.Document oggetto che rappresenta il documento DDX da utilizzare
    • Un java.util.Map oggetto che contiene il documento PDF da smontare
    • Un com.adobe.livecycle.assembler.client.AssemblerOptionSpec oggetto che specifica le opzioni di esecuzione, incluso il font predefinito e il livello di registro del processo Il invokeDDX metodo restituisce un com.adobe.livecycle.assembler.client.AssemblerResult oggetto che contiene i documenti PDF disassemblati ed eventuali eccezioni.
  7. Salvare i documenti PDF smontati.
    Per ottenere i documenti PDF disassemblati, effettuare le seguenti operazioni:
    • Richiama il metodo dell’ AssemblerResult oggetto getDocuments . Questo restituisce un java.util.Map oggetto.
    • Iterare l' java.util.Map oggetto fino a individuare l' com.adobe.idp.Document oggetto risultante.
    • Richiamare il metodo dell' com.adobe.idp.Document oggetto copyToFile per estrarre il documento PDF.
Consulta anche

Smontare un documento PDF utilizzando l'API del servizio Web

Smontare un documento PDF utilizzando l'API Assembler Service (servizio Web):
  1. Includere i file di progetto.
    Creare un progetto Microsoft .NET che utilizza MTOM. Quando imposti un riferimento a un servizio, accertatevi di utilizzare la seguente definizione WSDL: http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1 .
    Sostituire localhost con l'indirizzo IP del server in cui è installato AEM Forms.
  2. Creare un client Assembler PDF.
    • Creare un AssemblerServiceClient oggetto utilizzando il relativo costruttore predefinito.
    • Creare un AssemblerServiceClient.Endpoint.Address oggetto utilizzando il System.ServiceModel.EndpointAddress costruttore. Passa un valore di stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/AssemblerService?blob=mtom ). Non è necessario utilizzare l' lc_version attributo. Questo attributo viene utilizzato quando create un riferimento a un servizio.
    • Creare un System.ServiceModel.BasicHttpBinding oggetto ottenendo il valore del AssemblerServiceClient.Endpoint.Binding campo. Inserite il valore restituito in BasicHttpBinding .
    • Impostare il campo System.ServiceModel.BasicHttpBinding dell' MessageEncoding oggetto su WSMessageEncoding.Mtom . Questo valore assicura che venga utilizzato MTOM.
    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:
      • Assegnare il nome utente dei moduli AEM al campo AssemblerServiceClient.ClientCredentials.UserName.UserName .
      • Assegnare il valore della password corrispondente al campo AssemblerServiceClient.ClientCredentials.UserName.Password .
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode .
  3. Fare riferimento a un documento DDX esistente.
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare il documento DDX.
    • Creare un System.IO.FileStream oggetto richiamandone il costruttore. Passa un valore di stringa che rappresenta la posizione del file del documento DDX e la modalità in cui aprire il file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il System.IO.FileStream Read metodo dell'oggetto e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnandone MTOM la proprietà con il contenuto dell'array di byte.
  4. Fare riferimento a un documento PDF per smontare.
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare il documento PDF di input. Questo BLOB oggetto viene passato all'oggetto invokeOneDocument come argomento.
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF di input e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il System.IO.FileStream Read metodo dell'oggetto e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnando al relativo MTOM campo il contenuto dell'array di byte.
    • Create a MyMapOf_xsd_string_To_xsd_anyType object. Questo oggetto raccolta viene utilizzato per memorizzare il PDF per la scomposizione.
    • Create a MyMapOf_xsd_string_To_xsd_anyType_Item object.
    • Assegnare un valore di stringa che rappresenta il nome chiave al campo dell' MyMapOf_xsd_string_To_xsd_anyType_Item oggetto key . Questo valore deve corrispondere al valore dell'elemento di origine PDF specificato nel documento DDX.
    • Assegnare l' BLOB oggetto che memorizza il documento PDF nel campo dell' MyMapOf_xsd_string_To_xsd_anyType_Item oggetto value .
    • Aggiungere l' MyMapOf_xsd_string_To_xsd_anyType_Item oggetto all' MyMapOf_xsd_string_To_xsd_anyType oggetto. Richiamare il metodo dell’ MyMapOf_xsd_string_To_xsd_anyType oggetto Add e passare l’ MyMapOf_xsd_string_To_xsd_anyType oggetto.
  5. Impostare le opzioni di esecuzione.
    • Creare un AssemblerOptionSpec oggetto che memorizza le opzioni di esecuzione utilizzando il relativo costruttore.
    • Impostare le opzioni di runtime per soddisfare i requisiti aziendali assegnando un valore a un membro di dati appartenente all' AssemblerOptionSpec oggetto. Ad esempio, per indicare al servizio Assembler di continuare a elaborare un processo in caso di errore, assegnare false al campo dell' AssemblerOptionSpec oggetto failOnError .
  6. Smontare il documento PDF.
    Richiama il metodo dell’ AssemblerServiceClient oggetto invokeDDX e passa i seguenti valori:
    • Un BLOB oggetto che rappresenta il documento DDX che smonta il documento PDF
    • L' MyMapOf_xsd_string_To_xsd_anyType oggetto che contiene il documento PDF da smontare
    • Un oggetto AssemblerOptionSpec che specifica le opzioni di esecuzione Il invokeDDX metodo restituisce un AssemblerResult oggetto che contiene i risultati del processo ed eventuali eccezioni.
  7. Salvare i documenti PDF smontati.
    Per ottenere i documenti PDF appena creati, effettuare le seguenti operazioni:
    • Accedere al campo dell' AssemblerResult oggetto documents , ovvero un Map oggetto che contiene i documenti PDF smontati.
    • Eseguire un'iterazione sull' Map oggetto per ottenere ogni documento risultante. Quindi, inserite il membro dell'array value in un BLOB .
    • Estrarre i dati binari che rappresentano il documento PDF accedendo alla BLOB proprietà dell' MTOM oggetto. Questo restituisce un array di byte che è possibile scrivere in un file PDF.
Consulta anche