Mostrando 7 respuestas a los debates
  • Autor
    Entradas
    • #35982
      Juan Sebastian
      Superadministrador

        Pablo dice:

        Hola Juan… tengo este codigo que me genera un PDF en una carpeta especifica, pero logicamente la dirección de esa carpeta esta en mi drive y al momento de yo compartir ese archivo cuando otra persona genere un PDF se creara en esa carpeta que es de mi propiedad.   Podria eliminar la dirección de la carpeta y que el PDF se cree en el drive de la persona que lo esta creando?  Gracias por tu ayuda.

         

        const carpeta = DriveApp.getFolderById(“1m7N2hSj3pRgM8xTmLrG3CkKigFHVE0Vb”)

        var libro = SpreadsheetApp.getActiveSpreadsheet();

        var hoja = libro.getActiveSheet()

        var url = libro.getUrl()

        var idHoja = hoja.getSheetId();

        var urlNuevo = url.replace(“edit”, “”) +

        “export?exportFormat=pdf” +

        “&format=pdf” + //Formato de exportación {pdf}

        “&size=LETTER” + //Tamaño de Papel {LETTER=carta, LEGAL=oficio}

        “&portrait=true” + //Orientación {true=vertical, false=horizontal}

        “&fitw=true” + //Ajustar al ancho {true=ajusta, false=no ajusta}

        “&scale=3” + //Ajustes {1=100%,2=Ancho,3=Alto,4=Página}

        “&gridlines=false” + //Lineas de cuadrícula {true=se muestran. false=no}

        “&fzr=false” + //Encabezados en todas las hojas {true=si, false=no}

        “&fzc=false” + //Primera columna en todas las hojas {true=si, false=no}

        “&printtitle=true” + //Titulo en parte superior izq {true=si, false=no}

        “&pagenum=CENTER” + //Numeración pie de página {CENTER=si, UNDEFINED =no}

        “&sheetnames=true” +  //Nombre de la hoja superior derecha {true=si, false=no}

        “&top_margin=0.50” +

        “&bottom_margin=0.50” +

        “&left_margin=0.50” +

        “&right_margin=0.50” +  //Unidades de margenes, acepta decimales {0 es nada, 2 es mucho}

        “&horizontal_alignment=CENTER” + //Alineación horizontal {LEFT,CENTER,RIGHT}

        “&vertical_alignment=TOP” + //Alineación vertical {TOP,MIDDLE,BOTTOM}

        “&printnotes=false” + //Imprimir notas {true=imprime (default), false=no imprime}

        “&pageorder=1” + // Orden si se desborda la tabla {1=Abajo y despues derecha, 2=Al revés}

        “&gid=” + idHoja +  //Identificación de la hoja específica

        “&r1=6” + //Fila de inicio (Ej: 0 es la fila 1)

        “&r2=181” + //Fila de fin (Ej: numero de la fila donde termina el rango)

        “&c1=0” + //Columna de inicio  (Ej: 0 es la columna A)

        “&c2=6” // Columna de fin (Ej: 2 es la columna B)

         

        var parametros = {

        muteHttpExceptions: true,

        headers: { Authorization: ‘Bearer ‘ + ScriptApp.getOAuthToken(), }

        }

        var respuesta = UrlFetchApp.fetch(urlNuevo, parametros)

        var blob = respuesta.getAs(“application/pdf”)

        nombrePDF = hoja.getRange(“A86:F86”).getValue()

        carpeta.createFile(blob).setName(nombrePDF)

        }

      • #35983
        Juan Sebastian
        Superadministrador

          Como lo ejecutas? con un activador? o un boton? Saludos!

        • #35985
          Juan Sebastian
          Superadministrador

            Dice Pablo:

            Se ejecuta con una casilla de verificación en cada hoja del libre por medio de un activador onEdit.

            Otra pregunta con el mismo codigo: Es posible establecer un tamaño personalizado del papel… En lugar de LETTER O LEGAL? Esta es la linea del codigo: “&size=LETTER” + //Tamaño de Papel {LETTER=carta, LEGAL=oficio} Muchas Gracias!

            • #35986
              Juan Sebastian
              Superadministrador

                Pero al fin si te funcionó con un onEdit crear el PDF ?

                O te toco crear el activador manualmente como lo hablamos en algunos comentarios?

                Saludos!

            • #35987
              Juan Sebastian
              Superadministrador

                Pablo dice:

                Tuve que crear el activador, con eso me funcionó.

              • #35988
                Juan Sebastian
                Superadministrador

                  La cosa es que al crear el activador, todo el código lo estas ejecutando tu. Por eso es que no se puede en principio que se grabe en el drive del usuario Saludos!

                • #35989
                  Juan Sebastian
                  Superadministrador

                    Pablo dice:

                    Ok. Entiendo y sobre la otra pregunta de poder porner en el código un tamaño personalizado de papel en lugar de letter o legal… se puede?

                  • #35990
                    Juan Sebastian
                    Superadministrador

                      En teoria puedes poner un numero y hay diferentes tamaños ‘size’ – Paper size: 0 (Letter) 1 (Tabloid) 2 (Legal) 3 (Statement) 4 (Executive) 5 (Folio) 6 (A3) 7 (A4) 8 (A5) 9 (B4) 10 (B5) Intenta y me cuentas si te funciona Saludos!

                    • #35991
                      Juan Sebastian
                      Superadministrador

                        Pablo dice:

                        Me funcionó perfecto Juan. Gracias !

                    Mostrando 7 respuestas a los debates
                    • Debes estar registrado para responder a este debate.

                    Pin It on Pinterest