J'ai créé un nouveau fichier de document sur Google Docs, inséré une image et (il n'y a pas d'option pour insérer une image liée, n'est-ce pas ?) j'ai dû lui attribuer une URL pour que l'on puisse cliquer sur l'image.
$docs_service = new Google_Service_Docs($client); $drive_service = new Google_Service_Drive($client); $document = new Google_Service_Docs_Document(array( 'title' => $file_name )); $document = $docs_service->documents->create($document); $requests[] = new Google_Service_Docs_Request(array( 'insertText' => array( 'location' => array( 'index' => 1, ), 'text' => "n".$text ) )); $requests[] = new Google_Service_Docs_Request(array( 'insertInlineImage' => array( 'uri' => 'https://example.com/img.jpg', 'location' => array( 'index' => 1, ), 'objectSize' => array( 'height' => array( 'magnitude' => 675, 'unit' => 'PT', ), 'width' => array( 'magnitude' => 360, 'unit' => 'PT', ), ) ) )); $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array( 'requests' => $requests )); $response = $docs_service->documents->batchUpdate($document->getDocumentId(), $batchUpdateRequest); $doc = $docs_service->documents->get($document->getDocumentId(), ['fields' => 'body']);
Mais je ne trouve pas la bonne fonction API. Il existe une méthode setLinkUrl de la classe InlineImage, mais comment obtenir une instance d'InlineImage ?
Une autre façon consiste à parcourir le document
$doc = $docs_service->documents->get($document->getDocumentId(), ['fields' => 'body']); foreach ($doc->body->content as $content) { print_r($content); }
Mais le contenu imprimé ne contient aucune information utile.
Dans le script que vous avez montré, un nouveau document est créé à l'aide de l'API Docs et l'image est placée dans le nouveau document créé. Dans ce cas, vous pouvez modifier le corps de la requête comme suit, à l'aide de UpdateTextStyleRequest.
Exemple :
Exemple :
Lors de l'utilisation de ce corps de requête modifié, le lien hypertexte
https://www.google.com
sera défini vers l'image insérée dans Google Docs.Par exemple, si vous souhaitez récupérer startIndex et endIndex à partir d'une image insérée dans le document, vous pouvez utiliser l'exemple de script suivant :