Export to pdf

Hola Tim una vez requiero a tu apoyo.
Vi esto en uno de tus foros para poder guardar una hoja de google a pdf:

Probé en mi app con la opción COMPAÑERO AI, pero no me guarda los archivos, las respuesta que obtengo es la correcta pero en el celular no encuentro los archivos, te adjunto mis bloques para que me puedas apoyar por favor:

I probably wrote those blocks before Android 10 arrived. You should find your downloaded pdf in your ASD (application specific directory) which for companion app is:

/storage/emulated/0/Android/data/edu.mit.appinventor.aicompanion3/files

Entré a mi dispositivo a almacenamiento > android > data y no encuentro ninguna carpeta creada y ningún archivo.

Existe en la actualidad alguna otra forma de hacer posible esto???
Pruebo el enlace ejecutándolo en mi ordenador laptop y descarga sin problema alguno el formato pdf.

Pero no me funciona en el celular

This works OK for me using companion app on a Google Pixel 4a (Android 13)

image

What android version are you using ?

Versión Android 12

Then this should work, using companion for you.

Just check that your google sheet is set to "anyone with the link can view"

Aún no lo pruebo estimado @TIMAI2 pero adicional, es posible que estos pdf generados, se vayan a google drive??

Yes, but you would need a google apps script to do that.

Me puedes apoyar por favor.

Brindándome el script y cómo serían los bloques?

La hoja está con la opcion de cualquier persona con el enlace, pero no me aparece el archivo en el movil, obtengo las mismas respuestas al ejecutar, todo con exito pero no encuentro el pdf.

Install the File Manager: Total Commander - this will give you access to the ASD for AI2 apps

Puedo optar por la forma en guardarlo a DRIVE mejor?

Here are the very basics, there are other ways:

var ss = SpreadsheetApp.getActive();

function hideSheets() {
  var sheets = ss.getSheets();
  for (var i=0;i<sheets.length;i++) {
    if (sheets[i].getName() != "Sheet1") {
        sheets[i].hideSheet();
    }
  }
}

function showSheets() {
  var sheets = ss.getSheets();
  for (var i=0;i<sheets.length;i++) {
    if (sheets[i].getName() != "Sheet1") {
        sheets[i].showSheet();
    }
  }
}

function createPDF() {
hideSheets();
var theBlob = ss.getBlob().getAs('application/pdf').setName("Sheet1.pdf");
var newFile = DriveApp.getRootFolder().createFile(theBlob);
showSheets();
}

The script first hides all the sheets except the one you want to export as a pdf. Then it generates the pdf of the sheet in the root folder of your google drive. Finally it unhides all the previously hidden sheets. You may lose some formatting, and you will need to give permissions to run the scripts. Please note that the sheet "Sheet1" is hard coded in the scripts.

Y cómo puedo definir la carpeta o folder en específico en donde quiero que se guarden los pdf??

Like so:

function createPDF() {
var folderId = 'YOUR FOLDER ID HERE';
hideSheets();
var theBlob = ss.getBlob().getAs('application/pdf').setName("Sheet1.pdf");
var newFile = DriveApp.getFolderById(folderId).createFile(theBlob);
showSheets();
}

Mira mi estimado @TIMAI2 tengo el siguiente código, quiero ver si me puedes apoyar en cómo armar mis bloques en MIT APP INVENTOR:

function createPDF(fileName, sheetUrl, type) {

var pdfUrl = sheetUrl + "export?format=" +type + "&size=0&fzr=true&portrait=false&gid=0";

var folder = DriveApp.getFolderById("1PudcZRa91ftWdVyNnh4i3NKhyRBlz9cK"); // Replace "YOUR_FOLDER_ID" with the actual folder ID

var blob = UrlFetchApp.fetch(pdfUrl).getBlob().setName(fileName +"."+ type);

var newFile = folder.createFile(blob);

}

@TIMAI2 Me podrás dar el soporte por favor

I provided you with a solution, why find a different solution? You should ask support from the person that provided that method.

En realidad me lo brindó chatgpt pero lo que buscaba era que pueda colocar como parámetro la hoja que deseaba y el formato de exportación (elegir opción de pdf o xlsx)

Probé tu método y funciona bien

Pero ahora quiero ver cómo lo adapto con los bloques de app inventor2

Por favor apóyame