Ultima modifica:
Ciao a tutti! Come da titolo avrei bisogno di scaricare e stampare documenti da Google Drive impostati come sola lettura (no download, no stampa direttamente da drive). O meglio, avrei bisogno di un metodo più efficace di quello che uso già e che vi spiegherò più brevemente possibile.
Metodo 1 (codice JavaScript)
Apro il documento di mio interesse, ad esempio questo, apro ispeziona elemento, poi Crtl + R per refreshare la pagina. In seguito sul pannello vado in Network filtrando i risultati con "img". Così facendo ottengo le singole pagine come immagini (di default 800px sul lato corto): carico tutto il documento scorrendo con il tasto Pag Giù finché il numero dei risultati nella ricerca (in Network) non combacia con il numero di pagine. Dopodiché mi sposto su Console e inietto questo codice
che creerà e scaricherà in automatico un PDF sul mio desktop.
PRO
Metodo 2 (manuale)
Prendo come esempio sempre il file precedente:
Come prima, apro il documento in ispeziona elemento, apro Network, filtro per "img", faccio clic destro sul primo risultato poi "apri in un'altra scheda". Ottengo un link simile a questo
Modifico l'ultima parte togliendo "skiphighlight" e "webp". Variando il numero corrispondente a w= posso variare la risoluzione del documento. Variando il numero in page= vario il numero di pagina (partendo da 0). Dopo questi accorgimenti avrò questo link:
.
In questo metodo di volta in volta aumento di 1 il numero in page= nel link, premo invio, poi clic destro sull'immagine e la salvo come PNG in una cartella a piacimento. Dopo aver scaricato tutti i PNG del file creo un PDF.
PRO
E' possibile utilizzare un codice JavaScript per scaricare i singoli PNG in modo automatico? Se sì, qualcuno di voi saprebbe compilarne uno? Poi ci penserò io a creare il PDF. Magari anche uno script o qualcosa del genere (purtroppo non è il mio campo, io vado a tentativi sgraziati come avete visto nel secondo metodo) in cui io inserisco il link con i parametri da me scelti che si limita ad incrementare di 1 il valore relativo alla pagina ed avviare automaticamente il download del PNG in una cartella a scelta. Molti studenti universitari vi saranno grati in eterno!
Purtroppo con il primo metodo ho provato in tutti i modi ad avere un file di piccole dimensioni e di alta qualità, ma l'elaborazione del file di jsPDF fa tutto l'opposto.
Grazie!
Metodo 1 (codice JavaScript)
Apro il documento di mio interesse, ad esempio questo, apro ispeziona elemento, poi Crtl + R per refreshare la pagina. In seguito sul pannello vado in Network filtrando i risultati con "img". Così facendo ottengo le singole pagine come immagini (di default 800px sul lato corto): carico tutto il documento scorrendo con il tasto Pag Giù finché il numero dei risultati nella ricerca (in Network) non combacia con il numero di pagine. Dopodiché mi sposto su Console e inietto questo codice
JavaScript:
let jspdf = document.createElement("script");
jspdf.onload = function () {
let pdf = new jsPDF();
let elements = document.getElementsByTagName("img");
for (let i in elements) {
let img = elements[i];
console.log("add img ", img);
if (!/^blob:/.test(img.src)) {
console.log("invalid src");
continue;
}
let can = document.createElement('canvas');
let con = can.getContext("2d");
can.width = img.width;
can.height = img.height;
con.drawImage(img, 0, 0);
let imgData = can.toDataURL("image/jpeg", 1.0);
pdf.addImage(imgData, 'JPEG', 0, 0);
pdf.addPage();
}
pdf.save("download.pdf");
};
jspdf.src = 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js';
document.body.appendChild(jspdf);
che creerà e scaricherà in automatico un PDF sul mio desktop.
PRO
- metodo veloce
- quasi completamente automatico
- documento di grandi dimensioni (pesa più del singolo file presente su drive, la cui dimensione si può vedere sempre in basso nel pannello dell'ispeziona elemento)
- file compresso. Nonostante le grosse dimensioni, la qualità è minore. Probabilmente tutto questo è dovuto all'elaborazione jsPDF.
Metodo 2 (manuale)
Prendo come esempio sempre il file precedente:
Come prima, apro il documento in ispeziona elemento, apro Network, filtro per "img", faccio clic destro sul primo risultato poi "apri in un'altra scheda". Ottengo un link simile a questo
Codice:
https://drive.google.com/viewerng/img?id=ACFrOgAumXriCxnxlronHRRx5viIm19A8xQZUnMUmv8pNuKIfr1wTeOkF_ZQBMeNjmbucCC_YqMFE6aGrjUXJANYNb15KsF6pPOWd38VB6x1v6jPLxLQLgKV9Ix3076Ek02h3P2J86pLIf0yIk8C&authuser=3&page=0&skiphighlight=true&w=800&webp=true
Modifico l'ultima parte togliendo "skiphighlight" e "webp". Variando il numero corrispondente a w= posso variare la risoluzione del documento. Variando il numero in page= vario il numero di pagina (partendo da 0). Dopo questi accorgimenti avrò questo link:
Codice:
https://drive.google.com/viewerng/img?id=ACFrOgAumXriCxnxlronHRRx5viIm19A8xQZUnMUmv8pNuKIfr1wTeOkF_ZQBMeNjmbucCC_YqMFE6aGrjUXJANYNb15KsF6pPOWd38VB6x1v6jPLxLQLgKV9Ix3076Ek02h3P2J86pLIf0yIk8C&authuser=3&page=0&w=1600
In questo metodo di volta in volta aumento di 1 il numero in page= nel link, premo invio, poi clic destro sull'immagine e la salvo come PNG in una cartella a piacimento. Dopo aver scaricato tutti i PNG del file creo un PDF.
PRO
- file di dimensioni ridotte
- ottima qualità
- personalizzazione del documento (variare la qualità e decidere se lasciare la compressione webp per ridurre ulteriormente le dimensioni finali del file)
- metodo lentissimo, applicabile per file di max 50 pagine
E' possibile utilizzare un codice JavaScript per scaricare i singoli PNG in modo automatico? Se sì, qualcuno di voi saprebbe compilarne uno? Poi ci penserò io a creare il PDF. Magari anche uno script o qualcosa del genere (purtroppo non è il mio campo, io vado a tentativi sgraziati come avete visto nel secondo metodo) in cui io inserisco il link con i parametri da me scelti che si limita ad incrementare di 1 il valore relativo alla pagina ed avviare automaticamente il download del PNG in una cartella a scelta. Molti studenti universitari vi saranno grati in eterno!
Purtroppo con il primo metodo ho provato in tutti i modi ad avere un file di piccole dimensioni e di alta qualità, ma l'elaborazione del file di jsPDF fa tutto l'opposto.
Grazie!