Desenvolver o Aplicativo Web
O desenvolvimento de um aplicativo Web exige a conclusão destas tarefas:
- Crie um Aplicativo do Visual Builder.
- Crie um Novo aplicativo Web.
- Inclua a biblioteca externa.
- Crie uma interface de usuário.
- Atualize o documento PDF carregado.
- Crie um novo documento PDF.
- Faça download do arquivo PDF.
Criar um Aplicativo do Visual Builder
Um aplicativo Visual Builder é um conjunto de recursos que você usa para desenvolver aplicativos web e móveis. Um aplicativo Visual Builder inclui metadados em arquivos JSON que descrevem origens de dados e objetos de negócios. Também inclui arquivos HTML e JavaScript para aplicativos web e móveis.
- :Na home page Aplicativos Visuais, clique em Novo.
- Na caixa de diálogo Criar Aplicativo, digite o nome do aplicativo. O campo ID do Aplicativo é preenchido automaticamente com base no nome do aplicativo fornecido.
- Você pode modificar o ID do aplicativo, se necessário, mas o ID deve ser exclusivo no domínio de identidades.
- Deixe a seleção padrão do Aplicativo Vazio inalterada. Este modelo não cria artefatos, aplicativos ou outros recursos.
- Clique em Concluir.
Um novo aplicativo Visual Builder é aberto automaticamente depois que você o cria e exibe a tela de Boas-vindas. O novo aplicativo não conterá artefatos, mas o assistente criará, por padrão, a estrutura de arquivos do aplicativo e alguns recursos e arquivos necessários.
Criar um Novo Aplicativo Web
Os aplicativos web no seu aplicativo Visual Builder são independentes entre si, mas todos eles podem usar as origens de dados definidas no aplicativo.
Incluir Bibliotecas Externas
Para gerar, modificar e fazer download de um documento PDF, conforme especificado em "Antes de Começar", você precisa incluir duas bibliotecas externas: pdf-lib
e downloadj
.
pdf-lib
, gerencia o documento PDF.downloadj
, faz download do documento PDF que foi gerado.
index.html
:
<script src="https://unpkg.com/pdf-lib@1.4.0"></script>
<script src="https://unpkg.com/downloadjs@1.4.7"></script>
Criar uma Interface do Usuário
Agora, você cria uma interface de usuário. Essa interface deve conter componentes como contêineres, cabeçalhos, botões, campos de texto, código JavaScript e código HTML e permitirá que os usuários:
- Carregue um arquivo.
- Digite um texto de campo que aparecerá no documento PDF.
- Clique em um botão para atualizar o documento PDF carregado com o texto informado.
- Clique em um botão para criar um novo documento PDF que contenha o texto inserido.
- Clique em um botão para fazer download do documento preparado.
Arrastar e Soltar o Arquivo e Exibir o Documento PDF
Primeiro, você precisa arrastar e soltar componentes essenciais na IU que está criando.
Exibir o Arquivo PDF Carregado na Tela Página Principal
No HTML de origem da página principal, adicione um objeto com sua origem a variável de página atribuída anteriormente fileURL
. Adicione o objeto fileURL
à página HTML principal. Nesse estágio, o aplicativo pode carregar e exibir um arquivo PDF.
Atribua a Saída da Função addPDFDocument às Variáveis de Página fileURL e holdFile
Atribua o URL e os dados das propriedades da função addPDFDocument
retornados às variáveis de página fileURL
e holdFile
, respectivamente.
Atribua a Variável de Entrada da Função addPDFDocument
Na GUI, designe a variável de arquivo carregada ao parâmetro arg1
da função.
Criar função addPDFDocument
addPDFDocument
no nível da página. O aplicativo receberá um parâmetro de entrada. A função instanciará uma variável de URL com base no parâmetro do arquivo de entrada e lerá o documento carregado e o converterá em uma string base64. Você pode usar este exemplo de código para definir a função:
PageModule.prototype.addPDFDocument = function(arg1) {
return new Promise(
resolve=>{
const blobURL = URL.createObjectURL(arg1);
const reader = new FileReader();
reader.addEventListener("load", function () {
// convert image file to base64 string
resolve({ data: reader.result, url: blobURL });
}, false);
if (arg1) {
reader.readAsDataURL(arg1);
}
}
);
};
Atualizar Documento PDF Carregado
Na paleta de componentes, arraste e solte no designer de páginas um componente Campo de Texto e, abaixo dele, um novo botão.
- Crie uma variável de página
textIncludedIntoPDF
para armazenar o conteúdo do campo de texto. Essa variável inserirá o conteúdo e atualizará o documento em PDF com ela. - Atribua esta variável ao componente Texto de Entrada.
Atualizar e Exibir PDF
update_display_pdf
.
Crie a Função UpdatePDF
Em seguida, crie a função JavaScript createUpdatePDF
. Esta é uma função assíncrona com dois parâmetros de entrada (o documento PDF carregado e o texto que o usuário digitou anteriormente na página principal). Ela retorna uma matriz de bytes.
Exibir o Documento PDF Atualizado
O resultado da função UpdatePDF
será atribuído à variável de página temporária tmpPDFBytes
. Após essa designação, uma função JavaScript receberá o array de byte base64 e instanciará uma nova entidade blob desse array de byte. Finalmente, a função criará e retornará um URL correspondente a este documento PDF.
PageModule.prototype.displayPDFDocument = function (arg1) {
const bytes = new Uint8Array( arg1 );
// create a new blobfrom the byte array with type of application: pdf
const blob = new Blob( [ bytes ], { type: "application/pdf" } );
// create the url of the generated blob entity
const newdocURL = URL.createObjectURL(blob);
// return the updated pdf's url
return newdocURL;
};
A saída desta função será atribuída à variável de página fileURL
, que será usada para exibir o documento PDF atualizado na página.
Neste ponto, o aplicativo está pronto para fazer upload de um documento PDF, modificá-lo com o texto que o usuário inseriu no campo de texto da tela e, em seguida, exibir o documento PDF atualizado na tela.
Criar um Novo Documento PDF
Criar e Exibir Documento
Crie um novo evento para definir a ação iniciada pelo botão Criar novo PDF. O evento criará uma nova cadeia de ações com o label create_display_pdf
.
A nova cadeia de ação usará uma função JavaScript para criar um novo PDF (que incluirá texto digitado anteriormente no campo de texto) e, em seguida, por meio de uma variável de página temporária, uma segunda função JavaScript gerará novamente e exibirá o novo documento PDF.
Criar a Função PDF
Em seguida, crie a função JavaScript createPDF
. Essa é uma função assíncrona que utiliza o texto que o usuário inseriu anteriormente na página principal como seu parâmetro de entrada único e retorna uma matriz de bytes.
Exibir o Documento PDF Recém-Criado
createPDF
será designada à variável de página temporária tmpPDFBytes
. Após essa designação, uma função JavaScript receberá o array de byte base64 e instanciará uma nova entidade blob desse array de byte. .
A função criará e retornará um URL correspondente a este documento PDF. A mesma função que foi implementada para a cadeia de ação update_display_pdf
será reutilizada. A saída desta função é então atribuída à variável de página fileURL
, que será usada para exibir o novo documento PDF na página
Fazer download do arquivo PDF
Na paleta de componentes, incluímos no designer de páginas arrastando e soltando um componente Botão.
Fazer Download do Documento
Crie uma nova ação de evento para o botão Fazer Download do PDF. O evento criará uma nova cadeia de ações, identificada como downloadPDF
. A nova cadeia de ações usará uma função JavaScript para fazer download de um arquivo PDF (contendo o texto informado pelo usuário no campo de texto).
Fazer download do arquivo PDF
downloadPDFfile
usa o array de bytes do documento PDF que foi submetido a upload e modificado ou criado do zero como seu único parâmetro de entrada e faz download do documento com um nome predefinido: pdf-lib_modification_example.pdf
e do tipo application/pdf
.
download()
(da biblioteca downloadj
que foi inicialmente oculta e depois importada para seu aplicativo). Os argumentos de entrada para download()
podem ser qualquer um destes tipos de dados:
- URL
- String
- Blob
- Matriz Digitada
dataURL
representando os dados do arquivo como uma string codificada em base64 ou URL, o nome e o tipo do novo arquivo colocado no diretório de download do browser.
PageModule.prototype.downloadPDFFile = function (arg1) {
download(arg1, "pdf-lib_modification_example.pdf", "application/pdf");
};