In questo tutorial vedremo come impostare le proprietà di un pdf con JavaScript, per dare ad esempio un titolo o un autore ad un documento.
In definitiva si tratta dei metadati di un documento pdf. Queste proprietà ad esempio possono essere utili nelle ricerche non solo in locale ma anche nei motori di ricerca per cui è importante impostare un titolo idoneo. Il titolo del file può anche non coincidere con il suo nome.
Esempio di come impostare le proprietà di un pdf con JavaScript
Settiamo le proprietà del documento, assegnando quindi il titolo, l’oggetto, l’autore, le parole chiavi e il creatore.
Ovvero quelle proprietà che compaiono quando si clicca sul menù file e poi andando sulla voce proprietà di un documento pdf.
Nella figura sotto vedrete come appaiono personalizzate le proprietà del nostro documento pdf.
Se cliccate sul link sotto, si creerà un documento con le proprietà impostate come da figura sopra.
Per impostare le proprietà di un pdf con javascript mi servirà sempre la libreria jsPDF, quindi la inserisco nel punto più opportuno della mia pagina web.
Infine inserisco la funzione javascript per creare le proprietà del documento, utilizzando setProperties() che permette di definire i metadati tra cui il titolo, il soggetto, le parole chiavi e il creatore del documento.
<script type="text/javascript">
function proprieta() {
var doc = new jsPDF();
doc.text(20, 20, 'Benvenuti su Coding Creativo');
doc.setProperties({
title: 'Creare pdf da pagine web',
subject: 'Come utilizzare la libreria jsPDF',
author: 'Coding Creativo',
keywords: 'javaScript, jsPDF, pdf',
creator: 'https://www.codingcreativo.it'
});
doc.save('CodingCreativo.pdf');
}
</script>
Chiaramente questo è un semplice esempio per personalizzare le proprietà di un pdf con JavaScript.
Creiamo la nostra funzione utilizzando il metodo getElementById() per recuperare i valori dai campi di input.
Per quanto riguarda i campi contenuti nei radio button, recuperiamo la lunghezza dell'array e con un ciclo for vediamo quale radio button è stato selezionato. Memorizziamo quindi il valore in una variabile.
Dopo costruiamo il nostro documento pdf. Facciamo in modo di far visualizzare anche da quale percorso web arriva questo file, semplicemente utilizzando: var host = "http://"+window.location.hostname;.
Allego lo script completo della funzione per creare pdf da form con JavaScript.
<script type="text/javascript">
function creaPdf() {
var doc = new jsPDF();
var nome = document.getElementById("nome").value;
var tel = document.getElementById("telefono").value;
var email = document.getElementById("email").value;
var radioSet = document.getElementsByName('sesso');
var numeroRadio = radioSet.length;
for( var i = 0; i < numeroRadio; i++ ){
if( radioSet[i].checked ){
var sesso=radioSet[i].value;
break;
}
}
var messaggio = document.getElementById("messaggio").value;
var host = "http://"+window.location.hostname;
doc.text(20, 20, 'Questo file è stato generato da: ' + host);
doc.text(20, 30, 'Utente: ' + nome);
doc.text(20, 40, 'Telefono: ' + tel);
doc.text(20, 50, 'Email: ' + email);
doc.text(20, 60, 'Sesso: ' + sesso);
doc.addPage();
doc.text(20, 20, 'Il messaggio: '+ messaggio);
// Save the PDF
doc.save('codingcreativo4.pdf');
}
</script>
Chiaramente questi sono solo dei semplici esempi di come creare un pdf da un form con JavaScript.
Se cliccate sul pulsante sotto, vi comparià una finestra con la possibilità di salvare il file pdf di nome codingcreativo.pdf, con all’interno gli elementi specifati con una funzione appositamente creata.
Procedimento dell’esempio che utilizza la libreria jsPDF
Un possibile procedimento, per creare pdf con JavaScript, può essere quello spiegato nel tutorial sotto.
Innanzitutto creo la funzione che serve a generare il documento pdf che chiamo ad esempio creaPdf().
Specifichiamo, nel metodo text(), non solo la stringa di testo da inserire nel documento, ma anche i margini.
Dopo, per creare più pagine in un documento utilizzo il metodo addPage().
Infine per permettere il salvataggio del file utilizzo il metodo save() dove specifico il nome del file pdf.
Ecco di seguito la semplice funzione per creare pdf con JavaScript.
<script type="text/javascript">
function creaPdf() {
var doc = new jsPDF();
doc.text(20, 20, 'Benvenuto su Coding Creativo!');
doc.text(10, 30, 'Ciao a tutti sono un file PDF creato in automatico');
doc.addPage();
doc.text(20, 20, 'Questo il contenuto della seconda pagina');
doc.addPage();
doc.text(20, 20, 'Questo il contenuto della terza pagina');
doc.save('codingcreativo.pdf');
}
</script>
Infine creo il pulsante su cui attivare la nostra funzione al registrarsi dell’evento onclick() e lo vado a posizionare dove necessario.
<button onclick ="creaPdf()" type = "button">Crea PDF</button>
Esempio 2
Se cliccate sul pulsante si genera un pdf con una formattazione scelta per i singoli elementi della pagina.
Includiamo sempre la libreria jsPDF e poi modifichiamo la funzione in modo da inserire la formattazione desiderata.
Per creare la formattazione come da esempio, ho utilizzato:
setFont(), per impostare il tipo di carattere, ad esempio Verdana;
setFontType() per impostare il carattere normale, grassetto o corsivo;
setFontSize() per impostare la dimensione del carattere, ad esempio 18;
setTextColor() per impostare il colore, ad esempio setTextColor(255, 0, 0) è il rosso.
Quindi decido di inserire ad esempio questa formattazione:
doc.setFont("Times New Roman");
doc.setFontType("normal");
doc.setFontSize(20);
doc.setTextColor(0, 255, 0);
In questo modo creo un documento pdf settando il colore a verde, il carattere Times New Roman, normale e dimensione 20, cambio poi il colore per il secondo paragrafo.
Notate infatti che per il secondo paragrafo ho impostato il testo nero in questo modo doc.setTextColor(0, 0, 0).
Allego quindi il codice completo della funzione per creare pdf con JavaScript.
<script type="text/javascript">
function creaPdf3() {
var doc = new jsPDF();
doc.setFont("Times New Roman");
doc.setFontType("normal");
doc.setFontSize(20);
doc.setTextColor(0, 255, 0);
doc.text(20, 20, 'Benvenuto su Coding Creativo!');
doc.setTextColor(0, 0, 0);
doc.text(20, 30, 'Ciao a tutti son un file PDF creato in automatico');
doc.addPage();
doc.text(20, 20, 'Questo il contenuto della seconda pagina');
// Save the PDF
doc.save('codingcreativo3.pdf');
}
</script>
<button onclick ="creaPdf3()" type = "button">Crea PDF formattato</button>
Chiaramente questo è solo un esempio di base per creare pdf con JavaScript.
Facciamo alcuni esempi di iterazioni in C++ con il ciclo for, prima di andare avanti con gli altri argomenti.
Primo esempio – Iterazioni in C++
Stampare i primi n multipli di num, dove n e num sono interi e positivi.
Innanzitutto dichiariamo le variabili necessarie:
n – Variabile intera che rappresenta la quantità dei multipli da stampare.
num– Anche questa intera, rappresenta il numero inserito di cui si vogliono calcolare n multipli.
i– Variabile contatore per il ciclo for.
m– Rappresenta la variabile che calcola i multipli di numdi volta in volta.
Dopo prendiamo in input n e num.
Quindi, facciamo un controllo con il ciclo do while, in modo tale da richiedere nuovamente l’inserimento nel caso in cui si inseriscano dei valori negativi, così come richiede il problema.
Poi, per calcolare i multipli, basta considerare che questi si ottengono moltiplicando semplicemente prima il numero per 1, poi per 2, ecc…
Facciamo adesso un esempio pratico: voglio calcolare i primi 4 multipli di 3. Quindi n=3 e num=4.
Allora il programma si comporterà in questo modo:
Primo multiplo 3*1=3;
Secondo multiplo 3*2=6;
Terzo multiplo 3*3=9;
Quarto multiplo 3*4=12.
Quindi basta incrementare di volta in volta la varibile i che parte da 1 fino ad arrivare a num.
Ecco quindi il listato completo dell’esempio sulle iterazioni in C++.
#include <iostream>
using namespace std;
int main(){
int i, n, num, m;
do {
cout<<"Inserisci un numero: ";
cin>>num;
} while (num<=0);
do {
cout<<"Inserisci quanti multipli vuoi visualizzare: ";
cin>>n;
} while (n<=0);
for(i=1;i<=n;i++){
m=num*i;
cout<<m<<endl;
}
return 0;
}
Esempio 2
Dati in input n numeri, contare quanti pari e quanti dispari sono stati inseriti.
In questo caso prendiamo in input quanti numeri inserire e li memorizziamo in una variabile n.
Inizializziamo a zero i due contatori uno per i numeri pari e uno per i dispari.
Dopo inseriamo i numeri e per ciascun numero controlliamo se è pari, utilizzando l’operatore % (modulo) che restituisce il resto della divisione, in questo caso per due.
Se il resto della divisione è zero, allora il numero è pari, quindi incrementiamo il contatore dei pari, altrimenti quello dei dispari.
Di seguito il listato completo dell’esempio con le iterazioni in C++.
#include <iostream>
using namespace std;
int main(){
int i, cp=0, cd=0, n, a;
do {
cout<<"Quanti numeri vuoi inserire?: ";
cin>>n;
} while (n<=0);
for(i=0;i<n;i++){
cout<<"Inserisci un numero: ";
cin>>a;
if(a%2==0)
cp++;
else
cd++;
}
cout<<"Numeri pari: "<<cp<<endl;
cout<<"Numeri dispari: "<<cd<<endl;
return 0;
}
In realtà avrei potuto fare a meno del secondo contatore per i numeri dispari, in quanto avrei anche potuto utilizzare una sola variabile ottenendo i numeri dispari come differenza, cioè i-cp.
Provate a modificate voi stessi l’esercizio.
Chiaramente questi sono solo dei semplici esempi realizzati con le iterazioni in C++, più avanti ne vedremo degli altri.