Show Menu
TÓPICOS×

Desmontar um documento PDF usando a API de serviço da Web

Desmonte um documento PDF usando a API de serviço do Assembler (serviço da Web):
  1. Incluir arquivos de projeto.
    Crie um projeto do Microsoft .NET que use MTOM. Certifique-se de usar a seguinte definição WSDL ao definir uma referência de serviço: http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1 .
    Substitua localhost pelo endereço IP do servidor que hospeda o AEM Forms.
  2. Crie um cliente do Montador de PDF.
    • Crie um AssemblerServiceClient objeto usando seu construtor padrão.
    • Crie um AssemblerServiceClient.Endpoint.Address objeto usando o System.ServiceModel.EndpointAddress construtor. Passe um valor de string que especifica o WSDL para o serviço de formulários AEM (por exemplo, http://localhost:8080/soap/services/AssemblerService?blob=mtom ). Não é necessário usar o lc_version atributo. Esse atributo é usado ao criar uma referência de serviço.
    • Crie um System.ServiceModel.BasicHttpBinding objeto obtendo o valor do AssemblerServiceClient.Endpoint.Binding campo. Converta o valor de retorno em BasicHttpBinding .
    • Defina o System.ServiceModel.BasicHttpBinding campo do MessageEncoding objeto como WSMessageEncoding.Mtom . Esse valor garante que o MTOM seja usado.
    • Ative a autenticação HTTP básica executando as seguintes tarefas:
      • Atribua o nome de usuário dos formulários AEM ao campo AssemblerServiceClient.ClientCredentials.UserName.UserName .
      • Atribua o valor da senha correspondente ao campo AssemblerServiceClient.ClientCredentials.UserName.Password .
      • Atribua o valor constante HttpClientCredentialType.Basic ao campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Atribua o valor constante BasicHttpSecurityMode.TransportCredentialOnly ao campo BasicHttpBindingSecurity.Security.Mode .
  3. Faça referência a um documento DDX existente.
    • Crie um BLOB objeto usando seu construtor. O BLOB objeto é usado para armazenar o documento DX.
    • Crie um System.IO.FileStream objeto chamando seu construtor. Passe um valor de string que representa o local do arquivo do documento DDX e o modo no qual o arquivo será aberto.
    • Crie uma matriz de bytes que armazene o conteúdo do System.IO.FileStream objeto. É possível determinar o tamanho da matriz de bytes obtendo a propriedade do System.IO.FileStream objeto Length .
    • Preencha a matriz de bytes com dados de fluxo chamando o método do System.IO.FileStream Read objeto e transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo a ser lido.
    • Preencha o BLOB objeto atribuindo sua MTOM propriedade ao conteúdo da matriz de bytes.
  4. Consulte um documento PDF para desmontar.
    • Crie um BLOB objeto usando seu construtor. O BLOB objeto é usado para armazenar o documento PDF de entrada. Esse BLOB objeto é passado para o invokeOneDocument como um argumento.
    • Crie um System.IO.FileStream objeto chamando seu construtor e transmitindo um valor de string que representa o local do arquivo do documento PDF de entrada e o modo no qual o arquivo será aberto.
    • Crie uma matriz de bytes que armazene o conteúdo do System.IO.FileStream objeto. É possível determinar o tamanho da matriz de bytes obtendo a propriedade do System.IO.FileStream objeto Length .
    • Preencha a matriz de bytes com dados de fluxo chamando o método do System.IO.FileStream Read objeto e transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo a ser lido.
    • Preencha o BLOB objeto atribuindo a seu MTOM campo o conteúdo da matriz de bytes.
    • Create a MyMapOf_xsd_string_To_xsd_anyType object. Esse objeto de coleção é usado para armazenar o PDF a ser desmontado.
    • Create a MyMapOf_xsd_string_To_xsd_anyType_Item object.
    • Atribua um valor de string que representa o nome da chave ao campo do MyMapOf_xsd_string_To_xsd_anyType_Item objeto key . Esse valor deve corresponder ao valor do elemento de origem do PDF especificado no documento DX.
    • Atribua o BLOB objeto que armazena o documento PDF ao MyMapOf_xsd_string_To_xsd_anyType_Item campo do value objeto.
    • Adicione o MyMapOf_xsd_string_To_xsd_anyType_Item objeto ao MyMapOf_xsd_string_To_xsd_anyType objeto. Chame o método do MyMapOf_xsd_string_To_xsd_anyType objeto Add e passe o MyMapOf_xsd_string_To_xsd_anyType objeto.
  5. Defina as opções de tempo de execução.
    • Crie um AssemblerOptionSpec objeto que armazene opções de tempo de execução usando seu construtor.
    • Defina as opções de tempo de execução para atender aos requisitos de negócios, atribuindo um valor a um membro de dados que pertence ao AssemblerOptionSpec objeto. Por exemplo, para instruir o serviço Assembler a continuar processando uma tarefa quando ocorrer um erro, atribua false ao AssemblerOptionSpec failOnError campo do objeto.
  6. Desmonte o documento PDF.
    Chame o método do AssemblerServiceClient objeto invokeDDX e passe os seguintes valores:
    • Um BLOB objeto que representa o documento DDX que desmonta o documento PDF
    • O MyMapOf_xsd_string_To_xsd_anyType objeto que contém o documento PDF a ser desmontado
    • Um AssemblerOptionSpec objeto que especifica opções de tempo de execução
    O invokeDDX método retorna um AssemblerResult objeto que contém os resultados da tarefa e quaisquer exceções que ocorreram.
  7. Salve os documentos PDF desmontados.
    Para obter os documentos PDF recém-criados, execute as seguintes ações:
    • Acesse o AssemblerResult campo do documents objeto, que é um Map objeto que contém os documentos PDF desmontados.
    • Iterar pelo Map objeto para obter cada documento resultante. Em seguida, converta o membro do storage value em um BLOB .
    • Extraia os dados binários que representam o documento PDF acessando a propriedade do BLOB objeto MTOM . Isso retorna uma matriz de bytes que você pode gravar em um arquivo PDF.
Consulte também: