Rumah > Soal Jawab > teks badan
Saya mencipta fail dokumen baharu pada Dokumen Google, memasukkan imej dan (tiada pilihan untuk memasukkan imej terpaut, bukan?) perlu memberikannya URL supaya imej itu boleh diklik.
$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']);
Tetapi saya tidak dapat mencari fungsi API yang betul. Terdapat kaedah setLinkUrl kelas InlineImage, tetapi bagaimana untuk mendapatkan contoh InlineImage?
Cara lain ialah mengulangi dokumen
$doc = $docs_service->documents->get($document->getDocumentId(), ['fields' => 'body']); foreach ($doc->body->content as $content) { print_r($content); }
Tetapi kandungan yang dicetak tidak mengandungi sebarang maklumat yang berguna.
P粉0837850142023-07-22 12:15:36
Dalam skrip yang anda tunjukkan, dokumen baharu dibuat menggunakan API Dokumen dan imej diletakkan ke dalam dokumen baharu yang dibuat. Dalam kes ini, anda boleh mengubah suai badan permintaan seperti berikut, menggunakan UpdateTextStyleRequest.
$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', ), ) ) ));
$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', ), ) ), )), new Google_Service_Docs_Request(array( 'updateTextStyle' => array( 'range' => array( 'startIndex' => 1, 'endIndex' => 2, ), 'textStyle' => array( 'link' => array( 'url' => 'https://www.google.com', // Please set your URL. ), ), 'fields' => 'link', ), )), ];
Apabila menggunakan isi permintaan yang diubah suai ini, hiperpautan https://www.google.com
akan ditetapkan kepada imej yang dimasukkan dalam Dokumen Google.
Sebagai contoh, jika anda ingin mendapatkan semula startIndex dan endIndex daripada gambar yang dimasukkan dalam dokumen, anda boleh menggunakan skrip contoh berikut:
$doc = $docs_service->documents->get($document->getDocumentId(), ['fields' => 'body']); foreach ($doc->body->content as $content) { if (array_key_exists('paragraph', $content)) { foreach ($content->paragraph->elements as $element) { if (array_key_exists('inlineObjectElement', $element)) { $startIndex = $element->startIndex; $endIndex = $element->endIndex; print_r(array($startIndex, $endIndex)); } } } }