Ich habe eine neue Dokumentdatei in Google Docs erstellt, ein Bild eingefügt und (es gibt keine Möglichkeit, ein verlinktes Bild einzufügen, oder?) musste ihm eine URL zuweisen, damit auf das Bild geklickt werden konnte.
$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']);
Aber ich kann die richtige API-Funktion nicht finden. Es gibt eine setLinkUrl-Methode der Klasse InlineImage, aber wie erhält man eine Instanz von InlineImage?
Eine andere Möglichkeit besteht darin, das Dokument zu durchlaufen
$doc = $docs_service->documents->get($document->getDocumentId(), ['fields' => 'body']); foreach ($doc->body->content as $content) { print_r($content); }
Der gedruckte Inhalt enthält jedoch keine nützlichen Informationen.
在您展示的脚本中,使用Docs API创建了一个新的文档,并将图片放入了创建的新文档中。在这种情况下,您可以将请求正文修改如下,使用UpdateTextStyleRequest。
示例:
示例:
使用这个修改后的请求正文时,
https://www.google.com
的超链接将被设置到在Google文档中插入的图片上。例如,如果您想从文档中插入的图片中检索startIndex和endIndex,可以使用以下示例脚本: