Я использую API слайдов Google для создания презентации PowerPoint. Если требуются дополнительные функции: Экспорт в PDF Экспорт в HTML Экспорт в формат Doc / Image.
Есть ли способ, предоставляемый Slides API?
Я использую API слайдов Google для создания презентации PowerPoint. Если требуются дополнительные функции: Экспорт в PDF Экспорт в HTML Экспорт в формат Doc / Image.
Есть ли способ, предоставляемый Slides API?
Slides API не поддерживает экспорт напрямую, но эта функция доступна в Drive API:
https://developers.google.com/drive/v3/reference/files/export
Просто используйте слайды presentationId
как диск fileId
.
@Sangram
Предполагая, что вы уже создали колоду слайдов, процесс преобразования Google Slides в PDF будет следующим:
import apiclient.http as client_methods
# exporting the slide deck and specifying the desired final file type
data = drive_client.files().export(fileId=slide_id, mimeType='application/pdf').execute()
# request body to be send together the upload method
body = {'name':file_name, 'mimeType':'application/pdf'}
# wrapping the binary (data) file with BytesIO class
fh = client_methods.BytesIO(data)
# creating the Media Io upload class for the file (note that our original slide data is of binary type)
media_body = client_methods.MediaIoBaseUpload(fh,
mimetype='application/pdf')
# drive API v3 - .create | drive API v2 - .insert
pdf_file_id = drive_client.files().create(body=body, media_body=media_body).execute()['id']
# extra step: moving to desirable folder destination with the function method
def move_files(drive_client, id_, folder_id):
file_ = drive_client.files().get(fileId=id_, fields='parents').execute()
drive_client.files().update(fileId=id_, addParents=folder_id,
removeParents=file_['parents'][0],
fields='id,parents').execute()
# calling the move_files function.
# drive_client is authorized client, folder_id = desired destination directory (from url).
move_files(drive_client, pdf_file_id, folder_id)
Надеюсь это поможет.
Ресурсы:
Drive API v3 перемещает файлы между папками