Desmontar um documento PDF usando a API de serviço Web disassemble-a-pdf-document-usingthe-web-service-api
Exemplos e exemplos neste documento são somente para AEM Forms no ambiente JEE.
Desmonte um documento PDF usando a API de serviço do Assembler (serviço Web):
-
Incluir arquivos de projeto.
Crie um projeto 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.note note NOTE Substitua localhostpelo endereço IP do servidor que hospeda o AEM Forms. -
Crie um cliente PDF Assembler.
-
Crie um objeto
AssemblerServiceClientusando seu construtor padrão. -
Crie um objeto
AssemblerServiceClient.Endpoint.Addressusando o construtorSystem.ServiceModel.EndpointAddress. Transmita um valor de string que especifique o WSDL para o serviço AEM Forms (por exemplo,http://localhost:8080/soap/services/AssemblerService?blob=mtom). Você não precisa usar o atributolc_version. Esse atributo é usado quando você cria uma referência de serviço. -
Crie um objeto
System.ServiceModel.BasicHttpBindingobtendo o valor do campoAssemblerServiceClient.Endpoint.Binding. Converter o valor de retorno emBasicHttpBinding. -
Defina o campo
MessageEncodingdo objetoSystem.ServiceModel.BasicHttpBindingcomoWSMessageEncoding.Mtom. Esse valor garante que a MTOM seja usada. -
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 de senha correspondente ao campo
AssemblerServiceClient.ClientCredentials.UserName.Password. - Atribua o valor constante
HttpClientCredentialType.Basicao campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Atribua o valor constante
BasicHttpSecurityMode.TransportCredentialOnlyao campoBasicHttpBindingSecurity.Security.Mode.
- Atribua o nome de usuário dos formulários AEM ao campo
-
-
Consulte um documento DDX existente.
- Crie um objeto
BLOBusando seu construtor. O objetoBLOBé usado para armazenar o documento DDX. - Crie um objeto
System.IO.FileStreaminvocando seu construtor. Transmita um valor de string que represente 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 objeto
System.IO.FileStream. Você pode determinar o tamanho da matriz de bytes obtendo a propriedadeLengthdo objetoSystem.IO.FileStream. - Preencha a matriz de bytes com os dados de fluxo invocando o método
Readdo objetoSystem.IO.FileStreame transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo para leitura. - Preencha o objeto
BLOBatribuindo sua propriedadeMTOMcom o conteúdo da matriz de bytes.
- Crie um objeto
-
Referencie um documento do PDF para desmontar.
- Crie um objeto
BLOBusando seu construtor. O objetoBLOBé usado para armazenar o documento de PDF de entrada. Este objetoBLOBé passado parainvokeOneDocumentcomo argumento. - Crie um objeto
System.IO.FileStreamchamando seu construtor e transmitindo um valor de cadeia de caracteres que representa o local do arquivo do documento de PDF de entrada e o modo no qual o arquivo será aberto. - Crie uma matriz de bytes que armazene o conteúdo do objeto
System.IO.FileStream. Você pode determinar o tamanho da matriz de bytes obtendo a propriedadeLengthdo objetoSystem.IO.FileStream. - Preencha a matriz de bytes com os dados de fluxo invocando o método
Readdo objetoSystem.IO.FileStreame transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo para leitura. - Preencha o objeto
BLOBatribuindo ao campoMTOMo conteúdo da matriz de bytes. - Crie um objeto
MyMapOf_xsd_string_To_xsd_anyType. Este objeto de coleção é usado para armazenar o PDF a ser desmontado. - Crie um objeto
MyMapOf_xsd_string_To_xsd_anyType_Item. - Atribua um valor de cadeia de caracteres que represente o nome da chave para o campo
keydo objetoMyMapOf_xsd_string_To_xsd_anyType_Item. Este valor deve corresponder ao valor do elemento de origem PDF especificado no documento DDX. - Atribua o objeto
BLOBque armazena o documento PDF ao campovaluedo objetoMyMapOf_xsd_string_To_xsd_anyType_Item. - Adicione o objeto
MyMapOf_xsd_string_To_xsd_anyType_Itemao objetoMyMapOf_xsd_string_To_xsd_anyType. Invoque o métodoAdddo objetoMyMapOf_xsd_string_To_xsd_anyTypee passe o objetoMyMapOf_xsd_string_To_xsd_anyType.
- Crie um objeto
-
Definir opções de tempo de execução.
- Crie um objeto
AssemblerOptionSpecque armazene opções de tempo de execução usando seu construtor. - Defina opções de tempo de execução para atender aos requisitos comerciais atribuindo um valor a um membro de dados que pertença ao objeto
AssemblerOptionSpec. Por exemplo, para instruir o serviço Assembler a continuar processando um trabalho quando ocorrer um erro, atribuafalseao campofailOnErrordo objetoAssemblerOptionSpec.
- Crie um objeto
-
Desmonte o documento PDF.
Chame o método
invokeDDXdo objetoAssemblerServiceCliente passe os seguintes valores:- Um objeto
BLOBque representa o documento DDX que desmonta o documento PDF - O objeto
MyMapOf_xsd_string_To_xsd_anyTypeque contém o documento PDF a ser desmontado - Um objeto
AssemblerOptionSpecque especifica as opções de tempo de execução
O método
invokeDDXretorna um objetoAssemblerResultque contém os resultados do trabalho e as exceções que ocorreram. - Um objeto
-
Salve os documentos de PDF desmontados.
Para obter os documentos PDF recém-criados, execute as seguintes ações:
- Acesse o campo
documentsdo objetoAssemblerResult, que é um objetoMapque contém os documentos PDF desmontados. - Repita através do objeto
Mappara obter cada documento resultante. Em seguida, converta ovaluedesse membro da matriz em umBLOB. - Extraia os dados binários que representam o documento PDF acessando a propriedade
MTOMdo objetoBLOB. Isso retorna uma matriz de bytes que você pode gravar em um arquivo PDF.
- Acesse o campo
Consulte também
Desmontando Documentos PDF de Forma Programática
Chamar o AEM Forms usando MTOM