Как экспортировать слайды в HTML / PDF / DOC в Google Slides API

Я использую API слайдов Google для создания презентации PowerPoint. Если требуются дополнительные функции: Экспорт в PDF Экспорт в HTML Экспорт в формат Doc / Image.

Есть ли способ, предоставляемый Slides API?


person Sangram Jagtap    schedule 14.02.2017    source источник
comment
ты когда-нибудь разбирал это?   -  person Mhluzi Bhaka    schedule 13.05.2019


Ответы (2)


Slides API не поддерживает экспорт напрямую, но эта функция доступна в Drive API:

https://developers.google.com/drive/v3/reference/files/export

Просто используйте слайды presentationId как диск fileId.

person Maurice Codik    schedule 14.02.2017
comment
Если я нажимаю на своем веб-сайте «экспорт в pdf», я хочу, чтобы .pptx был преобразован и загружен как файл .pdf. после ответа выше я получил только ответ с закодированными данными - person Sangram Jagtap; 16.02.2017

@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

Метод создания Drive API v3

Drive API v3 перемещает файлы между папками

person Simas    schedule 11.10.2019