Exportieren einer Google-Folie als Bild über die Google Slides-API oder die Drive-API [Duplikat]

Nov 02 2020

Ich generiere eine Google-Folie dynamisch mithilfe einer in meinem Laufwerk vorhandenen Vorlage ppt. Ich muss dieses neu erstellte ppt als Image konvertieren und möchte es in einem anderen Ordner im Laufwerk selbst speichern. Ich kann mehr als 1 Folie in der Präsentation haben.

from google.oauth2 import service_account
import googleapiclient.discovery

SCOPES = (
    'https://www.googleapis.com/auth/drive',
    'https://www.googleapis.com/auth/presentations',
)
SERVICE_ACCOUNT_FILE = 'cred.json'

credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES) 

SLIDES = discovery.build('slides', 'v1', credentials=credentials)
DRIVE  = discovery.build('drive',  'v3', credentials=credentials)

TMPLFILE = 'title slide template' 

rsp = DRIVE.files().list(q="name='%s'" % TMPLFILE).execute().get('files')[0]
print(rsp)
DATA = {'name': 'Google Slides API template DEMO', 'parents': ['id_of_the_folder_for_storing_new_ppt']}
print('** Copying template %r as %r' % (rsp['name'], DATA['name']))
DECK_ID = DRIVE.files().copy(body=DATA, fileId=rsp['id']).execute().get('id')
print(DECK_ID)

print('** Replacing placeholder text')

reqs = [
    {'replaceAllText': {
        'containsText': {'text': '{{text}}'},
        'replaceText': final_til[0]
    }},
]

SLIDES.presentations().batchUpdate(body={'requests': reqs},
        presentationId=DECK_ID).execute()

### till this point I was creating a new ppt 
### now I need to save it as an image file

print('DONE')

Antworten

1 ziganotschka Nov 02 2020 at 13:11

Der wahrscheinlich einfachste Weg, Ihre Funktionalität zu implementieren, ist präsentations.pages.getThumbnail

Verwenden Sie diese Methode, indem Sie das angeben

  • presentationId
  • slidesId der Folie, die Sie exportieren möchten
  • mimeType für den Export - zB PNG
  • thumbnailSize - in Abhängigkeit von der gewünschten Bildqualität

Die Anforderung gibt Ihnen den contentURLTyp zurück, mit https://lh3.googleusercontent.com/XXXXXXXXXXXXXXXXXX=s1600"dem Sie die Folie entweder als Bild im Browser anzeigen oder daraus eine Datei in Ihrem Laufwerk erstellen können.

Randnotiz:

Wenn Sie die gesamte Präsentation anstelle einer Folie exportieren möchten, verwenden Sie stattdessen Dateien: Exportieren . Mit dieser Methode können Sie die Präsentation jedoch nur als PDF exportieren, nicht als PNG (zumindest nicht direkt).