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.

    NOTA

    Sostituire localhost con l'indirizzo IP del server che ospita AEM Forms.

  2. Creare un client Assembler PDF.

    • Creare un oggetto AssemblerServiceClient utilizzando il relativo costruttore predefinito.

    • Creare un oggetto AssemblerServiceClient.Endpoint.Address utilizzando il costruttore System.ServiceModel.EndpointAddress. Passate 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'attributo lc_version. Questo attributo viene utilizzato quando create un riferimento a un servizio.

    • Creare un oggetto System.ServiceModel.BasicHttpBinding ottenendo il valore del campo AssemblerServiceClient.Endpoint.Binding. Inserite il valore restituito in BasicHttpBinding.

    • Impostare il campo System.ServiceModel.BasicHttpBinding dell'oggetto MessageEncoding su WSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM.

    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:

      • Assegnare il nome utente del modulo 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 oggetto BLOB utilizzando il relativo costruttore. L'oggetto BLOB viene utilizzato per memorizzare il documento DDX.
    • Creare un oggetto System.IO.FileStream 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'oggetto System.IO.FileStream. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà System.IO.FileStream dell'oggetto Length.
    • Compilare l'array di byte con i dati del flusso richiamando il metodo Read dell'oggetto System.IO.FileStream e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l'oggetto BLOB assegnandone la proprietà MTOM con il contenuto dell'array di byte.
  4. Fare riferimento a un documento PDF per smontare.

    • Creare un oggetto BLOB utilizzando il relativo costruttore. L'oggetto BLOB viene utilizzato per memorizzare il documento PDF di input. Questo oggetto BLOB viene passato al invokeOneDocument come argomento.
    • Creare un oggetto System.IO.FileStream 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'oggetto System.IO.FileStream. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà System.IO.FileStream dell'oggetto Length.
    • Compilare l'array di byte con i dati del flusso richiamando il metodo Read dell'oggetto System.IO.FileStream e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l'oggetto BLOB assegnando al relativo campo MTOM il contenuto dell'array di byte.
    • Creare un oggetto MyMapOf_xsd_string_To_xsd_anyType. Questo oggetto raccolta viene utilizzato per memorizzare il PDF per la scomposizione.
    • Creare un oggetto MyMapOf_xsd_string_To_xsd_anyType_Item.
    • Assegnare un valore di stringa che rappresenta il nome chiave al campo MyMapOf_xsd_string_To_xsd_anyType_Item dell'oggetto key. Questo valore deve corrispondere al valore dell'elemento di origine PDF specificato nel documento DDX.
    • Assegnare l'oggetto BLOB che memorizza il documento PDF nel campo MyMapOf_xsd_string_To_xsd_anyType_Item dell'oggetto value.
    • Aggiungere l'oggetto MyMapOf_xsd_string_To_xsd_anyType_Item all'oggetto MyMapOf_xsd_string_To_xsd_anyType. Richiamare il metodo MyMapOf_xsd_string_To_xsd_anyType' Add e passare l'oggetto MyMapOf_xsd_string_To_xsd_anyType.
  5. Impostare le opzioni di esecuzione.

    • Creare un oggetto AssemblerOptionSpec 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 che appartiene all'oggetto AssemblerOptionSpec. Ad esempio, per indicare al servizio Assembler di continuare a elaborare un processo in caso di errore, assegnare false al campo AssemblerOptionSpec dell'oggetto failOnError.
  6. Smontare il documento PDF.

    Richiamare il metodo AssemblerServiceClient dell'oggetto invokeDDX e trasmettere i seguenti valori:

    • Un oggetto BLOB che rappresenta il documento DDX che smonta il documento PDF
    • L'oggetto MyMapOf_xsd_string_To_xsd_anyType che contiene il documento PDF da smontare
    • Un oggetto AssemblerOptionSpec che specifica le opzioni di esecuzione

    Il metodo invokeDDX restituisce un oggetto AssemblerResult 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 documents dell'oggetto AssemblerResult, che è un oggetto Map contenente i documenti PDF smontati.
    • Iterate l'oggetto Map per ottenere ogni documento risultante. Quindi, proiettare l'elemento value del membro della matrice su un elemento BLOB.
    • Estrarre i dati binari che rappresentano il documento PDF accedendo alla proprietà BLOB dell'oggetto MTOM. Questo restituisce un array di byte che è possibile scrivere in un file PDF.

Consulta anche

Scomposizione programmatica dei documenti PDF

Chiamata AEM Forms tramite MTOM

In questa pagina