Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

309
Vistas
google drive api, exportar diapositivas de google como power point (ppt o pptx) - node.js

Quiero usar las API de Google para descargar una diapositiva de Google como una presentación de PowerPoint (ppt o pptx) en nuestro servidor node.js. Configuré la API de Google Drive y creé una diapositiva en la carpeta de mi unidad. Estoy tratando de usar drive.files.export para descargar la diapositiva, pero dado que una diapositiva no es realmente una cosa en Windows o Mac, estoy tratando de convertirla a PowerPoint configurando mimeType en application/vnd.ms-powerpoint :

 const { drive } = await Google.getInstance(); const fileId = 'SomeLongTemplateId'; const fileName = 'test slide processing'; console.log('exporting ppt'); const ppt = await drive.files.export( // report.js:343 { fileId, mimeType: 'application/vnd.ms-powerpoint' }, { responseType: 'arraybuffer' } ); return Buffer.from(ppt.data);

Sin embargo, esto arroja un error y no parece funcionar:

 error: { message: ArrayBuffer { [Uint8Contents]: <7b 0a 20 22 65 72 72 6f 72 22 3a 20 7b 0a 20 20 22 65 72 72 6f 72 73 22 3a 20 5b 0a 20 20 20 7b 0a 20 20 20 20 22 64 6f 6d 61 69 6e 22 3a 20 22 67 6c 6f 62 61 6c 22 2c 0a 20 20 20 20 22 72 65 61 73 6f 6e 22 3a 20 22 62 61 64 52 65 71 75 65 73 74 22 2c 0a 20 20 20 20 22 6d 65 73 73 61 67 65 22 3a 20 ... 195 more bytes>, byteLength: 295 }, stack: 'Error: [object ArrayBuffer]\n' + ' at Gaxios._request (C:\\Users\\rasmu\\Documents\\triggerz\\triggerz\\node_modules\\gaxios\\build\\src\\gaxios.js:129:23)\n' + ' at processTicksAndRejections (internal/process/task_queues.js:95:5)\n' + ' at async JWT.requestAsync (C:\\Users\\rasmu\\Documents\\triggerz\\triggerz\\node_modules\\google-auth-library\\build\\src\\auth\\oauth2client.js:345:18)\n' + ' at async processionSlide (C:\\Users\\rasmu\\Documents\\triggerz\\triggerz\\entity-access\\src\\act\\report.js:343:15)' },

Desafortunadamente, en realidad no dice cuál es el problema, pero definitivamente no funciona. También intenté exportar como pptx usando pptx application/vnd.openxmlformats-officedocument.presentationml.presentation pero esto dio un error similar.

Estoy acostumbrado a exportar archivos PDF usando esta técnica, y funciona de maravilla, la única diferencia es que exporto un documento (documentos de Google) y uso la application/pdf

En la interfaz de usuario web de Google Drive, puedo hacer clic derecho en la diapositiva y elegir "descargar" esto, descarga un archivo pptx que puedo abrir tanto con MS Power Point como con Libre Office. - por lo que me sorprendería mucho si la biblioteca api de google node.js no se puede exportar de la misma manera.

¿Alguna idea de cómo puedo exportar una diapositiva como una presentación que funcione en Windows/Mac?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede intentar reemplazar su tipo de responseType para stream como se recomienda en esta referencia: google api nodejs client [Ayuda] El ejemplo de exportación de Google Drive no funciona

 const ppt = await drive.files.export( // report.js:343 { fileId, mimeType: 'application/vnd.ms-powerpoint' }, { responseType: 'stream' } )

Una solución alternativa que podría sugerir si la solución anterior aún falla es usar Drive.Files.Get , obtenga el recurso de archivo de su archivo Google Slide usando su ID de archivo. Luego obtenga los enlaces de exportación de su exportLinks preferido.

Muestra (explorador de API):

ingrese la descripción de la imagen aquí

Respuesta:

 { "name": "Untitled presentation", "exportLinks": { "application/vnd.oasis.opendocument.presentation": "https://docs.google.com/feeds/download/presentations/Export?id=13vwP4xQ_nVAHCPCuXI3GQKhMJrQ5goTfX7mh6qP5fKM&exportFormat=odp&resourcekey=0-nwpcI7sa0wRmreOT5Z6RJg", "application/pdf": "https://docs.google.com/feeds/download/presentations/Export?id=13vwP4xQ_nVAHCPCuXI3GQKhMJrQ5goTfX7mh6qP5fKM&exportFormat=pdf&resourcekey=0-nwpcI7sa0wRmreOT5Z6RJg", "application/vnd.openxmlformats-officedocument.presentationml.presentation": "https://docs.google.com/feeds/download/presentations/Export?id=13vwP4xQ_nVAHCPCuXI3GQKhMJrQ5goTfX7mh6qP5fKM&exportFormat=pptx&resourcekey=0-nwpcI7sa0wRmreOT5Z6RJg", "text/plain": "https://docs.google.com/feeds/download/presentations/Export?id=13vwP4xQ_nVAHCPCuXI3GQKhMJrQ5goTfX7mh6qP5fKM&exportFormat=txt&resourcekey=0-nwpcI7sa0wRmreOT5Z6RJg" } }
  • Acceda al enlace de exportación usando application/vnd.openxmlformats-officedocument.presentationml.presentation como clave. Descargue el archivo usando el enlace.
about 4 years ago · Juan Pablo Isaza Denunciar

0

Problema y solución alternativa:

Desafortunadamente, parece que en la etapa actual, cuando vi los formatos de exportación con "Acerca de: obtener" de la API de Drive, el mimeType de application/vnd.google-apps.presentation (Google Slides) se puede exportar a los siguientes mimeTypes.

 "application/vnd.google-apps.presentation": [ "application/vnd.oasis.opendocument.presentation", "application/pdf", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "text/plain" ],

Por esto, parece que cuando se usa el método de exportación, Google Slides no se puede exportar como application/vnd.ms-powerpoint . Por esto, cuando probé esto, se produce el error. Pero de los formatos de exportación anteriores, se encuentra que cuando se usa el tipo mime de application/vnd.openxmlformats-officedocument.presentationml.presentation , las diapositivas de Google se pueden exportar como PPTX.

Pero a partir de su pregunta, usted dice lo siguiente.

Desafortunadamente, en realidad no dice cuál es el problema, pero definitivamente no funciona. También intenté exportar como pptx usando pptx application/vnd.openxmlformats-officedocument.presentationml.presentation pero esto dio un error similar.

Cuando probé su secuencia de comandos usando mimeType de application/vnd.openxmlformats-officedocument.presentationml.presentation , no se produjo ningún error. Por lo tanto, modifique su script de la siguiente manera y pruébelo nuevamente.

Guión modificado:

 const fileId = 'SomeLongTemplateId'; const fileName = "test slide processing"; console.log("exporting ppt"); const ppt = await drive.files.export( { fileId: fileId, mimeType: "application/vnd.openxmlformats-officedocument.presentationml.presentation", }, { responseType: "arraybuffer" } ); fs.writeFile("sample.pptx", Buffer.from(ppt.data), (err) => { if (err) console.log(err); }); // return Buffer.from(ppt.data);
  • Cuando probé este script modificado, pude confirmar que el archivo de sample.pptx se puede crear y el archivo se puede abrir como archivo PPTX.

Referencia:

  • Acerca de: obtener
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda