Il file sarà inoltre salvato su Drive ed inviato come allegato in una mail
Convertire un contenuto HTML in un file PDF con Google Apps Script
La funzione riportata nel codice di esempio presente di seguito effettua la conversione di un contenuto HTML in un file PDF mantenendo l'espressione visiva data dai tag del linguaggio di markup, nel caso specifico il titolo più grande del tag h1, il ritorno a capo con il br, il paragrafo p ed il collegamento ipertestuale con href.
Di seguito un esempio del risultato salvato automaticamente su Google Drive:
Il codice del convertitore è il seguente:
function htmlToPDF() {
var html = "<h1>Benvenuti su AppsScript.it</h1>" +
"<p>Se sei alla ricerca di guide base ed avanzate su Google Apps Script " +
"per la realizzazione di applicazioni web o l'estensione di funzionalità dei " +
"tool integrati nella G Suite... ti trovi nel posto giusto!<br />" +
"Accedi ora alla pagina dei <a href='http://www.appsscript.it/tutorial/'>tutorial</a>.</p>";
var blob = Utilities.newBlob(html, "text/html", "nomefile.html");
var pdf = blob.getAs("application/pdf");
DriveApp.createFile(pdf).setName("nomefile.pdf");
MailApp.sendEmail("miamail@gmail.com", "PDF File", "", { htmlBody: html, attachments: pdf });
}
Lo script non si limita solo a convertire e salvare il file PDF nella root di Google Drive ma lo invia anche via email, all'indirizzo indicato, sia come corpo del messaggio (sempre in formato HTML) che come allegato:
Inutile dire che lo script può gestire contenuti HTML decisamente più complessi di quello in esempio.
Buongiorno, sono alle prime armi. Di seguito quello che ho fatto finora, mi manca la stringa per far sì che parte del foglio che ho evidenziato venga salvato come PDF sul desktop. Ringrazio in anticipo per l'eventuale risposta.
/** @OnlyCurrentDoc */
function myFunction() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A1').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Conformità'), true);
spreadsheet.getRange('B2:F58').activate();
};
Buonasera Andrea,
l'articolo in oggetto si riferisce alla conversione di un contenuto HTML. Quello che stai tentando di fare invece riguarda la gestione dei prodotti della G Suite.
Se sei alle prime armi ti consiglio di approfondire l'argomento (anche con altri articoli del blog). Ci possono essere delle soluzioni per ottenere quello che desideri (a parte il salvataggio sul desktop) tuttavia è una trattazione che richiede uno studio e un minimo di esperienza dello strumento e non può essere soddisfatta in un commento sulla base del codice che hai riportato.
lo script è fantastico, ma come inserisco delle immagini?
ad esempio è possibile convertire in PDF una pagina esattamente come la si visualizza mantenendo la stessa formattazione ( scritto, celle, e immagini ) ?
Grazie
Ciao Riccardo,
per includere le immagini dovresti recuperarle utilizzando URLfetchApp e convertire in una stringa dati base64 (con la classe Utilities e il metodo getBlob()), dopodiché includere quel risultato nel parametro src del tag immagine del tuo contenuto HTML.
Utilizzo quotidianamente uno script similare per convertire in pdf una pagina html. Ha funzionato senza problemi da un anno e mezzo ma di colpo ieri sera mi restituisce l'errore Exception: Conversion from text/html to application/pdf failed.
Succede solo a me oppure google ha cambiato qualcosa?
Ciao Tiziano,
riporto anche qui la risposta che ti ho dato su Facebook nel gruppo "Fatti di Apps Script".
Il problema, rilevato anche da me e effettivamente inspiegabile, è stato segnalato nell'Issue Tracker di Google: https://issuetracker.google.com/issues/196248470.
Come da mia segnalazione il 18 agosto tutto è tornato alla normalità :) Evidentemente un bug risolto dai tecnici Google.