Desarrollo de la Aplicación Web
El desarrollo de una aplicación web requiere realizar estas tareas:
- Cree una aplicación de Visual Builder.
- Cree una nueva aplicación web.
- Incluya la biblioteca externa.
- Cree una interfaz de usuario.
- Actualice el documento PDF cargado.
- Crear un nuevo documento PDF.
- Descargue el archivo PDF.
Creación de una aplicación de Visual Builder
Una aplicación de Visual Builder es una recopilación de recursos que se utilizan para desarrollar aplicaciones web y móviles. Una aplicación de Visual Builder incluye metadatos en archivos JSON que describen orígenes de datos y objetos de negocio. También incluye archivos HTML y JavaScript para las aplicaciones web y móviles.
- :En la página inicial de aplicaciones visuales, haga clic en Nuevo.
- En el cuadro de diálogo Crear aplicación, escriba el nombre de la aplicación. El campo ID de aplicación se rellena automáticamente según el nombre de la aplicación que proporcione.
- Puede modificar el ID de aplicación si es necesario, pero el ID debe ser único en el dominio de identidad.
- Deje la selección por defecto de Empty Application sin modificar. Esta plantilla no crea artefactos, aplicaciones ni otros recursos.
- Haga clic en Terminar.
Una nueva aplicación de Visual Builder se abre automáticamente después de crearla y muestra la pantalla de bienvenida. La nueva aplicación no contendrá ningún artefacto, pero el asistente crea, por defecto, la estructura de archivos de la aplicación y algunos recursos y archivos que necesitará.
Crear Nueva Aplicación Web
Las aplicaciones web de la aplicación Visual Builder son independientes entre sí, pero todas pueden utilizar los orígenes de datos definidos en la aplicación.
Incluir bibliotecas externas
Para generar, modificar y descargar un documento PDF, como se especifica en "Antes de empezar", debe incluir dos bibliotecas externas: pdf-lib
y downloadj
.
pdf-lib
, gestiona el documento PDF.downloadj
, descarga el documento PDF que se ha generado.
index.html
:
<script src="https://unpkg.com/pdf-lib@1.4.0"></script>
<script src="https://unpkg.com/downloadjs@1.4.7"></script>
Crear una interfaz de usuario
Ahora, creará una interfaz de usuario. Esta interfaz debe contener componentes como contenedores, cabeceras, botones, campos de texto, código JavaScript y código HTML, y permitirá a los usuarios:
- Cargar un archivo.
- Introduzca un texto de campo que aparecerá en el documento PDF.
- Haga clic en un botón para actualizar el documento PDF cargado con el texto introducido.
- Haga clic en un botón para crear un nuevo documento PDF que contenga el texto introducido.
- Haga clic en un botón para descargar el documento preparado.
Arrastre y suelte el archivo y muestre el documento PDF
Primero, debe arrastrar y soltar los componentes esenciales en la interfaz de usuario que está creando.
Mostrar el archivo PDF cargado en la pantalla Página principal
En el HTML de origen de la página principal, agregue un objeto con su origen la variable de página asignada anteriormente fileURL
. Agregue el objeto fileURL
a la página HTML principal. En esta etapa, la aplicación puede cargar y mostrar un archivo PDF.
Asigne la salida de la función addPDFDocument a las variables de página fileURL y holdFile
Asigne la URL y los datos de las propiedades de la función addPDFDocument
devueltos a las variables de página fileURL
y holdFile
, respectivamente.
Asigne la variable de entrada de la función addPDFDocument
En la GUI, asigne la variable de archivo cargada al parámetro arg1
de la función.
Crear función addPDFDocument
addPDFDocument
en el nivel de página. La aplicación recibirá un parámetro de entrada. La función instanciará una variable de URL en función del parámetro del archivo de entrada y, a continuación, leerá el documento cargado y lo convertirá en una cadena base64. Puede utilizar este ejemplo de código para definir la función:
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);
}
}
);
};
Actualizar documento PDF cargado
Desde la paleta de componentes, arrastre y suelte en el diseñador de páginas un componente Campo de texto y, a continuación, un nuevo botón.
- Cree una variable de página
textIncludedIntoPDF
para almacenar el contenido del campo de texto. Esta variable insertará el contenido y actualizará el documento PDF con él. - Asigne esta variable al componente Texto de Entrada.
Actualizar y mostrar PDF
update_display_pdf
.
Crear la función UpdatePDF
A continuación, cree la función JavaScript createUpdatePDF
. Se trata de una función asíncrona con dos parámetros de entrada (el documento PDF cargado y el texto que el usuario ha introducido previamente en la página principal). Devuelve una matriz de bytes.
Mostrar el documento PDF actualizado
El resultado de la función UpdatePDF
se asignará a la variable de página temporal tmpPDFBytes
. Después de esta asignación, una función JavaScript recibirá la matriz de bytes base64 y creará una nueva entidad blob a partir de esta matriz de bytes. Por último, la función creará y devolverá una URL que corresponda 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;
};
La salida de esta función se asignará a la variable de página fileURL
, que se utilizará para mostrar el documento PDF actualizado en la página.
En este punto, la aplicación está lista para cargar un documento PDF, modificarlo con el texto que el usuario ha introducido en el campo de texto de la pantalla y, a continuación, mostrar el documento PDF actualizado en la pantalla.
Crear un nuevo documento PDF
Crear y mostrar documento
Cree un nuevo evento para definir la acción iniciada por el botón Crear nuevo PDF. El evento creará una nueva cadena de acción con la etiqueta create_display_pdf
.
La nueva cadena de acción utilizará una función JavaScript para crear un nuevo PDF (que incluirá el texto introducido previamente en el campo de texto) y, a continuación, mediante una variable de página temporal, una segunda función JavaScript se regenerará y mostrará el nuevo documento PDF.
Crear la función PDF
A continuación, cree la función JavaScript createPDF
. Se trata de una función asíncrona que toma texto que el usuario ha introducido previamente en la página principal como un parámetro de entrada y devuelve una matriz de bytes.
Mostrar el documento PDF recién creado
createPDF
se asignará a la variable de página temporal tmpPDFBytes
. Después de esta asignación, una función JavaScript recibirá la matriz de bytes base64 y creará una nueva entidad blob a partir de esta matriz de bytes. .
A continuación, la función creará y devolverá una URL que corresponda a este documento PDF. Se volverá a utilizar la misma función que se ha implementado para la cadena de acción update_display_pdf
. La salida de esta función se asigna a continuación a la variable de página fileURL
, que se utilizará para mostrar el nuevo documento PDF en la página
Descargar el archivo PDF
Desde la paleta de componentes, se incluye en el diseñador de página arrastrando y soltando un componente Button.
Descargar el documento
Cree una nueva acción de evento para el botón Descargar PDF. El evento creará una nueva cadena de acción, con la etiqueta downloadPDF
. La nueva cadena de acción utilizará una función JavaScript para descargar un archivo PDF (con el texto que el usuario ha introducido en el campo de texto).
Descargar el archivo PDF
downloadPDFfile
toma la matriz de bytes del documento PDF que se ha cargado y modificado o creado desde cero como un parámetro de entrada y descarga el documento con un nombre predefinido: pdf-lib_modification_example.pdf
y de tipo application/pdf
.
download()
(de la biblioteca downloadj
que se ocultó inicialmente y, a continuación, se importó a la aplicación). Los argumentos de entrada para download()
pueden ser cualquiera de estos tipos de datos:
- Dirección URL
- Cadena
- Objeto binario grande
- Matriz con tipo
dataURL
que represente los datos del archivo como una cadena codificada por base64 o URL, el nombre y el tipo del nuevo archivo situado en el directorio de descarga del explorador.
PageModule.prototype.downloadPDFFile = function (arg1) {
download(arg1, "pdf-lib_modification_example.pdf", "application/pdf");
};