Criando Fluxos de Saída de Documento creating-document-output-streams
Sobre o serviço de saída
O serviço de saída permite a saída de documentos como PDF (incluindo documentos PDF/A), PostScript, PCL (Printer Control Language) e os seguintes formatos de etiqueta:
- Zebra - ZPL
- Interfaces - IPL
- Datamax - DPL
- TecToshiba - TPCL
Usando o serviço Saída, é possível mesclar dados de formulário XML com um design de formulário e enviar o documento para uma impressora ou arquivo de rede.
Há duas maneiras de passar um design de formulário (um arquivo XDP) para o serviço de saída. Você pode passar uma com.adobe.idp.Document instância que contém um design de formulário para o serviço Saída. Ou você pode passar um valor de URI que especifica o local do design de formulário. Ambas as maneiras são discutidas em Programação com formulários AEM.
As seções a seguir mostram como passar um design de formulário para o serviço de saída usando um valor de URI:
As seções a seguir mostram como passar um design de formulário em um com.adobe.idp.Document instância:
Uma consideração ao decidir qual técnica usar é se você estiver obtendo o design de formulário de outro serviço da AEM Forms e, em seguida, passá-lo em um com.adobe.idp.Document instância. Ambos os Enviar documentos para o serviço de saída e Criação de documentos do PDF usando fragmentos As seções mostram como obter um design de formulário de outro serviço da AEM Forms. A primeira seção recupera o design de formulário do Content Services (obsoleto). A segunda seção recupera o design de formulário do serviço Assembler.
Se o design de formulário estiver sendo obtido em um local fixo, como o sistema de arquivos, é possível usar qualquer técnica. Ou seja, você pode especificar o valor do URI para um arquivo XDP ou usar um com.adobe.idp.Document instância.
Para transmitir um valor de URI que especifica o local do design de formulário ao criar um documento PDF, use a variável generatePDFOutput método . Da mesma forma, para passar uma com.adobe.idp.Document para o serviço de saída ao criar um documento PDF, use o generatePDFOutput2 método .
Ao enviar um fluxo de saída para uma impressora de rede, você também pode usar qualquer técnica. Para enviar um fluxo de saída para uma impressora passando uma com.adobe.idp.Document instância que contém um design de formulário, use a sendToPrinter2método . Para enviar um fluxo de saída para uma impressora transmitindo um valor de URI, use o sendToPrintermétodo . O Enviando fluxos de impressão para impressoras A seção usa a variável sendToPrinter método .
Você pode realizar essas tarefas usando o Serviço de saída:
- Criação de documentos do PDF
- Criação de documentos do PDF/A
- Passar documentos localizados em Serviços de conteúdo (obsoleto) para o Serviço de saída
- Criação de documentos do PDF usando fragmentos
- Imprimindo em Arquivos
- Enviando fluxos de impressão para impressoras
- Criação de vários arquivos de saída
- Criando regras de pesquisa
- Nivelar documentos do PDF
Criação de documentos do PDF creating-pdf-documents
Você pode usar o Serviço de saída para criar um documento PDF baseado em um design de formulário e dados de formulário XML fornecidos. O documento PDF criado pelo serviço de saída não é um documento PDF interativo; um usuário não pode inserir ou modificar dados de formulário.
Se quiser criar um documento PDF para armazenamento de longo prazo, é recomendável criar um documento PDF/A. (Consulte Criação de documentos do PDF/A.)
Para criar um formulário PDF interativo que permita ao usuário inserir dados, use o serviço Forms. (Consulte Renderização de PDF forms interativos.)
Resumo das etapas summary-of-steps
Para criar um documento PDF, execute as seguintes etapas:
- Inclua arquivos de projeto.
- Crie um objeto de Cliente de saída.
- Faça referência a uma fonte de dados XML.
- Defina as opções de tempo de execução do PDF.
- Defina as opções de tempo de execução da renderização.
- Gere um documento PDF.
- Recupere os resultados da operação.
Incluir arquivos de projeto
Inclua os arquivos necessários no seu projeto de desenvolvimento. Se você estiver criando um aplicativo cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, certifique-se de incluir os arquivos proxy.
Os seguintes arquivos JAR devem ser adicionados ao classpath do seu projeto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-output-client.jar
- adobe-utilities.jar (obrigatório se o AEM Forms estiver implantado no JBoss)
- jbossall-client.jar (obrigatório se o AEM Forms for implantado no JBoss)
se o AEM Forms for implantado em um servidor de aplicativos J2EE compatível que não seja JBoss, será necessário substituir os arquivos adobe-utilities.jar e jbossall-client.jar por arquivos JAR específicos do servidor de aplicativos J2EE no qual o AEM Forms é implantado.
Criar um objeto de cliente de saída
Antes de poder executar programaticamente uma operação do Serviço de saída, é necessário criar um objeto cliente do Serviço de saída. Se estiver usando a API do Java, crie um OutputClient objeto. Se estiver usando a API de serviço da Web de saída, crie um OutputServiceService objeto.
Referência a uma fonte de dados XML
Para unir dados ao design de formulário, é necessário referenciar uma fonte de dados XML que contenha dados. Um elemento XML deve existir para cada campo de formulário que você planeja preencher com dados. O nome do elemento XML deve corresponder ao nome do campo. Um elemento XML é ignorado se não corresponder a um campo de formulário ou se o nome do elemento XML não corresponder ao nome do campo. Não é necessário corresponder à ordem em que os elementos XML são exibidos se todos os elementos XML forem especificados.
Considere o seguinte exemplo de formulário de pedido de empréstimo.
Para unir dados nesse design de formulário, é necessário criar uma fonte de dados XML que corresponda ao formulário. O XML a seguir representa uma fonte de dados XML XDP que corresponde ao formulário de aplicativo de hipoteca de exemplo.
<?xml version="1.0" encoding="UTF-8" ?>
- <xfa:datasets xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
- <xfa:data>
- <data>
- <Layer>
<closeDate>1/26/2007</closeDate>
<lastName>Johnson</lastName>
<firstName>Jerry</firstName>
<mailingAddress>JJohnson@NoMailServer.com</mailingAddress>
<city>New York</city>
<zipCode>00501</zipCode>
<state>NY</state>
<dateBirth>26/08/1973</dateBirth>
<middleInitials>D</middleInitials>
<socialSecurityNumber>(555) 555-5555</socialSecurityNumber>
<phoneNumber>5555550000</phoneNumber>
</Layer>
- <Mortgage>
<mortgageAmount>295000.00</mortgageAmount>
<monthlyMortgagePayment>1724.54</monthlyMortgagePayment>
<purchasePrice>300000</purchasePrice>
<downPayment>5000</downPayment>
<term>25</term>
<interestRate>5.00</interestRate>
</Mortgage>
</data>
</xfa:data>
</xfa:datasets>
Definir opções de tempo de execução PDF
Defina a opção URI do arquivo ao criar um documento PDF. Essa opção especifica o nome e o local do arquivo PDF gerado pelo serviço de saída.
Definir opções de tempo de execução de renderização
Você pode definir opções de tempo de execução de renderização ao criar um documento PDF. Embora essas opções não sejam necessárias (ao contrário das opções de tempo de execução de PDF necessárias), é possível executar tarefas como melhorar o desempenho do serviço de Saída. Por exemplo, é possível armazenar em cache o design de formulário que o serviço de saída usa para melhorar seu desempenho.
Se você usar um formulário Acrobat marcado como entrada, não poderá usar o Java do serviço de saída ou a API do serviço da Web para desativar a configuração marcada. Se você tentar definir programaticamente essa opção como false, o documento PDF de resultado ainda será marcado.
RenderOptionsSpec referência de classe. (Consulte Referência da API do AEM Forms).Gerar um documento PDF
Depois de fazer referência a uma fonte de dados XML válida que contém dados de formulário e definir opções de tempo de execução, você pode chamar o serviço Saída, o que resulta na geração de um documento PDF.
Ao gerar um documento PDF, você especifica os valores de URI que são exigidos pelo serviço de saída para criar um documento PDF. Um design de formulário pode ser armazenado em locais como o sistema de arquivos do servidor ou como parte de um aplicativo AEM Forms. Um design de formulário (ou outros recursos, como um arquivo de imagem) que existe como parte de um aplicativo Forms pode ser referenciado usando o valor de URI raiz de conteúdo repository:///. Por exemplo, considere o seguinte design de formulário chamado Loan.xdp localizado em um aplicativo Forms chamado Aplicativos/FormsApplication:
Para acessar o arquivo Loan.xdp mostrado na ilustração anterior, especifique repository:///Applications/FormsApplication/1.0/FormsFolder/ como o terceiro parâmetro passado para o OutputClient do objeto generatePDFOutput método . Especifique o nome do formulário (Loan.xdp) como o segundo parâmetro passado para o OutputClient do objeto generatePDFOutput método .
Se o arquivo XDP contiver imagens (ou outros recursos, como fragmentos), coloque os recursos na mesma pasta de aplicativo que o arquivo XDP. O AEM Forms usa o URI raiz de conteúdo como o caminho base para resolver referências a imagens. Por exemplo, se o arquivo Loan.xdp contiver uma imagem, certifique-se de colocar a imagem em Applications/FormsApplication/1.0/FormsFolder/.
OutputClient do objeto generatePDFOutput ou generatePrintedOutput métodos.Recuperar os resultados da operação
Depois que o serviço de saída executa uma operação, ele retorna vários itens de dados, como dados de status XML, que especifica se a operação foi bem-sucedida.
Consulte também
Criar um documento do PDF usando a API do Java
Criar um documento do PDF usando a API do serviço da Web
Inclusão de arquivos da biblioteca Java do AEM Forms
Criar um documento do PDF usando a API do Java create-a-pdf-document-using-the-java-api
Crie um documento do PDF usando a API de saída (Java):
-
Inclua arquivos de projeto.
Inclua arquivos JAR do cliente, como adobe-output-client.jar, no caminho de classe do seu projeto Java.
-
Crie um objeto de Cliente de saída.
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Faça referência a uma fonte de dados XML.
- Crie um
java.io.FileInputStreamobjeto que representa a fonte de dados XML usada para preencher o documento PDF usando seu construtor e transmitindo um valor de string que especifica o local do arquivo XML. - Crie um
com.adobe.idp.Documentusando seu construtor. Passe ojava.io.FileInputStreamobjeto.
- Crie um
-
Defina as opções de tempo de execução do PDF.
- Crie um
PDFOutputOptionsSpecusando seu construtor. - Defina a opção Arquivo URI chamando o
PDFOutputOptionsSpecdo objetosetFileURImétodo . Passe um valor de string que especifica o local do arquivo PDF gerado pelo serviço de saída. A opção File URI é relativa ao servidor de aplicativos J2EE que hospeda o AEM Forms, não ao computador cliente.
- Crie um
-
Defina as opções de tempo de execução da renderização.
- Crie um
RenderOptionsSpecusando seu construtor. - Armazene em cache o design de formulário para melhorar o desempenho do serviço de saída, chamando a função
RenderOptionsSpecdo objetosetCacheEnablede a passagemtrue.
note note NOTE Não é possível definir a versão do documento do PDF usando o RenderOptionsSpecdo objetosetPdfVersionmétodo se o documento de entrada for um formulário Acrobat (um formulário criado no Acrobat) ou um documento XFA assinado ou certificado. O documento PDF de saída retém a versão PDF original. Da mesma forma, não é possível definir a opção Adobe PDF com tags chamando oRenderOptionsSpecdo objetosetTaggedPDF* método se o documento de entrada for um formulário Acrobat ou um documento XFA assinado ou certificado. *note note NOTE Não é possível definir a opção PDF linearizado usando o RenderOptionsSpecdo objetosetLinearizedPDFmétodo se o documento PDF de entrada for certificado ou assinado digitalmente. (Consulte Assinar documentos do PDF digitalmente.) - Crie um
-
Gere um documento PDF.
Crie um documento do PDF chamando o
OutputClientdo objetogeneratePDFOutpute transmitindo os seguintes valores:- A
TransformationFormatvalor de enumeração. Para gerar um documento PDF, especifiqueTransformationFormat.PDF. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica a raiz de conteúdo na qual o design de formulário está localizado.
- A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
com.adobe.idp.Documentobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário.
O
generatePDFOutputretorna um métodoOutputResultque contém os resultados da operação.note note NOTE Ao gerar um documento PDF chamando o generatePDFOutputesteja ciente de que não é possível mesclar dados com um formulário PDF XFA assinado ou certificado. (Consulte Assinar e certificar documentos digitalmente.)note note NOTE O OutputResultdo objetogetRecordLevelMetaDataListretornos de métodonull.note note NOTE Você também pode criar um documento do PDF chamando o OutputClientdo objetogeneratePDFOutput2método . (Consulte Passar documentos localizados em Serviços de conteúdo (obsoleto) para o Serviço de saída.) - A
-
Recupere os resultados da operação.
- Recuperar uma
com.adobe.idp.Documentobjeto que representa o status dogeneratePDFOutputchamando aOutputResultdo objetogetStatusDocmétodo . Este método retorna dados XML de status que especificam se a operação foi bem-sucedida. - Crie um
java.io.Fileque contém os resultados da operação. Certifique-se de que a extensão do nome de arquivo seja .xml. - Chame o
com.adobe.idp.Documentdo objetocopyToFilepara copiar o conteúdo dacom.adobe.idp.Documentpara o arquivo (certifique-se de usar a variávelcom.adobe.idp.Documentobjeto retornado pelogetStatusDocmétodo ).
Embora o serviço de Saída grave o documento PDF no local especificado pelo argumento passado para a variável
PDFOutputOptionsSpecdo objetosetFileURI, você pode recuperar programaticamente o documento PDF/A chamando oOutputResultdo objetogetGeneratedDocmétodo . - Recuperar uma
Consulte também
Início rápido (modo EJB): Criação de um documento do PDF usando a API do Java
Início rápido (modo SOAP): Criação de um documento do PDF usando a API do Java
Criar um documento do PDF usando a API do serviço da Web create-a-pdf-document-using-the-web-service-api
Crie um documento do PDF usando a API de saída (serviço da Web):
-
Inclua arquivos de projeto.
Crie um projeto Microsoft .NET que use MTOM. Certifique-se de usar a seguinte definição de WSDL:
http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.note note NOTE Substituir localhost* com o endereço IP do servidor que hospeda a AEM Forms. * -
Crie um objeto de Cliente de saída.
-
Crie um
OutputServiceClientusando seu construtor padrão. -
Crie um
OutputServiceClient.Endpoint.Addressusando oSystem.ServiceModel.EndpointAddressconstrutor. Passe um valor de string que especifica o WSDL para o serviço do AEM Forms (por exemplo,http://localhost:8080/soap/services/OutputService?blob=mtom.) Não é necessário usar a variávellc_versionatributo. Esse atributo é usado ao criar uma referência de serviço. No entanto, especifique?blob=mtompara usar MTOM. -
Crie um
System.ServiceModel.BasicHttpBindingobtendo o valor da variávelOutputServiceClient.Endpoint.Bindingcampo. Converta o valor de retorno paraBasicHttpBinding. -
Defina as
System.ServiceModel.BasicHttpBindingdo objetoMessageEncodingcampo paraWSMessageEncoding.Mtom. Esse valor garante que o MTOM seja usado. -
Ative a autenticação HTTP básica executando as seguintes tarefas:
- Atribuir o nome de usuário dos formulários AEM ao campo
OutputServiceClient.ClientCredentials.UserName.UserName. - Atribua o valor correspondente da senha ao campo
OutputServiceClient.ClientCredentials.UserName.Password. - Atribuir o valor constante
HttpClientCredentialType.Basicao campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Atribuir o valor constante
BasicHttpSecurityMode.TransportCredentialOnlyao campoBasicHttpBindingSecurity.Security.Mode.
- Atribuir o nome de usuário dos formulários AEM ao campo
-
-
Faça referência a uma fonte de dados XML.
- Crie um
BLOBusando seu construtor. OBLOBé usado para armazenar dados XML que serão unidos ao documento PDF. - Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que representa o local do arquivo XML que contém os dados do formulário. - Crie uma matriz de bytes que armazene o conteúdo da variável
System.IO.FileStreamobjeto. Você pode determinar o tamanho da matriz de bytes obtendo a variávelSystem.IO.FileStreamdo objetoLengthpropriedade. - Preencha a matriz de bytes com dados de fluxo chamando a variável
System.IO.FileStreamdo objetoReade transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo a ser lido. - Preencha o
BLOBao atribuir seuMTOMcom o conteúdo da matriz de bytes.
- Crie um
-
Definir opções de tempo de execução PDF
- Crie um
PDFOutputOptionsSpecusando seu construtor. - Defina a opção File URI atribuindo um valor de string que especifica o local do arquivo de PDF que o serviço de saída gera para a variável
PDFOutputOptionsSpecdo objetofileURImembro de dados. A opção File URI é relativa ao servidor de aplicativos J2EE que hospeda o AEM Forms, não ao computador cliente.
- Crie um
-
Defina as opções de tempo de execução da renderização.
- Crie um
RenderOptionsSpecusando seu construtor. - Armazene em cache o design de formulário para melhorar o desempenho do serviço de Saída atribuindo o valor
trueparaRenderOptionsSpecdo objetocacheEnabledmembro de dados.
note note NOTE Não é possível definir a versão do documento do PDF usando o RenderOptionsSpecdo objetosetPdfVersionmétodo se o documento de entrada for um formulário Acrobat (um formulário criado no Acrobat) ou um documento XFA assinado ou certificado. O documento PDF de saída retém a versão PDF original. Da mesma forma, não é possível definir a opção Adobe PDF com tags chamando oRenderOptionsSpecdo objetosetTaggedPDF* método se o documento de entrada for um formulário Acrobat ou um documento XFA assinado ou certificado.*note note NOTE Não é possível definir a opção PDF linearizado usando o RenderOptionsSpecdo objetolinearizedPDFmembro se o documento PDF de entrada for certificado ou assinado digitalmente. (Consulte Assinar documentos do PDF digitalmente.) - Crie um
-
Gere um documento PDF.
Crie um documento do PDF chamando o
OutputServiceServicedo objetogeneratePDFOutpute transmitindo os seguintes valores:- A
TransformationFormatvalor de enumeração. Para gerar um documento PDF, especifiqueTransformationFormat.PDF. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica a raiz de conteúdo na qual o design de formulário está localizado.
- A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
BLOBobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário. - A
BLOBque é preenchido pela variávelgeneratePDFOutputmétodo . OgeneratePDFOutputO método preenche este objeto com metadados gerados que descrevem o documento. (Esse valor de parâmetro é necessário somente para a invocação do serviço da Web). - A
BLOBque é preenchido pela variávelgeneratePDFOutputmétodo . OgeneratePDFOutputO método preenche esse objeto com dados de resultado. (Esse valor de parâmetro é necessário somente para a invocação do serviço da Web). - Um
OutputResultque contém os resultados da operação. (Esse valor de parâmetro é necessário somente para a invocação do serviço da Web).
note note NOTE Ao gerar um documento PDF chamando o generatePDFOutputesteja ciente de que não é possível mesclar dados com um formulário PDF XFA assinado ou certificado. (Consulte Assinar e certificar documentos digitalmente.)note note NOTE Você também pode criar um documento do PDF chamando o OutputClientdo objetogeneratePDFOutput2método . (Consulte Passar documentos localizados em Serviços de conteúdo (obsoleto) para o Serviço de saída.) - A
-
Recupere os resultados da operação.
- Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que representa um local de arquivo XML que contém dados de resultado. Certifique-se de que a extensão do nome de arquivo seja .xml. - Crie uma matriz de bytes que armazene o conteúdo de dados do
BLOBobjeto que foi preenchido com dados de resultado pela variávelOutputServiceServicedo objetogeneratePDFOutputmétodo (o oitavo parâmetro). Preencha a matriz de bytes obtendo o valor da variávelBLOBdo objetoMTOMfield. - Crie um
System.IO.BinaryWriterchamando seu construtor e passando oSystem.IO.FileStreamobjeto. - Escreva o conteúdo da matriz de bytes no arquivo XML chamando o
System.IO.BinaryWriterdo objetoWritee transmitindo a matriz de bytes.
Consulte também:
- Crie um
Chamar o AEM Forms usando MTOM
Chamar o AEM Forms usando SwaRef
OutputServiceService do objeto generateOutput está obsoleto.Criação de documentos do PDF/A creating-pdf-a-documents
Você pode usar o Serviço de saída para criar um documento PDF/A. Como o PDF/A é um formato de arquivo para a preservação de longo prazo do conteúdo do documento, todas as fontes são incorporadas e o arquivo é descompactado. Como resultado, um documento PDF/A geralmente é maior do que um documento PDF padrão. Além disso, um documento PDF/A não contém conteúdo de áudio e vídeo. Assim como outras tarefas do Serviço de saída, você fornece um design de formulário e dados para mesclar com um design de formulário para criar um documento PDF/A.
A especificação PDF/A-1 consiste em dois níveis de conformidade, a saber, a e b. A grande diferença entre os dois é em relação ao suporte à estrutura lógica (acessibilidade), que não é necessário para o nível de conformidade b. Independentemente do nível de conformidade, PDF/A-1 determina que todas as fontes são incorporadas no documento PDF/A gerado.
Embora o PDF/A seja o padrão para arquivamento de documentos de PDF, não é obrigatório que o PDF/A seja usado para arquivamento se um documento PDF padrão atender às necessidades da sua empresa. O objetivo do padrão PDF/A é estabelecer um arquivo PDF que possa ser armazenado por um longo período, bem como atender aos requisitos de preservação de documentos. Por exemplo, um URL não pode ser incorporado em um PDF/A porque, com o tempo, o URL pode se tornar inválido.
Sua organização deve avaliar suas próprias necessidades, o tempo que você pretende manter o documento, as considerações de tamanho de arquivo e determinar sua própria estratégia de arquivamento. Você pode determinar programaticamente se um documento PDF é compatível com PDF/A usando o serviço DocConverter. (Consulte Determinar de forma programática a conformidade do PDF/A.)
Um documento PDF/A deve usar a fonte especificada no design de formulário e as fontes não podem ser substituídas. Como resultado, se uma fonte localizada em um documento PDF não estiver disponível no sistema operacional do host (SO), ocorrerá uma exceção.
Quando um documento PDF/A é aberto no Acrobat, uma mensagem é exibida confirmando que o documento é um documento PDF/A, como mostrado na ilustração a seguir.
Resumo das etapas summary_of_steps-1
Para criar um documento PDF/A, execute as seguintes etapas:
- Inclua arquivos de projeto.
- Crie um objeto de Cliente de saída.
- Faça referência a uma fonte de dados XML.
- Defina as opções de PDF/A de tempo de execução.
- Defina as opções de tempo de execução da renderização.
- Gere um documento PDF/A.
- Recupere os resultados da operação.
Incluir arquivos de projeto
Inclua os arquivos necessários no seu projeto de desenvolvimento. Se você estiver criando um aplicativo personalizado usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, certifique-se de incluir os arquivos proxy.
Os seguintes arquivos JAR devem ser adicionados ao caminho de classe do seu projeto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-output-client.jar
- adobe-utilities.jar (obrigatório se o AEM Forms estiver implantado no JBoss)
- jbossall-client.jar (obrigatório se o AEM Forms for implantado no JBoss)
se o AEM Forms for implantado em um servidor de aplicativos J2EE compatível que não seja JBoss, será necessário substituir os arquivos adobe-utilities.jar e jbossall-client.jar por arquivos JAR específicos do servidor de aplicativos J2EE no qual o AEM Forms é implantado.
Criar um objeto de cliente de saída
Antes de poder executar programaticamente uma operação do Serviço de saída, é necessário criar um objeto cliente do Serviço de saída. Se estiver usando a API do Java, crie um OutputClient objeto. Se estiver usando a API de serviço da Web de saída, crie um OutputServiceService objeto.
Referência a uma fonte de dados XML
Para unir dados ao design de formulário, é necessário referenciar uma fonte de dados XML que contenha dados. Um elemento XML deve existir para cada campo de formulário que você deseja preencher com dados. O nome do elemento XML deve corresponder ao nome do campo. Um elemento XML é ignorado se não corresponder a um campo de formulário ou se o nome do elemento XML não corresponder ao nome do campo. Não é necessário corresponder à ordem em que os elementos XML são exibidos se todos os elementos XML forem especificados.
Definir opções de tempo de execução PDF/A
É possível definir a opção File URI ao criar um documento PDF/A. O URI é relativo ao servidor de aplicativos J2EE que hospeda o AEM Forms. Ou seja, se você definir C:\Adobe, o arquivo será gravado na pasta no servidor, não no computador cliente. O URI especifica o nome e o local do arquivo PDF/A gerado pelo serviço de saída.
Definir opções de tempo de execução de renderização
Você pode definir opções de tempo de execução de renderização ao criar documentos PDF/A. Duas opções relacionadas a PDF/A que você pode definir são as PDFAConformance e PDFARevisionNumber valores. O PDFAConformance valor refere-se à forma como um documento PDF adere a requisitos que especificam como os documentos eletrônicos de longo prazo são preservados. Valores válidos para esta opção são A e B. Para obter informações sobre a conformidade de nível a e b, consulte a especificação ISO PDF/A-1 que é intitulada ISO 19005-1 Gerenciamento de documentos.
O PDFARevisionNumber valor refere-se ao número de revisão de um documento PDF/A. Para obter informações sobre o número de revisão de um documento PDF/A, consulte a especificação ISO PDF/A-1 intitulada ISO 19005-1 Gerenciamento de documentos.
false ao criar um documento PDF/A 1A. PDF/A 1A sempre será um documento de PDF marcado. Além disso, não é possível definir a opção Adobe PDF com tags como true ao criar um documento PDF/A 1B. PDF/A 1B sempre será um documento PDF não marcado.Gerar um documento PDF/A
Depois de fazer referência a uma fonte de dados XML válida que contém dados de formulário e definir opções de tempo de execução, você pode chamar o serviço Saída, fazendo com que ele gere um documento PDF/A.
Recuperar os resultados da operação
Depois que o serviço de saída executa uma operação, ele retorna vários itens de dados, como dados XML, que especifica se a operação foi bem-sucedida.
Consulte também
Criar um documento do PDF/A usando a API do Java
Criar um documento PDF/A usando a API do serviço da Web
Inclusão de arquivos da biblioteca Java do AEM Forms
Criar um documento do PDF/A usando a API do Java create-a-pdf-a-document-using-the-java-api
Crie um documento PDF/A usando a API de saída (Java):
-
Inclua arquivos de projeto.
Inclua arquivos JAR do cliente, como adobe-output-client.jar, no caminho de classe do seu projeto Java.
-
Crie um objeto de Cliente de saída.
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Faça referência a uma fonte de dados XML.
- Crie um
java.io.FileInputStreamobjeto que representa a fonte de dados XML usada para preencher o documento PDF/A usando seu construtor e transmitindo um valor de string que especifica o local do arquivo XML. - Crie um
com.adobe.idp.Documentusando seu construtor e passando ojava.io.FileInputStreamobjeto.
- Crie um
-
Defina as opções de PDF/A de tempo de execução.
- Crie um
PDFOutputOptionsSpecusando seu construtor. - Defina a opção Arquivo URI chamando o
PDFOutputOptionsSpecdo objetosetFileURImétodo . Passe um valor de string que especifica o local do arquivo PDF gerado pelo serviço de saída. A opção File URI é relativa ao servidor de aplicativos J2EE que hospeda o AEM Forms, não ao computador cliente.
- Crie um
-
Defina as opções de tempo de execução da renderização.
- Crie um
RenderOptionsSpecusando seu construtor. - Defina as
PDFAConformancechamando oRenderOptionsSpecdo objetosetPDFAConformancee a transmissão de umPDFAConformancevalor enum que especifica o nível de conformidade. Por exemplo, para especificar o nível de conformidade A, passePDFAConformance.A. - Defina as
PDFARevisionNumberchamando oRenderOptionsSpecdo objetosetPDFARevisionNumbermétodo e aprovaçãoPDFARevisionNumber.Revision_1.
note note NOTE A versão PDF de um documento PDF/A é 1.4, independentemente do valor especificado para a variável RenderOptionsSpecdo objetosetPdfVersionmétodo . - Crie um
-
Gere um documento PDF/A.
Crie um documento PDF/A chamando o
OutputClientdo objetogeneratePDFOutpute transmitindo os seguintes valores:- A
TransformationFormatvalor de enumeração. Para gerar um documento PDF/A, especifiqueTransformationFormat.PDFA. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica a raiz de conteúdo na qual o design de formulário está localizado.
- A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
com.adobe.idp.Documentobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário.
O
generatePDFOutputretorna um métodoOutputResultque contém os resultados da operação.note note NOTE O OutputResultdo objetogetRecordLevelMetaDataListretornos de métodonull*. *note note NOTE Você também pode criar um documento PDF /A chamando o OutputClientdo objetogeneratePDFOutputmétodo 2. (Consulte Passar documentos localizados em Serviços de conteúdo (obsoleto) para o Serviço de saída.) - A
-
Recupere os resultados da operação.
- Crie um
com.adobe.idp.Documentobjeto que representa o status dogeneratePDFOutputchamando o métodoOutputResultdo objetogetStatusDocmétodo . - Crie um
java.io.Fileque conterá os resultados da operação. Certifique-se de que a extensão do nome de arquivo seja .xml. - Chame o
com.adobe.idp.Documentdo objetocopyToFilepara copiar o conteúdo dacom.adobe.idp.Documentpara o arquivo (certifique-se de usar a variávelcom.adobe.idp.Documentobjeto retornado pelogetStatusDocmétodo ).
note note NOTE Embora o serviço de Saída grave o documento PDF/A no local especificado pelo argumento passado para a variável PDFOutputOptionsSpecdo objetosetFileURI, você pode recuperar programaticamente o documento PDF/A chamando oOutputResultdo objetogetGeneratedDoc* método.* - Crie um
Consulte também
Início rápido (modo SOAP): Criação de um documento do PDF/A usando a API do Java
Criar um documento PDF/A usando a API do serviço da Web create-a-pdf-a-document-using-the-web-service-api
Crie um documento PDF/A usando a API de saída (serviço da Web):
-
Inclua arquivos de projeto.
Crie um projeto Microsoft .NET que use MTOM. Certifique-se de usar a seguinte definição de WSDL:
http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.note note NOTE Substituir localhost* com o endereço IP do servidor que hospeda a AEM Forms. * -
Crie um objeto de Cliente de saída.
-
Crie um
OutputServiceClientusando seu construtor padrão. -
Crie um
OutputServiceClient.Endpoint.Addressusando oSystem.ServiceModel.EndpointAddressconstrutor. Passe um valor de string que especifica o WSDL para o serviço do AEM Forms (por exemplo,http://localhost:8080/soap/services/OutputService?blob=mtom.) Não é necessário usar a variávellc_versionatributo. Esse atributo é usado ao criar uma referência de serviço. No entanto, especifique?blob=mtompara usar MTOM. -
Crie um
System.ServiceModel.BasicHttpBindingobtendo o valor da variávelOutputServiceClient.Endpoint.Bindingcampo. Converta o valor de retorno paraBasicHttpBinding. -
Defina as
System.ServiceModel.BasicHttpBindingdo objetoMessageEncodingcampo paraWSMessageEncoding.Mtom. Esse valor garante que o MTOM seja usado. -
Ative a autenticação HTTP básica executando as seguintes tarefas:
- Atribuir o nome de usuário dos formulários AEM ao campo
OutputServiceClient.ClientCredentials.UserName.UserName. - Atribua o valor correspondente da senha ao campo
OutputServiceClient.ClientCredentials.UserName.Password. - Atribuir o valor constante
HttpClientCredentialType.Basicao campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Atribuir o valor constante
BasicHttpSecurityMode.TransportCredentialOnlyao campoBasicHttpBindingSecurity.Security.Mode.
- Atribuir o nome de usuário dos formulários AEM ao campo
-
-
Faça referência a uma fonte de dados XML.
- Crie um
BLOBusando seu construtor. OBLOBé usado para armazenar dados que serão unidos ao documento PDF/A. - Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que representa o local do arquivo do documento do PDF a ser criptografado e o modo no qual abrir o arquivo. - Crie uma matriz de bytes que armazene o conteúdo da variável
System.IO.FileStreamobjeto. Você pode determinar o tamanho da matriz de bytes obtendo a variávelSystem.IO.FileStreamdo objetoLengthpropriedade. - Preencha a matriz de bytes com dados de fluxo chamando a variável
System.IO.FileStreamdo objetoReade transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo a ser lido. - Preencha o
BLOBao atribuir seuMTOMcom o conteúdo da matriz de bytes.
- Crie um
-
Defina as opções de PDF/A de tempo de execução.
- Crie um
PDFOutputOptionsSpecusando seu construtor. - Defina a opção File URI atribuindo um valor de string que especifica o local do arquivo de PDF que o serviço de saída gera para a variável
PDFOutputOptionsSpecdo objetofileURImembro de dados. A opção File URI é relativa ao servidor de aplicativos J2EE que hospeda o AEM Forms, não ao computador cliente
- Crie um
-
Defina as opções de tempo de execução da renderização.
- Crie um
RenderOptionsSpecusando seu construtor. - Defina as
PDFAConformanceatribuindo um valor dePDFAConformancevalor enum para a variávelRenderOptionsSpecdo objetoPDFAConformancemembro de dados. Por exemplo, para especificar o nível de conformidade A, atribuaPDFAConformance.Apara esse membro de dados. - Defina as
PDFARevisionNumberatribuindo um valor dePDFARevisionNumbervalor enum para a variávelRenderOptionsSpecdo objetoPDFARevisionNumbermembro de dados. AtribuirPDFARevisionNumber.Revision_1para esse membro de dados.
note note NOTE A versão PDF de um documento PDF/A é 1.4, independentemente do valor especificado. - Crie um
-
Gere um documento PDF/A.
Crie um documento do PDF chamando o
OutputServiceServicedo objetogeneratePDFOutpute transmitindo os seguintes valores:- Um valor de enumeração TransformationFormat. Para gerar um documento PDF, especifique
TransformationFormat.PDFA. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica a raiz de conteúdo na qual o design de formulário está localizado.
- A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
BLOBobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário. - A
BLOBque é preenchido pela variávelgeneratePDFOutputmétodo . OgeneratePDFOutputO método preenche este objeto com metadados gerados que descrevem o documento. (Esse valor de parâmetro é necessário somente para invocação do serviço da Web.) - A
BLOBque é preenchido pela variávelgeneratePDFOutputmétodo . OgeneratePDFOutputO método preenche esse objeto com dados de resultado. (Esse valor de parâmetro é necessário somente para invocação do serviço da Web.) - Um
OutputResultque contém os resultados da operação. (Esse valor de parâmetro é necessário somente para invocação do serviço da Web.)
note note NOTE Você também pode criar um documento PDF /A chamando o OutputClientdo objetogeneratePDFOutputmétodo 2. (Consulte Passar documentos localizados em Serviços de conteúdo (obsoleto) para o Serviço de saída.) - Um valor de enumeração TransformationFormat. Para gerar um documento PDF, especifique
-
Recupere os resultados da operação.
- Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que representa um local de arquivo XML que contém dados de resultado. Certifique-se de que a extensão do nome de arquivo seja .xml. - Crie uma matriz de bytes que armazene o conteúdo de dados do
BLOBobjeto que foi preenchido com dados de resultado pela variávelOutputServiceServicedo objetogeneratePDFOutputmétodo (o oitavo parâmetro). Preencha a matriz de bytes obtendo o valor da variávelBLOBdo objetoMTOMcampo. - Crie um
System.IO.BinaryWriterchamando seu construtor e passando oSystem.IO.FileStreamobjeto. - Escreva o conteúdo da matriz de bytes no arquivo XML chamando o
System.IO.BinaryWriterdo objetoWritee transmitindo a matriz de bytes.
- Crie um
Consulte também
Passar documentos localizados em Serviços de conteúdo (obsoleto) para o Serviço de saída passing-documents-located-in-content-services-deprecated-to-the-output-service
O serviço de saída renderiza um formulário PDF não interativo baseado em um design de formulário que normalmente é salvo como um arquivo XDP e criado no Designer. Você pode passar uma com.adobe.idp.Document objeto que contém o design de formulário para o serviço Saída. O serviço Output renderiza o design de formulário localizado na variável com.adobe.idp.Document objeto.
Uma vantagem de passar uma com.adobe.idp.Document O objeto para o serviço de saída é que outras operações do serviço AEM Forms retornam um com.adobe.idp.Document instância. Ou seja, você pode obter um com.adobe.idp.Document de outra operação de serviço e renderizá-la. Por exemplo, suponha que um arquivo XDP seja armazenado em um nó Content Services (obsoleto) chamado /Company Home/Form Designs, conforme mostrado na ilustração a seguir.
Você pode recuperar programaticamente o Loan.xdp dos Serviços de conteúdo (obsoleto) e passar o arquivo XDP para o serviço de saída em um com.adobe.idp.Document objeto.
Resumo das etapas summary_of_steps-2
Para passar um documento obtido dos Serviços de conteúdo (obsoleto) para o Serviço de saída, execute as seguintes tarefas:
- Inclua arquivos de projeto.
- Crie um objeto Output e uma API do cliente de gerenciamento de documentos.
- Recupere o design de formulário do Content Services (obsoleto).
- Renderize o formulário PDF não interativo.
- Execute uma ação com o fluxo de dados.
Incluir arquivos de projeto
Inclua os arquivos necessários no seu projeto de desenvolvimento. Se você estiver criando um aplicativo cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, inclua os arquivos proxy.
Criar uma saída e um objeto de API do cliente de gerenciamento de documentos
Antes de executar programaticamente uma operação de API do serviço de saída, crie um objeto de API do cliente de saída. Além disso, como esse workflow recupera um arquivo XDP do Content Services (obsoleto), crie um objeto de API do Document Management.
Recuperar o design do formulário do Content Services (obsoleto)
Recupere o arquivo XDP do Content Services (obsoleto) usando a API do serviço da Web ou do Java. O arquivo XDP é retornado em um com.adobe.idp.Document instância (ou uma BLOB (se você estiver usando serviços da Web). Você pode passar o com.adobe.idp.Document para o serviço de saída.
Renderizar o formulário PDF não interativo
Para renderizar um formulário não interativo, passe o com.adobe.idp.Document instância que foi retornada do Content Services (obsoleto) para o serviço de saída.
generatePDFOutput2e g eneratePrintedOutput2aceite um com.adobe.idp.Document objeto que contém um design de formulário. Também é possível enviar uma com.adobe.idp.Documentque contém o design de formulário para o serviço de saída ao enviar um fluxo de impressão para uma impressora de rede.Executar uma ação com o fluxo de dados do formulário
É possível salvar o formulário não interativo como um arquivo PDF. O formulário pode ser exibido no Adobe Reader ou Acrobat.
Consulte também
Passe documentos para o Serviço de saída usando a API Java
Passe documentos para o Serviço de saída usando a API de serviço da Web
Inclusão de arquivos da biblioteca Java do AEM Forms
Configuração das propriedades de conexão
Passe documentos para o Serviço de saída usando a API Java pass-documents-to-the-output-service-using-the-java-api
Passe um documento recuperado dos Serviços de conteúdo (obsoleto) usando o Serviço de saída e a API dos Serviços de conteúdo (obsoleto):
-
Inclua arquivos de projeto.
Inclua arquivos JAR do cliente, como adobe-output-client.jar e adobe-contentservices-client.jar, no caminho de classe do seu projeto Java.
-
Crie um objeto de saída e de API do cliente de gerenciamento de documentos.
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. (Consulte Configuração das propriedades de conexão.) - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto. - Crie um
DocumentManagementServiceClientImplusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Recupere o design de formulário do Content Services (obsoleto).
Chame o
DocumentManagementServiceClientImpldo objetoretrieveContente transmita os seguintes valores:- Um valor de string que especifica o armazenamento onde o conteúdo é adicionado. O armazenamento padrão é
SpacesStore. Esse valor é um parâmetro obrigatório. - Um valor de string que especifica o caminho totalmente qualificado do conteúdo a ser recuperado (por exemplo,
/Company Home/Form Designs/Loan.xdp). Esse valor é um parâmetro obrigatório. - Um valor de string que especifica a versão. Esse valor é um parâmetro opcional e você pode passar uma string vazia. Nessa situação, a versão mais recente é recuperada.
O
retrieveContentmétodo retorna umCRCResultobjeto que contém o arquivo XDP. Recuperar umacom.adobe.idp.Documentchamando aCRCResultdo objetogetDocumentmétodo . - Um valor de string que especifica o armazenamento onde o conteúdo é adicionado. O armazenamento padrão é
-
Renderize o formulário PDF não interativo.
Chame o
OutputClientdo objetogeneratePDFOutput2e transmita os seguintes valores:- A
TransformationFormatvalor de enumeração. Para gerar um documento PDF, especifiqueTransformationFormat.PDF. - Um valor de string que especifica a raiz do conteúdo na qual os recursos adicionais, como imagens, estão localizados.
- A
com.adobe.idp.Documentobjeto que representa o design de formulário (use a instância retornada peloCRCResultdo objetogetDocumentmétodo ). - A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
com.adobe.idp.Documentobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário.
O
generatePDFOutput2retorna um métodoOutputResultque contém os resultados da operação. - A
-
Execute uma ação com o fluxo de dados do formulário.
- Recuperar uma
com.adobe.idp.Documentobjeto que representa o formulário não interativo chamando oOutputResultdo objetogetGeneratedDocmétodo . - Crie um
java.io.Fileque contém os resultados da operação. Certifique-se de que a extensão de nome de arquivo seja .pdf. - Chame o
com.adobe.idp.Documentdo objetocopyToFilepara copiar o conteúdo dacom.adobe.idp.Documentpara o arquivo (certifique-se de usar a variávelcom.adobe.idp.Documentobjeto retornado pelogetGeneratedDocmétodo ).
- Recuperar uma
Consulte também
Início rápido (modo EJB): Passar documentos para o serviço de saída usando a API Java
Início rápido (modo SOAP): Passar documentos para o serviço de saída usando a API Java
Passe documentos para o Serviço de saída usando a API de serviço da Web pass-documents-to-the-output-service-using-the-web-service-api
Passe um documento recuperado dos Serviços de conteúdo (obsoleto) usando o Serviço de saída e a API dos Serviços de conteúdo (obsoleto) (serviço da Web):
-
Inclua arquivos de projeto.
Crie um projeto Microsoft .NET que use MTOM. Como esse aplicativo cliente chama dois serviços AEM Forms, crie duas referências de serviço. Use a seguinte definição WSDL para a referência de serviço associada ao serviço de Saída:
http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.Use a seguinte definição WSDL para a referência de serviço associada ao serviço de Gerenciamento de documentos:
http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1.Porque a variável
BLOBo tipo de dados é comum a ambas as referências de serviço, qualifica totalmente a variávelBLOBtipo de dados ao usá-lo. Na inicialização rápida do serviço da Web correspondente, todas asBLOBas instâncias são totalmente qualificadas.note note NOTE Substituir localhost* com o endereço IP do servidor que hospeda a AEM Forms. * -
Crie um objeto de saída e de API do cliente de gerenciamento de documentos.
-
Crie um
OutputServiceClientusando seu construtor padrão. -
Crie um
OutputServiceClient.Endpoint.Addressusando oSystem.ServiceModel.EndpointAddressconstrutor. Passe um valor de string que especifica o WSDL para o serviço do Forms (por exemplo,http://localhost:8080/soap/services/OutputService?blob=mtom). Não é necessário usar a variávellc_versionatributo. Este atributo é usado ao criar uma referência de serviço.) -
Crie um
System.ServiceModel.BasicHttpBindingobtendo o valor da variávelOutputServiceClient.Endpoint.Bindingcampo. Converta o valor de retorno paraBasicHttpBinding. -
Defina as
System.ServiceModel.BasicHttpBindingdo objetoMessageEncodingcampo paraWSMessageEncoding.Mtom. Esse valor garante que o MTOM seja usado. -
Ative a autenticação HTTP básica executando as seguintes tarefas:
- Atribuir o nome de usuário dos formulários AEM ao campo
OutputServiceClient.ClientCredentials.UserName.UserName. - Atribua o valor correspondente da senha ao campo
OutputServiceClient.ClientCredentials.UserName.Password. - Atribuir o valor constante
HttpClientCredentialType.Basicao campoBasicHttpBindingSecurity.Transport.ClientCredentialType.
- Atribuir o nome de usuário dos formulários AEM ao campo
-
Atribuir o valor constante
BasicHttpSecurityMode.TransportCredentialOnlyao campoBasicHttpBindingSecurity.Security.Mode.
note note NOTE Repita essas etapas para a DocumentManagementServiceClient* cliente de serviço. * -
-
Recupere o design de formulário do Content Services (obsoleto).
Recupere o conteúdo chamando o
DocumentManagementServiceClientdo objetoretrieveContente transmitindo os seguintes valores:- Um valor de string que especifica o armazenamento onde o conteúdo é adicionado. O armazenamento padrão é
SpacesStore. Esse valor é um parâmetro obrigatório. - Um valor de string que especifica o caminho totalmente qualificado do conteúdo a ser recuperado (por exemplo,
/Company Home/Form Designs/Loan.xdp). Esse valor é um parâmetro obrigatório. - Um valor de string que especifica a versão. Esse valor é um parâmetro opcional e você pode passar uma string vazia. Nessa situação, a versão mais recente é recuperada.
- Um parâmetro de saída de string que armazena o valor do link de navegação.
- A
BLOBparâmetro de saída que armazena o conteúdo. Você pode usar esse parâmetro de saída para recuperar o conteúdo. - A
ServiceReference1.MyMapOf_xsd_string_To_xsd_anyTypeparâmetro de saída que armazena atributos de conteúdo. - A
CRCResultparâmetro de saída. Em vez de usar esse objeto, você pode usar a variávelBLOBparâmetro de saída para recuperar o conteúdo.
- Um valor de string que especifica o armazenamento onde o conteúdo é adicionado. O armazenamento padrão é
-
Renderize o formulário PDF não interativo.
Chame o
OutputServiceClientdo objetogeneratePDFOutput2e transmita os seguintes valores:- A
TransformationFormatvalor de enumeração. Para gerar um documento PDF, especifiqueTransformationFormat.PDF. - Um valor de string que especifica a raiz do conteúdo na qual os recursos adicionais, como imagens, estão localizados.
- A
BLOBobjeto que representa o design de formulário (use oBLOBinstância retornada pelo Content Services (obsoleto). - A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
BLOBobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário. - Uma saída
BLOBque é preenchido pela variávelgeneratePDFOutput2método . OgeneratePDFOutput2O método preenche este objeto com metadados gerados que descrevem o documento. (Esse valor de parâmetro é necessário somente para a invocação do serviço da Web). - Uma saída
OutputResultque contém os resultados da operação. (Esse valor de parâmetro é necessário somente para a invocação do serviço da Web).
O
generatePDFOutput2método retorna umBLOBobjeto que contém o formulário PDF não interativo. - A
-
Execute uma ação com o fluxo de dados do formulário.
- Crie um
System.IO.FileStreamchamando seu construtor. Passe um valor de string que representa o local do arquivo do documento interativo do PDF e o modo no qual o arquivo deve ser aberto. - Crie uma matriz de bytes que armazene o conteúdo da variável
BLOBobjeto recuperado dogeneratePDFOutput2método . Preencha a matriz de bytes obtendo o valor da variávelBLOBdo objetoMTOMmembro de dados. - Crie um
System.IO.BinaryWriterchamando seu construtor e passando oSystem.IO.FileStreamobjeto. - Escreva o conteúdo da matriz de bytes em um arquivo PDF chamando o
System.IO.BinaryWriterdo objetoWritee transmitindo a matriz de bytes.
- Crie um
Consulte também
Transmitindo Documentos localizados no Repositório para o Serviço de Saída passing-documents-located-in-the-repository-to-the-output-service
O serviço de saída renderiza um formulário PDF não interativo baseado em um design de formulário que normalmente é salvo como um arquivo XDP e criado no Designer. Você pode passar uma com.adobe.idp.Document objeto que contém o design de formulário para o serviço Saída. O serviço Output renderiza o design de formulário localizado na variável com.adobe.idp.Document objeto.
Uma vantagem de passar uma com.adobe.idp.Document O objeto para o serviço de saída é que outras operações do serviço AEM Forms retornam um com.adobe.idp.Document instância. Ou seja, você pode obter um com.adobe.idp.Document de outra operação de serviço e renderizá-la. Por exemplo, suponha que um arquivo XDP seja armazenado no repositório AEM Forms, conforme mostrado na ilustração a seguir.
O FormsFolder é um local definido pelo usuário no repositório AEM Forms (esse local é um exemplo e não existe por padrão). Neste exemplo, um design de formulário chamado Loan.xdp está localizado nesta pasta. Além do design de formulário, outras garantias de formulário, como imagens, podem ser armazenadas nesse local. O caminho para um recurso localizado no repositório do AEM Forms é:
Applications/Application-name/Application-version/Folder.../Filename
Você pode recuperar programaticamente o Loan.xdp do repositório do AEM Forms e passá-lo para o serviço de saída em um com.adobe.idp.Document objeto.
Você pode criar um PDF com base em um arquivo XDP localizado no repositório usando uma das duas maneiras. Você pode passar o local XDP por referência ou pode recuperar programaticamente o XDP do repositório e passá-lo para o serviço de saída em um arquivo XDP.
Início rápido (modo EJB): Criação de um documento do PDF com base em um arquivo XDP do aplicativo usando a API do Java (mostra como passar o local do arquivo XDP por referência).
Início rápido (modo EJB): Passar um documento localizado no Repositório AEM Forms para o serviço de saída usando a API do Java (mostra como recuperar programaticamente o arquivo XDP do Repositório AEM Forms e passá-lo para o serviço de saída em um com.adobe.idp.Document instância). (Esta seção discute como executar essa tarefa)
Resumo das etapas summary_of_steps-3
Para passar um documento obtido do repositório AEM Forms para o serviço de saída, execute as seguintes tarefas:
- Inclua arquivos de projeto.
- Crie um objeto Output e uma API do cliente de gerenciamento de documentos.
- Recupere o design de formulário do repositório do AEM Forms.
- Renderize o formulário PDF não interativo.
- Execute uma ação com o fluxo de dados.
Incluir arquivos de projeto
Inclua os arquivos necessários no seu projeto de desenvolvimento. Se você estiver criando um aplicativo cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, inclua os arquivos proxy.
Criar uma saída e um objeto de API do cliente de gerenciamento de documentos
Antes de executar programaticamente uma operação de API do serviço de saída, crie um objeto de API do cliente de saída. Além disso, como esse workflow recupera um arquivo XDP do Content Services (obsoleto), crie um objeto de API do Document Management.
Recuperar o design do formulário do Repositório AEM Forms
Recupere o arquivo XDP do Repositório AEM Forms usando a API do Repositório. (Consulte Lendo recursos.)
O arquivo XDP é retornado em um com.adobe.idp.Document instância (ou uma BLOB (se você estiver usando serviços da Web). Você pode passar o com.adobe.idp.Document instância do serviço de saída.
Renderizar o formulário PDF não interativo
Para renderizar um formulário não interativo, passe o com.adobe.idp.Document instância que foi retornada usando a API do Repositório AEM Forms.
generatePDFOutput2e generatePrintedOutput2aceite um com.adobe.idp.Documentobjeto que contém um design de formulário. Também é possível enviar uma com.adobe.idp.Document que contém o design de formulário para o serviço de saída ao enviar um fluxo de impressão para uma impressora de rede.Executar uma ação com o fluxo de dados do formulário
É possível salvar o formulário não interativo como um arquivo PDF. O formulário pode ser exibido no Adobe Reader ou Acrobat.
Consulte também
Passe documentos localizados no Repositório para o Serviço de Saída usando a API Java
Inclusão de arquivos da biblioteca Java do AEM Forms
Configuração das propriedades de conexão
Início rápido da API do Serviço de Saída
ResourceRepositoryClient
Passe documentos localizados no Repositório para o Serviço de Saída usando a API Java pass-documents-located-in-the-repository-to-the-output-service-using-the-java-api
Passe um documento recuperado do Repositório usando o serviço de saída e a API do repositório (Java):
-
Inclua arquivos de projeto.
Inclua arquivos JAR do cliente, como adobe-output-client.jar e adobe-repository-client.jar, no caminho de classe do seu projeto Java.
-
Crie um objeto de saída e de API do cliente de gerenciamento de documentos.
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. (Consulte Configuração das propriedades de conexão.) - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto. - Crie um
DocumentManagementServiceClientImplusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Recupere o design de formulário do AEM Forms Repository.
Chame o
ResourceRepositoryClientdo objetoreadResourceContente transmita um valor de string que especifica o local do URI para o arquivo XDP. Por exemplo,/Applications/FormsApplication/1.0/FormsFolder/Loan.xdp. Esse valor é obrigatório. Esse método retorna umcom.adobe.idp.Documentque representa o arquivo XDP. -
Renderize o formulário PDF não interativo.
Chame o
OutputClientdo objetogeneratePDFOutput2e transmita os seguintes valores:- A
TransformationFormatvalor de enumeração. Para gerar um documento PDF, especifiqueTransformationFormat.PDF. - Um valor de string que especifica a raiz do conteúdo na qual os recursos adicionais, como imagens, estão localizados. Por exemplo,
repository:///Applications/FormsApplication/1.0/FormsFolder/. - A
com.adobe.idp.Documentobjeto que representa o design de formulário (use a instância retornada peloResourceRepositoryClientdo objetoreadResourceContentmétodo ). - A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
com.adobe.idp.Documentobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário.
O
generatePDFOutput2retorna um métodoOutputResultque contém os resultados da operação. - A
-
Execute uma ação com o fluxo de dados do formulário.
- Recuperar uma
com.adobe.idp.Documentobjeto que representa o formulário não interativo chamando oOutputResultdo objetogetGeneratedDocmétodo . - Crie um
java.io.Fileque contém os resultados da operação. Certifique-se de que a extensão de nome de arquivo seja .pdf. - Chame o
com.adobe.idp.Documentdo objetocopyToFilepara copiar o conteúdo dacom.adobe.idp.Documentpara o arquivo (certifique-se de usar a variávelcom.adobe.idp.Documentobjeto retornado pelogetGeneratedDocmétodo ).
- Recuperar uma
Consulte também
Criação de documentos do PDF usando fragmentos creating-pdf-documents-using-fragments
Você pode usar os serviços Saída e Assembler para criar um fluxo de saída, como um documento PDF, que é baseado em fragmentos. O serviço Assembler monta um documento XDP baseado em fragmentos localizados em vários arquivos XDP. O documento XDP montado é transmitido ao serviço de saída, que cria um documento PDF. Embora esse workflow mostre um documento PDF sendo gerado, o serviço de Saída pode gerar outros tipos de saída, como ZPL, para esse workflow. Um documento PDF é usado somente para fins de discussão.
A ilustração a seguir mostra esse workflow.
Antes de ler Criação de documentos do PDF usando fragmentos, é recomendável que você se familiarize com o uso do serviço Assembler para reunir vários documentos XDP. (Consulte Montagem de vários fragmentos XDP.)
Resumo das etapas summary_of_steps-4
Para criar um documento PDF com base em fragmentos, execute as seguintes etapas:
- Inclua arquivos de projeto.
- Crie um objeto Cliente de Saída e Assembler.
- Use o serviço Assembler para gerar o design de formulário.
- Use o Serviço de saída para gerar o documento PDF.
- Salve o documento PDF como um arquivo PDF.
Incluir arquivos de projeto
Inclua os arquivos necessários no seu projeto de desenvolvimento. Se você estiver criando um aplicativo cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, certifique-se de incluir os arquivos proxy.
Criar um objeto de cliente de saída e de Assembler
Antes de executar programaticamente uma operação de API do serviço de saída, crie um objeto de API do cliente de saída. Além disso, como esse fluxo de trabalho chama o serviço Assembler para criar o design de formulário, crie um objeto de API do cliente Assembler.
Use o serviço Assembler para gerar o design de formulário
Use o serviço Assembler para gerar o design de formulário usando fragmentos. O serviço Assembler retorna um com.adobe.idp.Document instância que contém o design de formulário.
Usar o serviço de saída para gerar o documento PDF
Você pode usar o Serviço de saída para gerar um documento PDF usando o design de formulário criado pelo serviço Assembler. Passe o com.adobe.idp.Document instância que o serviço Assembler retornou para o serviço Saída.
Salve o documento PDF como um arquivo PDF
Depois que o serviço de saída gera um documento PDF, você pode salvá-lo como um arquivo PDF.
Consulte também
Criar um documento do PDF com base em fragmentos usando a API do Java
Criar um documento do PDF com base em fragmentos usando a API do serviço da Web
Inclusão de arquivos da biblioteca Java do AEM Forms
Configuração das propriedades de conexão
Início rápido da API do Serviço de Saída
Criar um documento do PDF com base em fragmentos usando a API do Java create-a-pdf-document-based-on-fragments-using-the-java-api
Crie um documento do PDF com base em fragmentos usando a API do serviço de saída e a API do serviço do Assembler (Java):
-
Inclua arquivos de projeto.
Inclua arquivos JAR do cliente, como adobe-output-client.jar, no caminho de classe do seu projeto Java.
-
Crie um objeto Cliente de Saída e Assembler.
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto. - Crie um
AssemblerServiceClientusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Use o serviço Assembler para gerar o design de formulário.
Chame o
AssemblerServiceClientdo objetoinvokeDDXe passe os seguintes valores obrigatórios:- A
com.adobe.idp.Documentobjeto que representa o documento DDX a ser usado. - A
java.util.Mapobjeto que contém os arquivos XDP de entrada. - A
com.adobe.livecycle.assembler.client.AssemblerOptionSpecobjeto que especifica as opções de tempo de execução, incluindo a fonte padrão e o nível de log do trabalho.
O
invokeDDXmétodo retorna umcom.adobe.livecycle.assembler.client.AssemblerResultobjeto que contém o documento XDP montado. Para recuperar o documento XDP montado, execute as seguintes ações:- Chame o
AssemblerResultdo objetogetDocumentsmétodo . Esse método retorna umjava.util.Mapobjeto. - Iterar por meio do
java.util.Mapaté encontrar o resultantecom.adobe.idp.Documentobjeto. - Chame o
com.adobe.idp.Documentdo objetocopyToFilepara extrair o documento XDP montado.
- A
-
Use o Serviço de saída para gerar o documento PDF.
Chame o
OutputClientdo objetogeneratePDFOutput2e transmita os seguintes valores:- A
TransformationFormatvalor de enumeração. Para gerar um documento PDF, especifiqueTransformationFormat.PDF - Um valor de string que especifica a raiz do conteúdo na qual os recursos adicionais, como imagens, estão localizados
- A
com.adobe.idp.Documentobjeto que representa o design de formulário (use a instância retornada pelo serviço Assembler) - A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução PDF - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização - O
com.adobe.idp.Documentobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário
O
generatePDFOutput2retorna um métodoOutputResultobjeto que contém os resultados da operação - A
-
Salve o documento PDF como um arquivo PDF.
- Recuperar uma
com.adobe.idp.Documentobjeto que representa o documento PDF chamando oOutputResultdo objetogetGeneratedDocmétodo . - Crie um
java.io.Fileque contém os resultados da operação. Certifique-se de que a extensão do nome de arquivo seja .pdf. - Chame o
com.adobe.idp.Documentdo objetocopyToFilepara copiar o conteúdo dacom.adobe.idp.Documentao arquivo. (Certifique-se de usar a variávelcom.adobe.idp.Documentque a variávelgetGeneratedDocmétodo retornado.)
- Recuperar uma
Consulte também
Início rápido (modo EJB): Criação de um documento do PDF com base em fragmentos usando a API do Java
Criar um documento do PDF com base em fragmentos usando a API do serviço da Web create-a-pdf-document-based-on-fragments-using-the-web-service-api
Crie um documento do PDF com base em fragmentos usando a API do Serviço de Saída e a API do Serviço do Assembler (serviço da Web):
-
Inclua arquivos de projeto.
Crie um projeto Microsoft .NET que use MTOM. Use a seguinte definição WSDL para a referência de serviço associada ao serviço de Saída:
code language-as3 http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.Use a seguinte definição WSDL para a referência de serviço associada ao serviço Assembler:
code language-as3 http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1.Porque a variável
BLOBo tipo de dados é comum a ambas as referências de serviço, qualifica totalmente a variávelBLOBtipo de dados ao usá-lo. Na inicialização rápida do serviço da Web correspondente, todas asBLOBas instâncias são totalmente qualificadas.note note NOTE Substituir localhost* com o endereço IP do servidor que hospeda a AEM Forms. * -
Crie um objeto Cliente de Saída e Assembler.
-
Crie um
OutputServiceClientusando seu construtor padrão. -
Crie um
OutputServiceClient.Endpoint.Addressusando oSystem.ServiceModel.EndpointAddressconstrutor. Passe um valor de string que especifica o WSDL para o serviço do AEM Forms (por exemplo,http://localhost:8080/soap/services/OutputService?blob=mtom.) Não é necessário usar a variávellc_versionatributo. Esse atributo é usado ao criar uma referência de serviço. No entanto, especifique?blob=mtompara usar MTOM. -
Crie um
System.ServiceModel.BasicHttpBindingobtendo o valor da variávelOutputServiceClient.Endpoint.Bindingcampo. Converta o valor de retorno paraBasicHttpBinding. -
Defina as
System.ServiceModel.BasicHttpBindingdo objetoMessageEncodingcampo paraWSMessageEncoding.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
OutputServiceClient.ClientCredentials.UserName.UserNamecampo. - Atribua o valor da senha correspondente ao
OutputServiceClient.ClientCredentials.UserName.Passwordcampo. - Atribuir o valor constante
HttpClientCredentialType.BasicparaBasicHttpBindingSecurity.Transport.ClientCredentialTypecampo.
- Atribua o nome de usuário dos formulários AEM ao
-
Atribua o
BasicHttpSecurityMode.TransportCredentialOnlyvalor constante paraBasicHttpBindingSecurity.Security.Modecampo.
note note NOTE Repita essas etapas para a AssemblerServiceClientobjeto * . * -
-
Use o serviço Assembler para gerar o design de formulário.
Chame o
AssemblerServiceClientdo objetoinvokeDDXe transmita os seguintes valores:- A
BLOBobjeto que representa o documento DDX - O
MyMapOf_xsd_string_To_xsd_anyTypeobjeto que contém os arquivos necessários - Um
AssemblerOptionSpecobjeto que especifica as opções de tempo de execução
O
invokeDDXretorna um métodoAssemblerResultobjeto que contém os resultados da tarefa e quaisquer exceções que ocorreram. Para obter o documento XDP recém-criado, execute as seguintes ações:- Acesse o
AssemblerResultdo objetodocuments, que é umMapobjeto que contém os documentos PDF resultantes. - Iterar por meio do
Mapobjeto para recuperar o design de formulário montado. Transmita esse membro da matrizvalueparaBLOB. Passe istoBLOBpara o serviço de saída.
- A
-
Use o Serviço de saída para gerar o documento PDF.
Chame o
OutputServiceClientdo objetogeneratePDFOutput2e transmita os seguintes valores:- A
TransformationFormatvalor de enumeração. Para gerar um documento PDF, especifiqueTransformationFormat.PDF. - Um valor de string que especifica a raiz do conteúdo na qual os recursos adicionais, como imagens, estão localizados.
- A
BLOBobjeto que representa o design de formulário (use oBLOBinstância retornada pelo serviço Assembler). - A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
BLOBobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário. - Uma saída
BLOBque a variávelgeneratePDFOutput2é preenchida. OgeneratePDFOutput2O método preenche este objeto com metadados gerados que descrevem o documento. (Esse valor de parâmetro é necessário somente para a invocação do serviço da Web). - Uma saída
OutputResultque contém os resultados da operação. (Esse valor de parâmetro é necessário somente para a invocação do serviço da Web).
O
generatePDFOutput2método retorna umBLOBobjeto que contém o formulário PDF não interativo. - A
-
Salve o documento PDF como um arquivo PDF.
- Crie um
System.IO.FileStreamchamando seu construtor. Passe um valor de string que representa o local do arquivo do documento interativo do PDF e o modo no qual o arquivo deve ser aberto. - Crie uma matriz de bytes que armazene o conteúdo da variável
BLOBobjeto recuperado dogeneratePDFOutput2método . Preencha a matriz de bytes obtendo o valor da variávelBLOBdo objetoMTOMmembro de dados. - Crie um
System.IO.BinaryWriterchamando seu construtor e passando oSystem.IO.FileStreamobjeto. - Escreva o conteúdo da matriz de bytes em um arquivo PDF chamando o
System.IO.BinaryWriterdo objetoWritee transmitindo a matriz de bytes.
- Crie um
Consulte também
Imprimindo em Arquivos printing-to-files
Você pode usar o Serviço de saída para imprimir fluxos como PostScript, PCL (Printer Control Language) ou os seguintes formatos de rótulo em um arquivo:
- Zebra - ZPL
- Interfaces - IPL
- Datamax - DPL
- TecToshiba - TPCL
Com o serviço Saída, é possível mesclar dados XML com um design de formulário e imprimir o formulário em um arquivo. A ilustração a seguir mostra o serviço de saída criando arquivos de laser e rótulo.
Resumo das etapas summary_of_steps-5
Para imprimir em um arquivo, execute as seguintes etapas:
- Inclua arquivos de projeto.
- Crie um objeto de Cliente de saída.
- Faça referência a uma fonte de dados XML.
- Defina as opções de tempo de execução de impressão necessárias para imprimir em um arquivo.
- Imprima o fluxo de impressão em um arquivo.
- Recupere os resultados da operação.
Incluir arquivos de projeto
Inclua os arquivos necessários no seu projeto de desenvolvimento. Se você estiver criando um aplicativo cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, certifique-se de incluir os arquivos proxy.
Os seguintes arquivos JAR devem ser adicionados ao caminho de classe do seu projeto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-output-client.jar
- adobe-utilities.jar (necessário se o AEM Forms estiver implantado no JBoss)
- jbossall-client.jar (obrigatório se o AEM Forms for implantado no JBoss)
se o AEM Forms for implantado em um servidor de aplicativos J2EE compatível que não seja JBoss, será necessário substituir os arquivos adobe-utilities.jar e jbossall-client.jar por arquivos JAR específicos do servidor de aplicativos J2EE no qual o AEM Forms é implantado. (Consulte Inclusão de arquivos da biblioteca Java do AEM Forms.)
Criar um objeto de cliente de saída
Antes de poder executar programaticamente uma operação do Serviço de saída, é necessário criar um objeto cliente do Serviço de saída. Se estiver usando a API do Java, crie um OutputClient objeto. Se estiver usando a API de serviço da Web de saída, crie um OutputServiceService objeto.
Referência a uma fonte de dados XML
Para imprimir um documento que contenha dados, é necessário referenciar uma fonte de dados XML que contenha elementos XML para cada campo de formulário que você deseja preencher com dados. O nome do elemento XML deve corresponder ao nome do campo. Um elemento XML é ignorado se não corresponder a um campo de formulário ou se o nome do elemento XML não corresponder ao nome do campo. Não é necessário corresponder à ordem em que os elementos XML são exibidos se todos os elementos XML forem especificados.
Defina as opções de tempo de execução de impressão necessárias para imprimir em um arquivo
Para imprimir em um arquivo, é necessário definir a opção File URI run-time especificando o local e o nome do arquivo para o qual o serviço de saída é impresso. Por exemplo, para instruir o serviço de saída a imprimir um arquivo PostScript chamado MortgaugeForm.ps para C:\Adobe, especifique C:\Adobe\MortgageForm.ps.
PrintedOutputOptionsSpec referência de classe em Referência da API do AEM Forms.Imprimir o fluxo de impressão em um arquivo
Depois de fazer referência a uma fonte de dados XML válida que contém dados de formulário e definir opções de tempo de execução de impressão, você pode chamar o serviço Saída, o que faz com que ele imprima um arquivo.
Recuperar os resultados da operação
Depois que o serviço de saída executa uma operação, ele retorna vários itens de dados, como dados XML, que especifica se a operação foi bem-sucedida.
Consulte também
Imprimir em arquivos usando a API Java
Imprimir em arquivos usando a API de serviço da Web
Inclusão de arquivos da biblioteca Java do AEM Forms
Imprimir em arquivos usando a API Java print-to-files-using-the-java-api
Imprima em um arquivo usando a API de saída (Java):
-
Inclua arquivos de projeto.
Inclua arquivos JAR do cliente, como o adobe-output-client.jar, no caminho de classe do seu projeto Java.
-
Crie um objeto de Cliente de saída.
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Faça referência a uma fonte de dados XML.
- Crie um
java.io.FileInputStreamobjeto que representa a fonte de dados XML usada para preencher o documento usando seu construtor e transmitindo um valor de string que especifica o local do arquivo XML. - Crie um
com.adobe.idp.Documentusando seu construtor e passando ojava.io.FileInputStreamobjeto.
- Crie um
-
Defina as opções de tempo de execução de impressão necessárias para imprimir em um arquivo.
- Crie um
PrintedOutputOptionsSpecusando seu construtor. - Especifique o arquivo chamando o objeto PrintedOutputOptionsSpec
setFileURIe transmitindo um valor de string que represente o nome e o local do arquivo. Por exemplo, se você quiser que o serviço de saída imprima para um arquivo PostScript chamado* MortgaugeForm.ps* localizado em C:\Adobe, especifique C:\Adobe\MortgageForm.ps. - Especifique o número de cópias a serem impressas chamando a variável
PrintedOutputOptionsSpecdo objetosetCopiese transmitindo um valor inteiro que representa o número de cópias.
- Crie um
-
Imprima o fluxo de impressão em um arquivo.
Imprimir em um arquivo chamando o
OutputClientdo objetogeneratePrintedOutpute transmitindo os seguintes valores:- A
PrintFormatvalor de enumeração que especifica o formato de fluxo de impressão a ser criado. Por exemplo, para criar um fluxo de impressão PostScript, passePrintFormat.PostScript. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica o local de arquivos de garantia relacionados, como arquivos de imagem.
- Um valor da string que especifica o local do arquivo XDC a ser usado (você pode passar
nullse você especificou o arquivo XDC a ser usado com oPrintedOutputOptionsSpecobjeto). - O
PrintedOutputOptionsSpecobjeto que contém opções de tempo de execução necessárias para imprimir em um arquivo. - O
com.adobe.idp.Documentobjeto que contém a fonte de dados XML que contém os dados do formulário.
O
generatePrintedOutputretorna um métodoOutputResultque contém os resultados da operação.note note NOTE O OutputResultdo objetogetRecordLevelMetaDataListretornos de métodonull*. * - A
-
Recupere os resultados da operação.
- Crie um
com.adobe.idp.Documentobjeto que representa o status dogeneratePrintedOutputchamando o métodoOutputResultdo objetogetStatusDocmétodo (oOutputResulto objeto foi retornado pelogeneratePrintedOutputmétodo ). - Crie um
java.io.Fileque conterá os resultados da operação. Certifique-se de que a extensão do arquivo seja XML. - Chame o
com.adobe.idp.Documentdo objetocopyToFilepara copiar o conteúdo dacom.adobe.idp.Documentpara o arquivo (certifique-se de usar a variávelcom.adobe.idp.Documentobjeto retornado pelogetStatusDocmétodo ).
- Crie um
Consulte também
Início rápido (modo SOAP): Impressão em um arquivo usando a API Java
Imprimir em arquivos usando a API de serviço da Web print-to-files-using-the-web-service-api
Imprima em um arquivo usando a API de saída (serviço da Web):
-
Inclua arquivos de projeto.
Crie um projeto Microsoft .NET que use MTOM. Certifique-se de usar a seguinte definição de WSDL:
http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.note note NOTE Substituir localhost* com o endereço IP do servidor que hospeda a AEM Forms. * -
Crie um objeto de Cliente de saída.
-
Crie um
OutputServiceClientusando seu construtor padrão. -
Crie um
OutputServiceClient.Endpoint.Addressusando oSystem.ServiceModel.EndpointAddressconstrutor. Passe um valor de string que especifica o WSDL para o serviço do AEM Forms (por exemplo,http://localhost:8080/soap/services/OutputService?blob=mtom.) Não é necessário usar a variávellc_versionatributo. Esse atributo é usado ao criar uma referência de serviço. No entanto, especifique?blob=mtompara usar MTOM. -
Crie um
System.ServiceModel.BasicHttpBindingobtendo o valor da variávelOutputServiceClient.Endpoint.Bindingcampo. Converta o valor de retorno paraBasicHttpBinding. -
Defina as
System.ServiceModel.BasicHttpBindingdo objetoMessageEncodingcampo paraWSMessageEncoding.Mtom. Esse valor garante que o MTOM seja usado. -
Ative a autenticação HTTP básica executando as seguintes tarefas:
- Atribuir o nome de usuário dos formulários AEM ao campo
OutputServiceClient.ClientCredentials.UserName.UserName. - Atribua o valor correspondente da senha ao campo
OutputServiceClient.ClientCredentials.UserName.Password. - Atribuir o valor constante
HttpClientCredentialType.Basicao campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Atribuir o valor constante
BasicHttpSecurityMode.TransportCredentialOnlyao campoBasicHttpBindingSecurity.Security.Mode.
- Atribuir o nome de usuário dos formulários AEM ao campo
-
-
Faça referência a uma fonte de dados XML.
- Crie um
BLOBusando seu construtor. OBLOBé usado para armazenar dados de formulário. - Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que especifica o local do arquivo XML que contém os dados do formulário. - Crie uma matriz de bytes que armazene o conteúdo da variável
System.IO.FileStreamobjeto. Você pode determinar o tamanho da matriz de bytes obtendo a variávelSystem.IO.FileStreamdo objetoLengthpropriedade. - Preencha a matriz de bytes com dados de fluxo chamando a variável
System.IO.FileStreamdo objetoReade transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo a ser lido. - Preencha o
BLOBao atribuir seubinaryDatacom o conteúdo da matriz de bytes.
- Crie um
-
Defina as opções de tempo de execução de impressão necessárias para imprimir em um arquivo.
- Crie um
PrintedOutputOptionsSpecusando seu construtor. - Especifique o arquivo atribuindo um valor de string que represente o local e o nome do arquivo para a variável
PrintedOutputOptionsSpecdo objetofileURImembro de dados. Por exemplo, se você quiser que o serviço de saída imprima para um arquivo PostScript chamado MortgaugeForm.ps localizado em C:\Adobe, especifique C:\Adobe\MortgageForm.ps. - Especifique o número de cópias a serem impressas atribuindo um valor inteiro que represente o número de cópias à
PrintedOutputOptionsSpecdo objetocopiesmembros de dados.
- Crie um
-
Imprima o fluxo de impressão em um arquivo.
Imprimir em um arquivo chamando o
OutputServiceServicedo objetogeneratePrintedOutpute transmitindo os seguintes valores:- A
PrintFormatvalor de enumeração que especifica o formato de fluxo de impressão a ser criado. Por exemplo, para criar um fluxo de impressão PostScript, passePrintFormat.PostScript. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica o local de arquivos de garantia relacionados, como arquivos de imagem.
- Um valor da string que especifica o local do arquivo XDC a ser usado (você pode passar
nullse você especificou o arquivo XDC a ser usado com oPrintedOutputOptionsSpecobjeto). - O
PrintedOutputOptionsSpecobjeto que contém as opções de tempo de execução de impressão necessárias para imprimir em um arquivo. - O
BLOBobjeto que contém a fonte de dados XML que contém dados de formulário. - A
BLOBque é preenchido pela variávelgeneratePDFOutputmétodo . OgeneratePDFOutputO método preenche este objeto com metadados gerados que descrevem o documento. (Esse valor de parâmetro é necessário somente para invocação do serviço da Web.) - A
BLOBque é preenchido pela variávelgeneratePDFOutputmétodo . OgeneratePDFOutputO método preenche esse objeto com dados de resultado. (Esse valor de parâmetro é necessário somente para invocação do serviço da Web.) - Um
OutputResultque contém os resultados da operação. (Esse valor de parâmetro é necessário somente para invocação do serviço da Web.)
- A
-
Recupere os resultados da operação.
- Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que representa um local de arquivo XML que contém dados de resultado. Certifique-se de que a extensão do arquivo seja XML. - Crie uma matriz de bytes que armazene o conteúdo de dados do
BLOBobjeto que foi preenchido com dados de resultado pela variávelOutputServiceServicedo objetogeneratePDFOutputmétodo (o oitavo parâmetro). Preencha a matriz de bytes obtendo o valor da variávelBLOBdo objetoMTOMmembro de dados. - Crie um
System.IO.BinaryWriterchamando seu construtor e passando oSystem.IO.FileStreamobjeto. - Escreva o conteúdo da matriz de bytes no arquivo XML chamando o
System.IO.BinaryWriterdo objetoWritee transmitindo a matriz de bytes.
- Crie um
Consulte também
Enviando fluxos de impressão para impressoras sending-print-streams-to-printers
Você pode usar o Serviço de saída para enviar fluxos de impressão, como PostScript, PCL (Printer Control Language) ou os seguintes formatos de rótulo para impressoras de rede:
- Zebra - ZPL
- Interfaces - IPL
- Datamax - DPL
- TecToshiba - TPCL
Usando o serviço Saída, é possível mesclar dados XML com um design de formulário e exibir o formulário como um fluxo de impressão. Por exemplo, você pode criar um fluxo de impressão PostScript e enviá-lo para uma impressora de rede. A ilustração a seguir mostra o serviço Saída enviando fluxos de impressão para impressoras de rede.
Resumo das etapas summary_of_steps-6
Para enviar um fluxo de impressão para uma impressora de rede, execute as seguintes etapas:
- Inclua arquivos de projeto.
- Crie um objeto de Cliente de saída.
- Faça referência a uma fonte de dados XML.
- Definir opções de tempo de execução de impressão
- Recupere um documento para imprimir.
- Envie o documento para uma impressora de rede.
Incluir arquivos de projeto
Inclua os arquivos necessários no seu projeto de desenvolvimento. Se você estiver criando um aplicativo cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, certifique-se de incluir os arquivos proxy.
Os seguintes arquivos JAR devem ser adicionados ao caminho de classe do seu projeto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-output-client.jar
- adobe-utilities.jar (obrigatório se o AEM Forms estiver implantado no JBoss)
- jbossall-client.jar (obrigatório se o AEM Forms for implantado no JBoss)
se o AEM Forms for implantado em um servidor de aplicativos J2EE compatível que não seja JBoss, será necessário substituir os arquivos adobe-utilities.jar e jbossall-client.jar por arquivos JAR específicos do servidor de aplicativos J2EE no qual o AEM Forms é implantado.
Criar um objeto de cliente de saída
Antes de executar programaticamente uma operação do serviço de saída, crie um objeto cliente do serviço de saída. Se estiver usando a API do Java, crie um OutputClient objeto. Se estiver usando a API de serviço da Web de saída, crie um OutputServiceClient objeto.
Referência a uma fonte de dados XML
Para imprimir um documento que contenha dados, é necessário referenciar uma fonte de dados XML que contenha elementos XML para cada campo de formulário que você deseja preencher com dados. O nome do elemento XML deve corresponder ao nome do campo. Um elemento XML é ignorado se não corresponder a um campo de formulário ou se o nome do elemento XML não corresponder ao nome do campo. Não é necessário corresponder à ordem em que os elementos XML são exibidos se todos os elementos XML forem especificados.
Definir opções de tempo de execução de impressão
Você pode definir as opções de tempo de execução ao enviar um fluxo de impressão para uma impressora, incluindo as seguintes opções:
- Cópias: Especifica o número de cópias a serem enviadas para a impressora. O valor padrão é 1.
- Agrafar: Uma opção XCI é definida quando um grampeador é usado. Essa opção pode ser especificada no modelo de configuração pelo elemento básico e é usada apenas para impressoras PS e PCL.
- OutputJog: Uma opção XCI é definida quando as páginas de saída devem ser executadas (movidas fisicamente na bandeja de saída). Essa opção é somente para impressoras PS e PCL.
- OutputBin: Valor XCI usado para permitir que o driver de impressão selecione o compartimento de saída apropriado.
PrintedOutputOptionsSpec referência de classe.Recuperar um documento para imprimir
Recupere um fluxo de impressão para enviar para uma impressora. Por exemplo, você pode recuperar um arquivo PostScript e enviá-lo para uma impressora.
Você pode optar por enviar um arquivo PDF se a impressora suportar PDF. No entanto, um problema ao enviar um documento PDF para uma impressora é que cada fabricante de impressora tem uma implementação diferente do interpretador PDF. Ou seja, alguns fabricantes de impressão usam a interpretação Adobe PDF, mas depende da impressora. Outras impressoras têm seu próprio intérprete de PDF. Como resultado, os resultados da impressão podem variar.
Outra limitação do envio de um documento PDF para uma impressora é que ele apenas imprime; ele não pode acessar duplex, seleção da bandeja de papel e grampeamento, exceto por meio de configurações na impressora.
Para recuperar um documento para imprimir, use o generatePrintedOutput método . A tabela a seguir especifica os tipos de conteúdo que são definidos para um determinado fluxo de impressão ao usar o generatePrintedOutput método .
generatePrintedOutput2 método . No entanto, as inicializações rápidas associadas à seção Enviar fluxos de impressão para impressoras usam o generatePrintedOutput método .Enviar fluxo de impressão para uma impressora de rede
Depois de recuperar um documento para imprimir, você pode chamar o Serviço de saída, o que faz com que ele envie um fluxo de impressão para uma impressora de rede. Para que o serviço de saída localize a impressora com êxito, é necessário especificar o servidor de impressão e o nome da impressora. Além disso, você também deve especificar o protocolo de impressão.
Envie um fluxo de impressão para uma impressora de rede usando a API de saída (Java):
-
Inclua arquivos de projeto.
Inclua arquivos JAR do cliente, como o adobe-output-client.jar, no caminho de classe do seu projeto Java.
-
Criar um objeto de cliente de saída
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Referência a uma fonte de dados XML
- Crie um
java.io.FileInputStreamobjeto que representa a fonte de dados XML usada para preencher o documento usando seu construtor e transmitindo um valor de string que especifica o local do arquivo XML. - Crie um
com.adobe.idp.Documentusando seu construtor e passando ojava.io.FileInputStreamobjeto.
- Crie um
-
Definir opções de tempo de execução de impressão
Crie um
PrintedOutputOptionsSpecobjeto que representa opções de tempo de execução de impressão. Por exemplo, você pode especificar o número de cópias a serem impressas chamando a funçãoPrintedOutputOptionsSpecdo objetosetCopiesmétodo .note note NOTE Não é possível definir o valor da paginação usando a variável PrintedOutputOptionsSpecdo objetosetPaginationmétodo se estiver gerando um fluxo de impressão ZPL. Da mesma forma, não é possível definir as seguintes opções para um fluxo de impressão ZPL: OutputJog, PageOffset e Staple. OsetPagination* método não é válido para geração de PostScript. É válido apenas para geração de PCL. * -
Recuperar um documento para imprimir
-
Recupere um documento para imprimir, chamando o
OutputClientdo objetogeneratePrintedOutpute transmitindo os seguintes valores:- A
PrintFormatvalor de enumeração que especifica o fluxo de impressão. Por exemplo, para criar um fluxo de impressão PostScript, passePrintFormat.PostScript. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica o local dos arquivos de garantia relacionados, como arquivos de imagem.
- Um valor de string que especifica o local do arquivo XDC a ser usado.
- O
PrintedOutputOptionsSpecobjeto que contém opções de tempo de execução necessárias para imprimir em um arquivo. - O
com.adobe.idp.Documentobjeto que representa a fonte de dados XML que contém dados de formulário a serem unidos ao design de formulário.
Esse método retorna um
OutputResultque contém os resultados da operação. - A
-
Crie um
com.adobe.idp.Documentobjeto a ser enviado para a impressora chamando oOutputResultobjeto "sgetGeneratedDocmétodo . Esse método retorna umcom.adobe.idp.Documentobjeto.
-
-
Enviar fluxo de impressão para uma impressora de rede
Envie o fluxo de impressão para uma impressora de rede chamando o
OutputClientdo objetosendToPrintere transmitindo os seguintes valores:- A
com.adobe.idp.Documentobjeto que representa o fluxo de impressão a ser enviado para a impressora. - A
PrinterProtocolvalor de enumeração que especifica o protocolo de impressora a ser usado. Por exemplo, para especificar o protocolo SharedPrinter, passePrinterProtocol.SharedPrinter. - Um valor de string que especifica o nome do servidor de impressão. Por exemplo, supondo que o nome do servidor de impressão seja PrintServer1, passe
\\\PrintSever1. - Um valor de string que especifica o nome da impressora. Por exemplo, supondo que o nome da impressora seja Printer1, passe
\\\PrintSever1\Printer1.
note note NOTE O sendToPrinterfoi adicionado à API do AEM Forms na versão 8.2.1. - A
Enviar um fluxo de impressão para uma impressora usando a API do serviço da Web send-a-print-stream-to-a-printer-using-the-web-service-api
Envie um fluxo de impressão para uma impressora de rede usando a API de saída (serviço da Web):
-
Inclua arquivos de projeto.
Crie um projeto Microsoft .NET que use MTOM. Certifique-se de usar a seguinte definição de WSDL:
http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.note note NOTE Substituir localhost* com o endereço IP do servidor que hospeda a AEM Forms. * -
Crie um objeto de Cliente de saída.
-
Crie um
OutputServiceClientusando seu construtor padrão. -
Crie um
OutputServiceClient.Endpoint.Addressusando oSystem.ServiceModel.EndpointAddressconstrutor. Passe um valor de string que especifica o WSDL para o serviço do AEM Forms (por exemplo,http://localhost:8080/soap/services/OutputService?blob=mtom.) Não é necessário usar a variávellc_versionatributo. Esse atributo é usado ao criar uma referência de serviço. No entanto, especifique?blob=mtompara usar MTOM. -
Crie um
System.ServiceModel.BasicHttpBindingobtendo o valor da variávelOutputServiceClient.Endpoint.Bindingcampo. Converta o valor de retorno paraBasicHttpBinding. -
Defina as
System.ServiceModel.BasicHttpBindingdo objetoMessageEncodingcampo paraWSMessageEncoding.Mtom. Esse valor garante que o MTOM seja usado. -
Ative a autenticação HTTP básica executando as seguintes tarefas:
- Atribuir o nome de usuário dos formulários AEM ao campo
OutputServiceClient.ClientCredentials.UserName.UserName. - Atribua o valor correspondente da senha ao campo
OutputServiceClient.ClientCredentials.UserName.Password. - Atribuir o valor constante
HttpClientCredentialType.Basicao campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Atribuir o valor constante
BasicHttpSecurityMode.TransportCredentialOnlyao campoBasicHttpBindingSecurity.Security.Mode.
- Atribuir o nome de usuário dos formulários AEM ao campo
-
-
Faça referência a uma fonte de dados XML.
- Crie um
BLOBusando seu construtor. OBLOBé usado para armazenar dados de formulário. - Crie um
System.IO.FileStreamchamando seu construtor. Passe um valor de string que especifica o local do arquivo XML que contém os dados do formulário. - Crie uma matriz de bytes que armazene o conteúdo da variável
System.IO.FileStreamobjeto. Determine o comprimento da matriz de bytes obtendo a variávelSystem.IO.FileStreamdo objetoLengthpropriedade. - Preencha a matriz de bytes com dados de fluxo chamando a variável
System.IO.FileStreamdo objetoReade transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo a ser lido. - Preencha o
BLOBao atribuir seuMTOMcom o conteúdo da matriz de bytes.
- Crie um
-
Defina as opções de tempo de execução de impressão.
Crie um
PrintedOutputOptionsSpecusando seu construtor. Por exemplo, você pode especificar o número de cópias a serem impressas atribuindo um valor inteiro que representa o número de cópias à variávelPrintedOutputOptionsSpecdo objetocopiesmembro de dados.note note NOTE Não é possível definir o valor da paginação usando a variável PrintedOutputOptionsSpecdo objetopaginationmembro de dados se você estiver gerando um fluxo de impressão ZPL. Da mesma forma, não é possível definir as seguintes opções para um fluxo de impressão ZPL: OutputJog, PageOffset e Staple. Opagination* o membro de dados não é válido para geração de PostScript. É válido apenas para geração de PCL. * -
Recupere um documento para imprimir.
-
Recupere um documento para imprimir, chamando o
OutputServiceServicedo objetogeneratePrintedOutpute transmitindo os seguintes valores:- A
PrintFormatvalor de enumeração que especifica o fluxo de impressão. Por exemplo, para criar um fluxo de impressão PostScript, passePrintFormat.PostScript. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica o local dos arquivos de garantia relacionados, como arquivos de imagem.
- Um valor de string que especifica o local do arquivo XDC a ser usado.
- O
PrintedOutputOptionsSpecobjeto que contém opções de tempo de execução de impressão usadas ao enviar um fluxo de impressão para uma impressora de rede. - O
BLOBobjeto que contém a fonte de dados XML que contém dados de formulário. - A
BLOBque é preenchido pela variávelgeneratePrintedOutputmétodo . OgeneratePrintedOutputO método preenche este objeto com metadados gerados que descrevem o documento. (Esse valor de parâmetro é necessário somente para invocação do serviço da Web.) - A
BLOBque é preenchido pela variávelgeneratePrintedOutputmétodo . OgeneratePrintedOutputO método preenche esse objeto com dados de resultado. (Esse valor de parâmetro é necessário somente para invocação do serviço da Web.) - Um
OutputResultque contém os resultados da operação. (Esse valor de parâmetro é necessário somente para invocação do serviço da Web.)
- A
-
Crie um
BLOBobjeto a ser enviado para a impressora obtendo o valor da variávelOutputResultobjeto "sgeneratedDocmétodo . Esse método retorna umBLOBobjeto que contém dados PostScript retornados pela variávelgeneratePrintedOutputmétodo .
-
-
Envie o fluxo de impressão para uma impressora de rede.
Envie o fluxo de impressão para uma impressora de rede chamando o
OutputClientdo objetosendToPrintere transmitindo os seguintes valores:- A
BLOBobjeto que representa o fluxo de impressão a ser enviado para a impressora. - A
PrinterProtocolvalor de enumeração que especifica o protocolo de impressora a ser usado. Por exemplo, para especificar o protocolo SharedPrinter, passePrinterProtocol.SharedPrinter. - A
boolque especifica se o valor do parâmetro anterior deve ser usado. Transmita o valortrue. (Esse valor de parâmetro é necessário somente para invocação do serviço da Web.) - Um valor de string que especifica o nome do servidor de impressão. Por exemplo, supondo que o nome do servidor de impressão seja PrintServer1, passe
\\\PrintSever1. - Um valor de string que especifica o nome da impressora. Por exemplo, supondo que o nome da impressora seja Printer1, passe
\\\PrintSever1\Printer1.
note note NOTE O sendToPrinterfoi adicionado à API do AEM Forms na versão 8.2.1. - A
Criação de vários arquivos de saída creating-multiple-output-files
O serviço de saída pode criar documentos separados para cada registro dentro de uma fonte de dados XML ou um único arquivo que contenha todos os registros (essa funcionalidade é o padrão). Por exemplo, suponha que dez registros estejam localizados em uma fonte de dados XML e você instrua o serviço de Saída a criar documentos PDF separados (ou outros tipos de saída) para cada registro usando a API do Serviço de Saída. Como resultado, o serviço Output gera dez documentos PDF. (Em vez de criar documentos, você pode enviar vários fluxos de impressão para uma impressora.)
A ilustração a seguir também mostra o serviço de saída processando um arquivo de dados XML que contém vários registros. No entanto, suponha que você instrua o Serviço de saída a criar um único documento PDF que contenha todos os registros de dados. Nessa situação, o serviço de Saída gera um documento que contém todos os registros.
A ilustração a seguir mostra o serviço de saída processando um arquivo de dados XML que contém vários registros. Suponha que você instrua o Serviço de saída a criar um documento PDF separado para cada registro de dados. Nessa situação, o serviço Output gera um documento PDF separado para cada registro de dados.
Os seguintes dados XML mostram um exemplo de arquivo de dados que contém três registros de dados.
<?xml version="1.0" encoding="UTF-8"?>
<batch>
<LoanRecord>
<mortgageAmount>500000</mortgageAmount>
<lastName>Blue</lastName>
<firstName>Tony</firstName>
<SSN>555666777</SSN>
<PositionTitle>Product Manager</PositionTitle>
<Address>555 No Where Dr</Address>
<City>New York</City>
<StateProv>New York</StateProv>
<ZipCode>51256</ZipCode>
<Email>TBlue@NoMailServer.com</Email>
<PhoneNum>555-7418</PhoneNum>
<FaxNum>555-9981</FaxNum>
<Description>Buy a home</Description>
</LoanRecord>
<LoanRecord>
<mortgageAmount>300000</mortgageAmount>
<lastName>White</lastName>
<firstName>Sam</firstName>
<SSN>555666222</SSN>
<PositionTitle>Program Manager</PositionTitle>
<Address>557 No Where Dr</Address>
<City>New York</City>
<StateProv>New York</StateProv>
<ZipCode>51256</ZipCode>
<Email>SWhite@NoMailServer.com</Email>
<PhoneNum>555-7445</PhoneNum>
<FaxNum>555-9986</FaxNum>
<Description>Buy a home</Description>
</LoanRecord>
<LoanRecord>
<mortgageAmount>700000</mortgageAmount>
<lastName>Green</lastName>
<firstName>Steve</firstName>
<SSN>55566688</SSN>
<PositionTitle>Project Manager</PositionTitle>
<Address>445 No Where Dr</Address>
<City>New York</City>
<StateProv>New York</StateProv>
<ZipCode>51256</ZipCode>
<Email>SGreeb@NoMailServer.com</Email>
<PhoneNum>555-2211</PhoneNum>
<FaxNum>555-2221</FaxNum>
<Description>Buy a home</Description>
</LoanRecord>
</batch>
Observe que o elemento XML que inicia e encerra cada registro de dados é LoanRecord. Esse elemento XML é referenciado pela lógica do aplicativo que gera vários arquivos.
Resumo das etapas summary_of_steps-7
Para criar vários arquivos PDF com base em uma fonte de dados XML, execute as seguintes etapas:
- Inclua arquivos de projeto.
- Crie um objeto de Cliente de saída.
- Faça referência a uma fonte de dados XML.
- Defina as opções de tempo de execução do PDF.
- Defina as opções de tempo de execução da renderização.
- Gere vários arquivos PDF.
- Recupere os resultados da operação.
Incluir arquivos de projeto
Inclua os arquivos necessários no seu projeto de desenvolvimento. Se você estiver criando um aplicativo cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, certifique-se de incluir os arquivos proxy.
Os seguintes arquivos JAR devem ser adicionados ao caminho de classe do seu projeto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-output-client.jar
- adobe-utilities.jar (necessário se o AEM Forms estiver implantado no JBoss)
- jbossall-client.jar (obrigatório se o AEM Forms for implantado no JBoss)
se o AEM Forms for implantado em um servidor de aplicativos J2EE compatível que não seja JBoss, será necessário substituir os arquivos adobe-utilities.jar e jbossall-client.jar por arquivos JAR específicos do servidor de aplicativos J2EE no qual o AEM Forms é implantado.
Criar um objeto de cliente de saída
Antes de poder executar programaticamente uma operação do Serviço de saída, é necessário criar um objeto cliente do Serviço de saída. Se estiver usando a API do Java, crie um OutputClient objeto. Se estiver usando a API de serviço da Web de saída, crie um OutputServiceService objeto.
Referência a uma fonte de dados XML
Faça referência a uma fonte de dados XML que contenha vários registros. Um elemento XML deve ser usado para separar os registros de dados. Por exemplo, no exemplo da fonte de dados XML mostrada anteriormente nesta seção, o elemento XML que separa registros de dados é nomeado LoanRecord.
Um elemento XML deve existir para cada campo de formulário que você deseja preencher com dados. O nome do elemento XML deve corresponder ao nome do campo. Um elemento XML é ignorado se não corresponder a um campo de formulário ou se o nome do elemento XML não corresponder ao nome do campo. Não é necessário corresponder à ordem em que os elementos XML são exibidos se todos os elementos XML forem especificados.
Definir opções de tempo de execução PDF
Você deve definir as seguintes opções de tempo de execução para o serviço Saída criar com êxito vários arquivos com base em uma fonte de dados XML:
- Muitos arquivos: Especifica se o serviço Saída cria um único documento ou vários documentos. Você pode especificar verdadeiro ou falso. Para criar um documento separado para cada registro de dados na fonte de dados XML, especifique true.
- URI do arquivo: Especifica o local dos arquivos gerados pelo serviço de saída. Por exemplo, suponha que você especifique C:\Adobe\forms\Loan.pdf. Nessa situação, o serviço de Saída cria um arquivo chamado Loan.pdf e coloca o arquivo no diretório C:\Adobe\forms folder. Quando há vários arquivos, os nomes dos arquivos são Loan0001.pdf, Loan0002.pdf, Loan0003.pdf e assim por diante. Se você especificar um local de arquivo, os arquivos serão colocados no servidor, não no computador cliente.
- Nome do Registro: Especifica o nome do elemento XML na fonte de dados que separa os registros de dados. Por exemplo, no exemplo da fonte de dados XML mostrada anteriormente nesta seção, o elemento XML que separa registros de dados é chamado
LoanRecord. (Em vez de definir a opção Tempo de execução Nome do Registro , você pode definir o Nível de Registro atribuindo a ele um valor numérico que indica o nível do elemento que contém registros de dados. No entanto, é possível definir somente o Nome do Registro ou o Nível do Registro. Não é possível definir ambos os valores.)
Definir opções de tempo de execução de renderização
É possível definir opções de tempo de execução de renderização ao criar vários arquivos. Embora essas opções não sejam necessárias (ao contrário das opções de tempo de execução de saída, que são necessárias), é possível executar tarefas como melhorar o desempenho do serviço de Saída. Por exemplo, é possível armazenar em cache o design de formulário que o serviço de saída usa para melhorar o desempenho.
Quando o serviço de saída processa registros em lote, ele lê dados que contêm vários registros de maneira incremental. Ou seja, o serviço de saída lê os dados na memória e libera os dados conforme o lote de registros é processado. O serviço de saída carrega dados de maneira incremental quando uma das duas opções de tempo de execução é definida. Se você definir a opção Tempo de execução Nome do Registro , o serviço de Saída lê os dados de maneira incremental. Da mesma forma, se você definir a opção Registrar nível de tempo de execução como 2 ou superior, o serviço de Saída lê os dados de maneira incremental.
Você pode controlar se o serviço de Saída executa o carregamento incremental usando o PDFOutputOptionsSpec ou PrintedOutputOptionSpec do objeto setLazyLoading método . Você pode passar o valor false para este método que desativa o carregamento incremental.
Gerar vários arquivos PDF
Depois de fazer referência a uma fonte de dados XML válida que contém vários registros de dados e definir opções de tempo de execução, você pode chamar o serviço de Saída, o que faz com que ele gere vários arquivos. Ao gerar vários registros, a variável OutputResult do objeto getGeneratedDoc retornos de método null.
Recuperar os resultados da operação
Depois que o serviço de saída executa uma operação, ele retorna dados XML que especificam se a operação foi bem-sucedida. O XML a seguir é retornado pelo serviço de Saída. Nessa situação, o serviço Output gerou 42 documentos.
<?xml version="1.0" encoding="UTF-8"?>
<printResult>
<status>0</status>
<requestId>4ad85f9e2</requestId>
<context/>
<messages>
<message>Printed all 42 records successfully.</message>
</messages>
<printSpec>
<input>
<validated>true</validated>
<dataFile recordIdField="" recordLevel="0" recordName="LoanRecord"/>
<sniffRules lookAhead="300"/>
<formDesign>Loan.xdp</formDesign>
<contentRoot>C:\Adobe</contentRoot>
<metadata-spec record="false"/>
</input>
<output>
<format>PDF</format>
<fileURI>C:\Adobe\forms\Loan.pdf</fileURI>
<optionString>cacheenabled=true&padebug=false&linearpdf=false&pdfarevisionnumber=1&pdfaconformance=A&taggedpdf=false&TransactionTimeOut=180</optionString>
<waitForResponse>true</waitForResponse>
<outputStream>multiple</outputStream>
</output>
</printSpec>
</printResult>
Consulte também
Inclusão de arquivos da biblioteca Java do AEM Forms
Criar vários arquivos PDF usando a API do Java create-multiple-pdf-files-using-the-java-api
Crie vários arquivos PDF usando a API de saída (Java):
-
Incluir arquivos de projeto"
Inclua arquivos JAR do cliente, como adobe-output-client.jar, no caminho de classe do seu projeto Java. .
-
Criar um objeto de cliente de saída
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Referência a uma fonte de dados XML
- Crie um
java.io.FileInputStreamobjeto que representa a fonte de dados XML que contém vários registros usando seu construtor e passando um valor de string que especifica o local do arquivo XML. - Crie um
com.adobe.idp.Documentusando seu construtor e passando ojava.io.FileInputStreamobjeto.
- Crie um
-
Definir opções de tempo de execução PDF
- Crie um
PDFOutputOptionsSpecusando seu construtor. - Defina a opção Muitos arquivos chamando a
PDFOutputOptionsSpecdo objetosetGenerateManyFilesmétodo . Por exemplo, passe o valortruepara instruir o Serviço de saída a criar um arquivo PDF separado para cada registro na fonte de dados XML. (Se você passarfalse, o serviço Output gera um único documento PDF que contém todos os registros). - Defina a opção Arquivo URI chamando o
PDFOutputOptionsSpecdo objetosetFileUrie transmitindo um valor de string que especifica o local dos arquivos gerados pelo serviço de saída. A opção File URI é relativa ao servidor de aplicativos J2EE que hospeda o AEM Forms, não ao computador cliente. - Defina a opção Nome do Registro chamando a
OutputOptionsSpecdo objetosetRecordNamee transmitindo um valor de string que especifica o nome do elemento XML na fonte de dados que separa os registros de dados. (Por exemplo, considere a fonte de dados XML mostrada anteriormente nesta seção. O nome do elemento XML que separa os registros de dados é LoanRecord).
- Crie um
-
Definir opções de tempo de execução de renderização
- Crie um
RenderOptionsSpecusando seu construtor. - Armazene em cache o design de formulário para melhorar o desempenho do serviço de saída, chamando a função
RenderOptionsSpecdo objetosetCacheEnablede transmitindo umaBooleanvalor detrue.
- Crie um
-
Gerar vários arquivos PDF
Gere vários arquivos PDF chamando o
OutputClientdo objetogeneratePDFOutpute transmitindo os seguintes valores:- A
TransformationFormatvalor de enum. Para gerar um documento PDF, especifiqueTransformationFormat.PDF. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica a raiz de conteúdo na qual o design de formulário está localizado.
- A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
com.adobe.idp.Documentobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário.
O
generatePDFOutputretorna um métodoOutputResultque contém os resultados da operação. - A
-
Recuperar os resultados da operação
- Crie um
java.io.Fileobjeto que representa um arquivo XML que conterá os resultados da variávelgeneratePDFOutputmétodo . Certifique-se de que a extensão do nome de arquivo seja .xml. - Chame o
com.adobe.idp.Documentdo objetocopyToFilepara copiar o conteúdo dacom.adobe.idp.Documentpara o arquivo (certifique-se de usar a variávelcom.adobe.idp.Documentobjeto retornado peloapplyUsageRightsmétodo ).
- Crie um
Consulte também
Início rápido (modo EJB): Criação de vários arquivos PDF usando a API Java
Criar vários arquivos PDF usando a API do serviço da Web create-multiple-pdf-files-using-the-web-service-api
Crie vários arquivos PDF usando a API de saída (serviço da Web):
-
Inclua arquivos de projeto.
Crie um projeto Microsoft .NET que use MTOM. Certifique-se de usar a seguinte definição de WSDL:
http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.note note NOTE Substituir localhostcom o endereço IP do servidor que hospeda a AEM Forms. -
Crie um objeto de Cliente de saída.
-
Crie um
OutputServiceClientusando seu construtor padrão. -
Crie um
OutputServiceClient.Endpoint.Addressusando oSystem.ServiceModel.EndpointAddressconstrutor. Passe um valor de string que especifica o WSDL para o serviço do AEM Forms (por exemplo,http://localhost:8080/soap/services/OutputService?blob=mtom.) Não é necessário usar a variávellc_versionatributo. Esse atributo é usado ao criar uma referência de serviço. No entanto, especifique?blob=mtompara usar MTOM. -
Crie um
System.ServiceModel.BasicHttpBindingobtendo o valor da variávelOutputServiceClient.Endpoint.Bindingcampo. Converta o valor de retorno paraBasicHttpBinding. -
Defina as
System.ServiceModel.BasicHttpBindingdo objetoMessageEncodingcampo paraWSMessageEncoding.Mtom. Esse valor garante que o MTOM seja usado. -
Ative a autenticação HTTP básica executando as seguintes tarefas:
- Atribuir o nome de usuário dos formulários AEM ao campo
OutputServiceClient.ClientCredentials.UserName.UserName. - Atribua o valor correspondente da senha ao campo
OutputServiceClient.ClientCredentials.UserName.Password. - Atribuir o valor constante
HttpClientCredentialType.Basicao campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Atribuir o valor constante
BasicHttpSecurityMode.TransportCredentialOnlyao campoBasicHttpBindingSecurity.Security.Mode.
- Atribuir o nome de usuário dos formulários AEM ao campo
-
-
Faça referência a uma fonte de dados XML.
- Crie um
BLOBusando seu construtor. OBLOBé usado para armazenar dados de formulário que contêm vários registros. - Crie um
System.IO.FileStreamchamando seu construtor. Passe um valor de string que representa o local do arquivo XML que contém vários registros. - Crie uma matriz de bytes que armazene o conteúdo da variável
System.IO.FileStreamobjeto. Você pode determinar o tamanho da matriz de bytes obtendo a variávelSystem.IO.FileStreamdo objetoLengthpropriedade. - Preencha a matriz de bytes com dados de fluxo chamando a variável
System.IO.FileStreamdo objetoReade transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo a ser lido. - Preencha o
BLOBao atribuir seuMTOMcom o conteúdo da matriz de bytes.
- Crie um
-
Defina as opções de tempo de execução do PDF.
- Crie um
PDFOutputOptionsSpecusando seu construtor. - Defina a opção Muitos arquivos atribuindo um valor booleano à variável
OutputOptionsSpecdo objetogenerateManyFilesmembro de dados. Por exemplo, atribua o valortruepara esse membro de dados instruir o Serviço de saída a criar um arquivo PDF separado para cada registro na fonte de dados XML. (Se você atribuirfalsepara esse membro de dados, o serviço de Saída gera um único PDF que contém todos os registros). - Defina a opção URI do arquivo atribuindo um valor de string que especifica o local dos arquivos gerados pelo serviço de saída para a variável
OutputOptionsSpecdo objetofileURImembro de dados. A opção File URI é relativa ao servidor de aplicativos J2EE que hospeda o AEM Forms, não ao computador cliente. - Defina a opção de nome de registro atribuindo um valor de string que especifica o nome do elemento XML na fonte de dados que separa os registros de dados para a variável
OutputOptionsSpecdo objetorecordNamemembro de dados. - Defina a opção de cópias atribuindo um valor inteiro que especifique o número de cópias geradas pelo serviço de Saída para a variável
OutputOptionsSpecdo objetocopiesmembro de dados.
- Crie um
-
Defina as opções de tempo de execução da renderização.
- Crie um
RenderOptionsSpecusando seu construtor. - Armazene em cache o design de formulário para melhorar o desempenho do serviço de Saída atribuindo o valor
trueparaRenderOptionsSpecdo objetocacheEnabledmembro de dados.
- Crie um
-
Gere vários arquivos PDF.
Crie vários arquivos PDF chamando o
OutputServiceServicedo objetogeneratePDFOutpute transmitindo os seguintes valores:- Um valor enum TransformationFormat. Para gerar um documento PDF, especifique
TransformationFormat.PDF. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica a raiz de conteúdo na qual o design de formulário está localizado.
- A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
BLOBobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário. - A
BLOBque é preenchido pela variávelgeneratePDFOutputmétodo . OgeneratePDFOutputO método preenche este objeto com metadados gerados que descrevem o documento. - A
BLOBque é preenchido pela variávelgeneratePDFOutputmétodo . OgeneratePDFOutputO método preenche esse objeto com dados de resultado. - Um
OutputResultque contém os resultados da operação.
- Um valor enum TransformationFormat. Para gerar um documento PDF, especifique
-
Recuperar os resultados da operação
- Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que representa um local de arquivo XML que contém dados de resultado. Certifique-se de que a extensão do nome de arquivo seja .xml. - Crie uma matriz de bytes que armazene o conteúdo de dados do
BLOBobjeto que foi preenchido com dados de resultado pela variávelOutputServiceServicedo objetogeneratePDFOutputmétodo (o oitavo parâmetro). Preencha a matriz de bytes obtendo o valor da variávelBLOBdo objetobinaryDatamembro de dados. - Crie um
System.IO.BinaryWriterchamando seu construtor e passando oSystem.IO.FileStreamobjeto. - Escreva o conteúdo da matriz de bytes no arquivo XML chamando o
System.IO.BinaryWriterdo objetoWritee transmitindo a matriz de bytes.
- Crie um
Consulte também
Criando regras de pesquisa creating-search-rules
Você pode criar regras de pesquisa que resultam no serviço de saída examinando dados de entrada e usando diferentes designs de formulário com base no conteúdo de dados para gerar saída. Por exemplo, se o texto hipoteca estiver localizado nos dados de entrada, o serviço de Saída poderá usar um design de formulário chamado Mortgauge.xdp. Da mesma forma, se o texto automóvel estiver localizado nos dados de entrada, o serviço de Saída poderá usar um design de formulário salvo como AutomobileLoan.xdp. Embora o serviço de Saída possa gerar diferentes tipos de saída, esta seção assume que o serviço de Saída gera um arquivo PDF. O diagrama a seguir mostra o serviço de Saída gerando um arquivo PDF processando um arquivo de dados XML e usando um de muitos designs de formulário.
Além disso, o Serviço de saída é capaz de gerar pacotes de documentos, onde vários registros são fornecidos no conjunto de dados e cada registro corresponde a um design de formulário e um único documento é gerado composto de vários designs de formulário.
Resumo das etapas summary_of_steps-8
Para instruir o serviço de Saída a usar regras de pesquisa ao gerar um documento, execute as seguintes etapas:
- Inclua arquivos de projeto.
- Crie um objeto de Cliente de saída.
- Faça referência a uma fonte de dados XML.
- Defina as regras de pesquisa.
- Defina as opções de tempo de execução do PDF.
- Defina as opções de tempo de execução da renderização.
- Gere um documento PDF.
- Recupere os resultados da operação.
Incluir arquivos de projeto
Inclua os arquivos necessários no seu projeto de desenvolvimento. Se você estiver criando um aplicativo cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, certifique-se de incluir os arquivos proxy.
Os seguintes arquivos JAR devem ser adicionados ao classpath do seu projeto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-output-client.jar
- adobe-utilities.jar (obrigatório se o AEM Forms estiver implantado no JBoss)
- jbossall-client.jar (obrigatório se o AEM Forms for implantado no JBoss)
se o AEM Forms for implantado em um servidor de aplicativos J2EE compatível que não seja JBoss, será necessário substituir adobe-utilities.jar e jbossall-client.jar por arquivos JAR específicos do servidor de aplicativos J2EE no qual o AEM Forms é implantado.
Criar um objeto de cliente de saída
Antes de poder executar programaticamente uma operação do Serviço de saída, é necessário criar um objeto cliente do Serviço de saída.
Referência a uma fonte de dados XML
Um elemento XML deve existir para cada campo de formulário que você deseja preencher com dados. O nome do elemento XML deve corresponder ao nome do campo. Um elemento XML é ignorado se não corresponder a um campo de formulário ou se o nome do elemento XML não corresponder ao nome do campo. Não é necessário corresponder à ordem em que os elementos XML são exibidos, desde que todos os elementos XML sejam especificados.
Definir regras de pesquisa
Para definir regras de pesquisa, defina um ou mais padrões de texto que os Serviços de saída pesquisam nos dados de entrada. Para cada padrão de texto definido, especifique um design de formulário correspondente que será usado se o padrão de texto estiver localizado. Se um padrão de texto estiver localizado, o serviço Saída usará o design de formulário correspondente para gerar a saída. Um exemplo de padrão de texto é hipoteca.
Definir opções de tempo de execução PDF
Defina as seguintes opções de tempo de execução do PDF para que o serviço de Saída crie com êxito um documento do PDF com base em vários designs de formulário:
- URI do arquivo: Especifica o nome e o local do arquivo PDF gerado pelo serviço de saída.
- Regras: Especifica as regras que você definiu.
- LookAHead: Especifica o número de bytes a serem usados a partir do início do arquivo de dados de entrada para verificar os padrões de texto definidos. O padrão é 500 bytes.
Definir opções de tempo de execução de renderização
Você pode definir opções de tempo de execução de renderização ao criar arquivos PDF. Embora essas opções não sejam necessárias (ao contrário das opções de tempo de execução de PDF), é possível executar tarefas como melhorar o desempenho do serviço de Saída. Por exemplo, é possível armazenar em cache o design de formulário que o serviço de saída usa para melhorar o desempenho.
Gerar um documento PDF
Depois de fazer referência a uma fonte de dados XML válida e definir opções de tempo de execução, você pode chamar o serviço de Saída, resultando na geração de um documento PDF. Se o serviço Saída localizar um padrão de texto especificado nos dados de entrada, ele usará o design de formulário correspondente. Se um padrão de texto não for usado, o serviço Saída usará o design de formulário padrão.
Recuperar os resultados da operação
Depois que o serviço de saída executa uma operação, ele retorna dados XML que especificam se a operação foi bem-sucedida.
Consulte também
Inclusão de arquivos da biblioteca Java do AEM Forms
Criar regras de pesquisa usando a API do Java create-search-rules-using-the-java-api
Crie regras de pesquisa usando a API de saída (Java):
-
Inclua arquivos de projeto.
Inclua arquivos JAR do cliente, como adobe-output-client.jar, no caminho de classe do seu projeto Java.
-
Crie um objeto de Cliente de saída.
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Faça referência a uma fonte de dados XML.
- Crie um
java.io.FileInputStreamobjeto que representa a fonte de dados XML usada para preencher o documento PDF usando seu construtor e transmitindo um valor de string que especifica o local do arquivo XML. - Crie um
com.adobe.idp.Documentusando seu construtor e passando ojava.io.FileInputStreamobjeto.
- Crie um
-
Defina as regras de pesquisa.
- Crie um
Ruleusando seu construtor. - Defina um padrão de texto chamando a função
Ruledo objetosetPatterne transmitindo um valor de string que especifica um padrão de texto. - Defina o design de formulário correspondente chamando a função
Ruledo objetosetFormmétodo . Passe um valor de string que especifica o nome do design de formulário.
note note NOTE Para cada padrão de texto que você deseja definir, repita as três subetapas anteriores. - Crie um
java.util.Listusando umjava.util.ArrayListconstrutor. - Para cada
Ruleobjeto criado, chame ojava.util.Listdo objetoadde passe oRuleobjeto.
- Crie um
-
Defina as opções de tempo de execução do PDF.
- Crie um
PDFOutputOptionsSpecusando seu construtor. - Especifique o nome e o local do arquivo de PDF que o serviço de saída gera, chamando a função
PDFOutputOptionsSpecdo objetosetFileURImétodo . Passe um valor de string que especifica o local do arquivo PDF. A opção File URI é relativa ao servidor de aplicativos J2EE que hospeda o AEM Forms, não ao computador cliente. - Defina as regras que você definiu chamando a variável
PDFOutputOptionsSpecdo objetosetRulesmétodo . Passe ojava.util.Listobjeto que contém a variávelRuleobjetos. - Defina o número de bytes para verificar os padrões de texto definidos chamando a função
PDFOutputOptionsSpecdo objetosetLookAheadmétodo . Passe um valor inteiro que representa os números de bytes.
- Crie um
-
Defina as opções de tempo de execução da renderização.
- Crie um
RenderOptionsSpecusando seu construtor. - Armazene em cache o design de formulário para melhorar o desempenho do serviço de Saída, chamando a função
RenderOptionsSpecdo objetosetCacheEnablede a passagemtrue.
- Crie um
-
Gere um documento PDF.
Gere um documento do PDF baseado em vários designs de formulário, chamando o
OutputClientdo objetogeneratePDFOutpute transmitindo os seguintes valores:- A
TransformationFormatvalor de enumeração. Para gerar um documento PDF, especifiqueTransformationFormat.PDF. - Um valor de string que especifica o nome do design de formulário padrão. Ou seja, o design de formulário usado se um padrão de texto não estiver localizado.
- Um valor de string que especifica a raiz de conteúdo na qual os designs de formulário estão localizados.
- A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
com.adobe.idp.Documentobjeto que contém os dados de formulário pesquisados pelo serviço de saída para os padrões de texto definidos.
O
generatePDFOutputretorna um métodoOutputResultque contém os resultados da operação. - A
-
Recupere os resultados da operação.
- Crie um
com.adobe.idp.Documentobjeto que representa o status dogeneratePDFOutputchamando o métodoOutputResultdo objetogetStatusDocmétodo . - Crie um
java.io.Fileque conterá os resultados da operação. Certifique-se de que a extensão do arquivo seja .xml. - Chame o
com.adobe.idp.Documentdo objetocopyToFilepara copiar o conteúdo dacom.adobe.idp.Documentpara o arquivo (certifique-se de usar a variávelcom.adobe.idp.Documentobjeto retornado pelogetStatusDocmétodo ).
- Crie um
Consulte também
Início rápido (modo EJB): Criação de regras de pesquisa usando a API do Java
Início rápido (modo SOAP): Criação de regras de pesquisa usando a API do Java
Criar regras de pesquisa usando a API de serviço da Web create-search-rules-using-the-web-service-api
Crie regras de pesquisa usando a API de saída (serviço da Web):
-
Inclua arquivos de projeto.
Crie um projeto Microsoft .NET que use MTOM. Certifique-se de usar a seguinte definição de WSDL:
http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.note note NOTE Substituir localhostcom o endereço IP do servidor que hospeda a AEM Forms. -
Crie um objeto de Cliente de saída.
-
Crie um
OutputServiceClientusando seu construtor padrão. -
Crie um
OutputServiceClient.Endpoint.Addressusando oSystem.ServiceModel.EndpointAddressconstrutor. Passe um valor de string que especifica o WSDL para o serviço do AEM Forms (por exemplo,http://localhost:8080/soap/services/OutputService?blob=mtom.) Não é necessário usar a variávellc_versionatributo. Esse atributo é usado ao criar uma referência de serviço. No entanto, especifique?blob=mtompara usar MTOM. -
Crie um
System.ServiceModel.BasicHttpBindingobtendo o valor da variávelOutputServiceClient.Endpoint.Bindingcampo. Converta o valor de retorno paraBasicHttpBinding. -
Defina as
System.ServiceModel.BasicHttpBindingdo objetoMessageEncodingcampo paraWSMessageEncoding.Mtom. Esse valor garante que o MTOM seja usado. -
Ative a autenticação HTTP básica executando as seguintes tarefas:
- Atribuir o nome de usuário dos formulários AEM ao campo
OutputServiceClient.ClientCredentials.UserName.UserName. - Atribua o valor correspondente da senha ao campo
OutputServiceClient.ClientCredentials.UserName.Password. - Atribuir o valor constante
HttpClientCredentialType.Basicao campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Atribuir o valor constante
BasicHttpSecurityMode.TransportCredentialOnlyao campoBasicHttpBindingSecurity.Security.Mode.
- Atribuir o nome de usuário dos formulários AEM ao campo
-
-
Faça referência a uma fonte de dados XML.
- Crie um
BLOBusando seu construtor. OBLOBé usado para armazenar dados que serão unidos ao documento PDF. - Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que representa o local do arquivo do documento do PDF a ser criptografado e o modo no qual abrir o arquivo. - Crie uma matriz de bytes que armazene o conteúdo da variável
System.IO.FileStreamobjeto. Você pode determinar o tamanho da matriz de bytes obtendo a variávelSystem.IO.FileStreamdo objetoLengthpropriedade. - Preencha a matriz de bytes com dados de fluxo chamando a variável
System.IO.FileStreamdo objetoReade transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo a ser lido. - Preencha o
BLOBao atribuir seuMTOMcom o conteúdo da matriz de bytes.
- Crie um
-
Defina as regras de pesquisa.
- Crie um
Ruleusando seu construtor. - Defina um padrão de texto atribuindo um valor de string que especifique um padrão de texto para a variável
Ruledo objetopatternmembro de dados. - Defina o design de formulário correspondente atribuindo um valor de string que especifica o design de formulário para a variável
Ruledo objetoformmembro de dados.
note note NOTE Para cada padrão de texto que você deseja definir, repita as três subetapas anteriores. - Crie um
MyArrayOf_xsd_anyTypeque armazena as regras. - Atribuir cada
Rulepara um elemento da variávelMyArrayOf_xsd_anyTypematriz. Chame oMyArrayOf_xsd_anyTypedo objetoAddmétodo para cadaRuleobjeto.
- Crie um
-
Definir opções de tempo de execução PDF
- Crie um
PDFOutputOptionsSpecusando seu construtor. - Defina a opção URI do arquivo atribuindo um valor de string que especifica o local do arquivo de PDF que o serviço de saída gera para a variável
PDFOutputOptionsSpecdo objetofileURImembro de dados. A opção File URI é relativa ao servidor de aplicativos J2EE que hospeda o AEM Forms, não ao computador cliente. - Defina a opção de cópias atribuindo um valor inteiro que especifique o número de cópias geradas pelo serviço de Saída para a variável
PDFOutputOptionsSpecdo objetocopiesmembro de dados. - Defina as regras definidas atribuindo a variável
MyArrayOf_xsd_anyTypeque armazena as regras para aPDFOutputOptionsSpecdo objetorulesmembro de dados. - Defina o número de bytes para verificar os padrões de texto definidos, atribuindo um valor inteiro que representa os números de bytes a serem verificados na variável
PDFOutputOptionsSpecdo objetolookAheadmétodo de dados.
- Crie um
-
Definir opções de tempo de execução de renderização
- Crie um
RenderOptionsSpecusando seu construtor. - Armazene em cache o design de formulário para melhorar o desempenho do serviço de Saída atribuindo o valor
trueparaRenderOptionsSpecdo objetocacheEnabledmembro de dados.
note note NOTE Não é possível definir a versão do documento do PDF usando o RenderOptionsSpecdo objetopdfVersionmembro se o documento de entrada for um formulário Acrobat. O documento PDF de saída retém a versão PDF do formulário Acrobat. Da mesma forma, não é possível definir a opção de PDF marcado usando oRenderOptionsSpecdo objetotaggedPDFse o documento de entrada for um formulário Acrobat.note note NOTE Não é possível definir a opção PDF linearizado usando o RenderOptionsSpecdo objetolinearizedPDFmembro se o documento PDF de entrada for certificado ou assinado digitalmente. Para obter mais informações, consulte Assinar documentos do PDF digitalmente. - Crie um
-
Gerar um documento PDF
Crie um documento do PDF chamando o
OutputServiceServicedo objetogeneratePDFOutpute transmitindo os seguintes valores:- A
TransformationFormatvalor de enumeração. Para gerar um documento PDF, especifiqueTransformationFormat.PDF. - Um valor de string que especifica o nome do design de formulário.
- Um valor de string que especifica a raiz de conteúdo na qual o design de formulário está localizado.
- A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
BLOBobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário. - A
BLOBque é preenchido pela variávelgeneratePDFOutputmétodo . OgeneratePDFOutputO método preenche este objeto com metadados gerados que descrevem o documento. (Esse valor de parâmetro é necessário somente para a invocação do serviço da Web). - A
BLOBque é preenchido pela variávelgeneratePDFOutputmétodo . OgeneratePDFOutputO método preenche esse objeto com dados de resultado. (Esse valor de parâmetro é necessário somente para a invocação do serviço da Web). - Um
OutputResultque contém os resultados da operação. (Esse valor de parâmetro é necessário somente para a invocação do serviço da Web).
note note NOTE Ao gerar um documento PDF chamando o generatePDFOutputesteja ciente de que não é possível mesclar dados com um formulário PDF XFA assinado, certificado ou contendo direitos de uso. Para obter informações sobre direitos de uso, consulte Aplicação de direitos de uso a documentos do PDF. - A
-
Recuperar os resultados da operação
- Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que representa um local de arquivo XML que contém dados de resultado. Certifique-se de que a extensão do arquivo seja XML. - Crie uma matriz de bytes que armazene o conteúdo de dados do
BLOBobjeto que foi preenchido com dados de resultado pela variávelOutputServiceServicedo objetogeneratePDFOutputmétodo (o oitavo parâmetro). Preencha a matriz de bytes obtendo o valor da variávelBLOBdo objetoMTOMmembro de dados. - Crie um
System.IO.BinaryWriterchamando seu construtor e passando oSystem.IO.FileStreamobjeto. - Escreva o conteúdo da matriz de bytes no arquivo XML chamando o
System.IO.BinaryWriterdo objetoWritee transmitindo a matriz de bytes.
- Crie um
Consulte também
Nivelar documentos do PDF flattening-pdf-documents
Você pode usar o Serviço de saída para transformar um documento PDF interativo em um PDF não interativo. Um documento PDF interativo permite que os usuários insiram ou modifiquem dados que estejam nos campos do documento do PDF. O processo de transformação de um documento PDF interativo em um documento PDF não interativo é chamado nivelamento. Quando um documento PDF é nivelado, um usuário não pode modificar os dados nos campos do documento. Um motivo para nivelar um documento PDF é garantir que os dados não possam ser modificados.
Você pode nivelar os seguintes tipos de documentos PDF:
- Documentos de PDF XFA interativos
- Acrobat Forms
Tentar nivelar um PDF que é um documento PDF não interativo causa uma exceção.
Resumo das etapas summary_of_steps-9
Para nivelar um documento PDF interativo em um documento PDF não interativo, execute as seguintes etapas:
- Inclua arquivos de projeto.
- Crie um objeto de Cliente de saída.
- Recupere um documento PDF interativo.
- Transforme o documento PDF.
- Salve o documento PDF não interativo como um arquivo PDF.
Incluir arquivos de projeto
Inclua os arquivos necessários no projeto de desenvolvimento. Se você estiver criando um aplicativo cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, certifique-se de incluir os arquivos proxy.
Os seguintes arquivos JAR devem ser adicionados ao caminho de classe do seu projeto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-output-client.jar
- adobe-utilities.jar (necessário se o AEM Forms estiver implantado no JBoss)
- jbossall-client.jar (obrigatório se o AEM Forms for implantado no JBoss)
se o AEM Forms for implantado em um servidor de aplicativos J2EE compatível que não seja JBoss, será necessário substituir os arquivos adobe-utilities.jar e jbossall-client.jar por arquivos JAR específicos do servidor de aplicativos J2EE no qual o AEM Forms é implantado. Para obter informações sobre a localização de todos os arquivos AEM Forms JAR, consulte Inclusão de arquivos da biblioteca Java do AEM Forms.
Criar um objeto de cliente de saída
Antes de poder executar programaticamente uma operação do Serviço de saída, é necessário criar um objeto cliente do Serviço de saída. Se estiver usando a API do Java, crie um OutputClient objeto. Se estiver usando a API de serviço da Web de saída, crie um OutputServiceService objeto.
Recuperar um documento de PDF interativo
Recupere um documento de PDF interativo que você deseja transformar em um documento de PDF não interativo. Tentar transformar um documento PDF não interativo causa uma exceção.
Transformar o documento PDF
Depois de recuperar um documento PDF interativo, você pode transformá-lo em um documento PDF não interativo. O serviço de saída retorna um documento PDF não interativo.
Salve o documento PDF não interativo como um arquivo PDF.
Você pode salvar o documento PDF não interativo como um arquivo PDF.
Consulte também
Nivele um documento do PDF usando a API do Java
Nivelar um documento do PDF usando a API do serviço da Web
Inclusão de arquivos da biblioteca Java do AEM Forms
Nivele um documento do PDF usando a API do Java flatten-a-pdf-document-using-the-java-api
Nivele um documento PDF interativo em um documento PDF não interativo usando a API de saída (Java):
-
Inclua arquivos de projeto.
Inclua arquivos JAR do cliente, como adobe-output-client.jar, no caminho de classe do seu projeto Java.
-
Crie um objeto de Cliente de saída.
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Recupere um documento PDF interativo.
- Crie um
java.io.FileInputStreamobjeto que representa o documento PDF interativo a ser transformado usando seu construtor e transmitindo um valor de string que especifica o local do arquivo PDF interativo. - Crie um
com.adobe.idp.Documentusando seu construtor e passando ojava.io.FileInputStreamobjeto.
- Crie um
-
Transforme o documento PDF.
Transforme o documento PDF interativo em um documento PDF não interativo, chamando o
OutputServiceServicedo objetotransformPDFe transmitindo os seguintes valores:- O
com.adobe.idp.Documentobjeto que contém o documento PDF interativo. - A
TransformationFormatvalor de enum. Para gerar um documento PDF não interativo, especifiqueTransformationFormat.PDF. - A
PDFARevisionNumbervalor enum que especifica o número da revisão. Como esse parâmetro se destina a um documento PDF/A, você pode especificarnull. - Um valor de string que representa o número e o ano da alteração, separados por dois pontos. Como esse parâmetro se destina a um documento PDF/A, você pode especificar
null. - A
PDFAConformancevalor enum que representa o nível de conformidade PDF/A. Como esse parâmetro se destina a um documento PDF/A, você pode especificarnull.
O
transformPDFmétodo retorna umcom.adobe.idp.Documentobjeto que contém um documento PDF não interativo. - O
-
Salve o documento PDF não interativo como um arquivo PDF.
- Crie um
java.io.Filee verifique se a extensão do nome do arquivo é .pdf. - Chame o
Documentdo objetocopyToFilepara copiar o conteúdo daDocumentpara o arquivo (certifique-se de usar a variávelDocumentobjeto retornado pelotransformPDFmétodo ).
- Crie um
Consulte também
Início rápido (modo EJB): Transformar um documento do PDF usando a API do Java
Início rápido (modo SOAP): Transformar um documento do PDF usando a API do Java
Nivelar um documento do PDF usando a API do serviço da Web flatten-a-pdf-document-using-the-web-service-api
Nivele um documento PDF interativo em um documento PDF não interativo usando a API de saída (serviço da Web):
-
Inclua arquivos de projeto.
Crie um projeto Microsoft .NET que use MTOM. Certifique-se de usar a seguinte definição de WSDL:
http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.note note NOTE Substituir localhostcom o endereço IP do servidor que hospeda a AEM Forms. -
Crie um objeto de Cliente de saída.
-
Crie um
OutputServiceClientusando seu construtor padrão. -
Crie um
OutputServiceClient.Endpoint.Addressusando oSystem.ServiceModel.EndpointAddressconstrutor. Passe um valor de string que especifica o WSDL para o serviço do AEM Forms (por exemplo,http://localhost:8080/soap/services/OutputService?blob=mtom.) Não é necessário usar a variávellc_versionatributo. Esse atributo é usado ao criar uma referência de serviço. No entanto, especifique?blob=mtompara usar MTOM. -
Crie um
System.ServiceModel.BasicHttpBindingobtendo o valor da variávelOutputServiceClient.Endpoint.Bindingcampo. Converta o valor de retorno paraBasicHttpBinding. -
Defina as
System.ServiceModel.BasicHttpBindingdo objetoMessageEncodingcampo paraWSMessageEncoding.Mtom. Esse valor garante que o MTOM seja usado. -
Ative a autenticação HTTP básica executando as seguintes tarefas:
- Atribuir o nome de usuário dos formulários AEM ao campo
OutputServiceClient.ClientCredentials.UserName.UserName. - Atribua o valor correspondente da senha ao campo
OutputServiceClient.ClientCredentials.UserName.Password. - Atribuir o valor constante
HttpClientCredentialType.Basicao campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Atribuir o valor constante
BasicHttpSecurityMode.TransportCredentialOnlyao campoBasicHttpBindingSecurity.Security.Mode.
- Atribuir o nome de usuário dos formulários AEM ao campo
-
-
Recupere um documento PDF interativo.
- Crie um
BLOBusando seu construtor. OBLOBé usado para armazenar o documento PDF interativo. - Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que representa o local do arquivo do documento PDF interativo. - Crie uma matriz de bytes que armazene o conteúdo da variável
System.IO.FileStreamobjeto. Você pode determinar o tamanho da matriz de bytes obtendo a variávelSystem.IO.FileStreamdo objetoLengthpropriedade. - Preencha a matriz de bytes com dados de fluxo chamando a variável
System.IO.FileStreamdo objetoReade transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo a ser lido. - Preencha o
BLOBao atribuir seuMTOMcom o conteúdo da matriz de bytes.
- Crie um
-
Transforme o documento PDF.
Transforme o documento PDF interativo em um documento PDF não interativo, chamando o
OutputClientdo objetotransformPDFe transmitindo os seguintes valores:- A
BLOBobjeto que contém o documento PDF interativo. - A
TransformationFormatvalor de enumeração. Para gerar um documento PDF não interativo, especifiqueTransformationFormat.PDF. - A
PDFARevisionNumbervalor enum que especifica o número da revisão. - Um valor booleano que especifica se a variável
PDFARevisionNumbero valor enum é usado. Como esse parâmetro se destina a um documento PDF/A, você pode especificarfalse. - Um valor de string que representa o número e o ano da alteração, separados por dois pontos. Como esse parâmetro se destina a um documento PDF/A, você pode especificar
null. - A
PDFAConformancevalor enum que representa o nível de conformidade PDF/A. - Valor booleano que especifica se a variável
PDFAConformanceo valor enum é usado. Como esse parâmetro se destina a um documento PDF/A, você pode especificarfalse.
O
transformPDFmétodo retorna umBLOBobjeto que contém um documento PDF não interativo. - A
-
Salve o documento PDF não interativo como um arquivo PDF.
- Crie um
System.IO.FileStreamchamando seu construtor e passando um valor de string que representa o local do arquivo do documento PDF não interativo. - Crie uma matriz de bytes que armazene o conteúdo de dados do
BLOBobjeto retornado pelotransformPDFmétodo . Preencha a matriz de bytes obtendo o valor da variávelBLOBdo objetoMTOMmembro de dados. - Crie um
System.IO.BinaryWriterchamando seu construtor e passando oSystem.IO.FileStreamobjeto. - Escreva o conteúdo da matriz de bytes em um arquivo PDF chamando o
System.IO.BinaryWriterdo objetoWritee transmitindo a matriz de bytes.
- Crie um
Consulte também
Chamar o AEM Forms usando MTOM
Chamar o AEM Forms usando SwaRef