cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memautkan imej dalam fail DOC menggunakan API Google?

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粉449281068P粉449281068482 hari yang lalu622

membalas semua(1)saya akan balas

  • P粉083785014

    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.

    Contoh:

    $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',
                ),
            )
        )
    ));

    Contoh:

    $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));
                    }
                }
            }
        }
      • Dalam skrip anda, nilai $startIndex dan $endIndex masing-masing adalah 1 dan 2. Sila gunakan nilai ini dengan skop updateTextStyle seperti yang ditunjukkan dalam pengubahsuaian di atas.

    balas
    0
  • Batalbalas