Sviluppare un'applicazione Web
Lo sviluppo di un'applicazione web richiede il completamento delle seguenti attività:
- Creare un'applicazione di Visual Builder.
- Creare una nuova applicazione Web.
- Includere la libreria esterna.
- Creare un'interfaccia utente.
- Aggiornare il documento PDF caricato.
- Crea un nuovo documento PDF.
- Scaricare il file PDF.
Creare un'applicazione di Visual Builder
Un'applicazione Visual Builder è una raccolta di risorse utilizzate per sviluppare applicazioni Web e mobile. Un'applicazione Visual Builder include metadati in file JSON che descrivono origini dati e business object. Include anche file HTML e JavaScript per le applicazioni Web e mobile.
- : nella home page di Visual Applications fare clic su Nuovo.
- Nella finestra di dialogo Crea applicazione, digitare il nome dell'applicazione. Il campo ID applicazione viene popolato automaticamente in base al nome dell'applicazione fornito.
- Se necessario, è possibile modificare l'ID applicazione, ma l'ID deve essere univoco nel dominio di Identity.
- Non modificare la selezione predefinita dell'applicazione vuota. Questo modello non crea artifact, applicazioni o altre risorse.
- Fare clic su Fine.
Una nuova applicazione di Visual Builder viene aperta automaticamente dopo la creazione e viene visualizzata la schermata di benvenuto. La nuova applicazione non conterrà alcun artifact, ma la procedura guidata crea, per impostazione predefinita, la struttura di file dell'applicazione e alcune risorse e file necessari.
Crea una nuova applicazione Web
Le applicazioni Web nell'applicazione Visual Builder sono indipendenti l'una dall'altra, ma possono utilizzare tutte le origini dati definite nell'applicazione.
Includi librerie esterne
Per generare, modificare e scaricare un documento PDF, come specificato in "Prima di iniziare", è necessario includere due librerie esterne: pdf-lib
e downloadj
.
pdf-lib
gestisce il documento PDF.downloadj
, scarica il documento PDF generato.
index.html
:
<script src="https://unpkg.com/pdf-lib@1.4.0"></script>
<script src="https://unpkg.com/downloadjs@1.4.7"></script>
Creazione di un'interfaccia utente
A questo punto, si crea un'interfaccia utente. Questa interfaccia deve contenere componenti quali contenitori, intestazioni, pulsanti, campi di testo, codice JavaScript e codice HTML e consentirà agli utenti di:
- Caricare un file.
- Inserire in un testo di campo che verrà visualizzato nel documento PDF.
- Fare clic su un pulsante per aggiornare il documento PDF caricato con il testo immesso.
- Fare clic su un pulsante per creare un nuovo documento PDF contenente il testo immesso.
- Fare clic su un pulsante per scaricare il documento preparato.
Trascinare e rilasciare il file e visualizzare il documento PDF
In primo luogo, devi trascinare i componenti essenziali nell'interfaccia utente che stai creando.
Visualizza il file PDF caricato nella schermata della pagina principale
Nell'HTML di origine della pagina principale, aggiungere un oggetto con la relativa origine la variabile di pagina assegnata in precedenza fileURL
. Aggiungere l'oggetto fileURL
alla pagina HTML principale. In questa fase, l'applicazione può caricare e visualizzare un file PDF.
Assegnare l'output della funzione addPDFDocument alle variabili di pagina fileURL e holdFile
Assegnare l'URL e i dati delle proprietà della funzione addPDFDocument
restituiti alle variabili di pagina fileURL
e holdFile
, rispettivamente.
Assegna la variabile di input della funzione addPDFDocument
Nella GUI assegnare la variabile file caricata al parametro arg1
della funzione.
Crea funzione addPDFDocument
addPDFDocument
a livello di pagina. L'applicazione riceverà un parametro di input. La funzione creerà un'istanza di una variabile URL basata sul parametro del file di input, quindi leggerà il documento caricato e lo convertirà in una stringa base64. È possibile utilizzare questo esempio di codice per definire la funzione:
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);
}
}
);
};
Aggiorna documento PDF caricato
Dalla tavolozza dei componenti trascinare e rilasciare nella finestra di progettazione della pagina un componente Campo di testo e, sotto, un nuovo pulsante.
- Creare una variabile di pagina
textIncludedIntoPDF
per memorizzare il contenuto del campo di testo. Questa variabile inserirà il contenuto e aggiornerà il documento PDF con esso. - Assegnare questa variabile al componente Testo input.
Aggiorna e visualizza PDF
update_display_pdf
.
Creare la funzione UpdatePDF
Creare quindi la funzione JavaScript createUpdatePDF
. Si tratta di una funzione asincrona con due parametri di input (il documento PDF caricato e il testo immesso in precedenza dall'utente nella pagina principale). Restituisce un array di byte.
Visualizza il documento PDF aggiornato
Il risultato della funzione UpdatePDF
verrà assegnato alla variabile di pagina temporanea tmpPDFBytes
. Dopo questa assegnazione, una funzione JavaScript riceverà l'array di byte base64 e creerà un'istanza di una nuova entità blob da questo array di byte. Infine, la funzione creerà e restituirà un URL corrispondente a questo 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;
};
L'output di questa funzione verrà assegnato alla variabile di pagina fileURL
, che verrà utilizzata per visualizzare il documento PDF aggiornato nella pagina.
A questo punto l'applicazione è pronta per caricare un documento PDF, modificarlo con il testo immesso dall'utente nel campo di testo della schermata e quindi visualizzare il documento PDF aggiornato sullo schermo.
Crea un nuovo documento PDF
Crea e visualizza documento
Creare un nuovo evento per definire l'azione avviata dal pulsante Crea nuovo PDF. L'evento creerà una nuova catena di azioni con l'etichetta create_display_pdf
.
La nuova catena di azioni utilizzerà una funzione JavaScript per creare un nuovo PDF (che includerà il testo immesso in precedenza nel campo di testo) e quindi, tramite una variabile di pagina temporanea, una seconda funzione JavaScript rigenererà e visualizzerà il nuovo documento PDF.
Creazione della funzione PDF
Creare quindi la funzione JavaScript createPDF
. Questa è una funzione asincrona che assume il testo immesso in precedenza dall'utente nella pagina principale come parametro di input e restituisce un array di byte.
Visualizza il nuovo documento PDF creato
createPDF
verrà assegnata alla variabile di pagina temporanea tmpPDFBytes
. Dopo questa assegnazione, una funzione JavaScript riceverà l'array di byte base64 e creerà un'istanza di una nuova entità blob da questo array di byte. .
La funzione creerà e restituirà un URL che corrisponde a questo documento PDF. La stessa funzione implementata per la catena di azioni update_display_pdf
verrà riutilizzata. L'output di questa funzione viene quindi assegnato alla variabile di pagina fileURL
, che verrà utilizzata per visualizzare il nuovo documento PDF nella pagina
Scarica il file PDF
Nella tavolozza dei componenti è possibile includere nel designer di pagine trascinando un componente Pulsante.
Scarica il documento
Creare una nuova azione evento per il pulsante Scarica PDF. L'evento creerà una nuova catena di azioni con l'etichetta downloadPDF
. La nuova catena di azioni utilizzerà una funzione JavaScript per scaricare un file PDF (contenente il testo immesso dall'utente nel campo di testo).
Scarica il file PDF
downloadPDFfile
utilizza l'array di byte del documento PDF caricato e modificato o creato da zero come parametro di input e scarica il documento con un nome predefinito: pdf-lib_modification_example.pdf
e di tipo application/pdf
.
download()
(dalla libreria downloadj
inizialmente nascosta e quindi importata nell'applicazione). Gli argomenti di input per download()
possono essere di uno qualsiasi di questi tipi di dati:
- URL
- Stringa
- BLOB
- Array con tipo
dataURL
che rappresenta i dati del file come stringa base64 o codificata con URL, il nome e il tipo del nuovo file inserito nella directory di download del browser.
PageModule.prototype.downloadPDFFile = function (arg1) {
download(arg1, "pdf-lib_modification_example.pdf", "application/pdf");
};