Estoy usando Google Drive v3 e intento exportar un archivo de hoja de cálculo de Google a PDF. Casi todo funciona como se esperaba.
Excepción:
el PDF generado siempre está en formato CARTA y RETRATO , pero necesito el pdf en DIN A4 y horizontal . No puedo encontrar ninguna configuración/parámetro para enviar a v3 para generar archivos PDF en otros formatos.
He encontrado soluciones para Google Drive v2 pero no para Google Drive v3.
Pasar formato o retrato como parámetro opcional da como resultado un error :-(
/** * Downloads a Google file in a specified mime type. * * @param string $googleDriveFileId id of the drive file which should be downloaded * @param string $mimeType mime type * @param string[] $optParams * * @return Response * * @link https://developers.google.com/drive/api/v3/reference/files/export * @link https://developers.google.com/drive/api/v3/ref-export-formats */ public function download(string $googleDriveFileId, string $mimeType, array $optParams= []): Response { /** @var Response $resonse */ return $this->googleServiceProvider->getGoogleServiceDrive()->files->export( $googleDriveFileId, $mimeType, $optParams ); } [...] "name": "google/apiclient", "version": "v2.11.0", [...]Puede usar el enlace para descargar el archivo.
https://docs.google.com/spreadsheets/d/[YOUR-ID]/export?format=pdf&portrait=false&size=A4
Si revisa la documentación de Files.export
Encontrará que toma fileId como parámetro de ruta y mimeType como parámetro obligatorio. Luego, existe la opción de agregar campos, que es un parámetro opcional estándar para esta API.
Para llamar al punto final que usaría.
var result = service.files.export(fileId, "application/pdf");Google luego exportará el archivo tal como está. Para exportarlo dentro de la API de las hojas de Google, se realiza a través del menú de impresión, lo reformatea en ese momento.
Si agrega lo siguiente a la URL, cambiará el formato
var url_ext = 'export?exportFormat=pdf&format=pdf&portrait=false'El problema es que no estoy seguro de si esto es algo que puede agregar con la biblioteca del cliente PHP o si es algo que puede tener que codificar usted mismo.
Si decide seguir esta ruta, simplemente obtenga el token de acceso del $client y luego puede enviarlo como un token de portador con su solicitud. Puede valer la pena hacer una pregunta en la página de Google api php client lbiary git hub, ellos sabrán si es posible agregar algo a la solicitud.