Как центрировать встроенные изображения с помощью Google Docs API v1 и Python - PullRequest
1 голос
/ 05 июля 2019

Я пытаюсь центрировать изображение, используя Google Docs API и Python, я следовал документации, в которой предлагается определить встроенное изображение. Изображение показывается в сгенерированном документе, но не находится в центре документа. Есть ли способ отцентрировать изображение? Вот мой код:

        requests = [
    {
        'replaceAllText': {
            'containsText': {
                'text': '{{ customer.name }}',
                'matchCase': 'true'
            },
            'replaceText': context['customer'],
        }},
    {
        'insertInlineImage': {
            'location': {
                'index': 55
            },
            'uri':
                'https://www.gstatic.com/images/branding/product/1x/docs_64dp.png',
            'objectSize': {
                'height': {
                    'magnitude': 50,
                    'unit': 'PT'
                },
                'width': {
                    'magnitude': 50,
                    'unit': 'PT'
                }
            }
        }
    }
]
risk_assessment_customer = drive_service.files().copy(fileId=DOCUMENT_ID, body={}).execute()
result = service.documents().batchUpdate(
    documentId=risk_assessment_customer['id'], body={'requests': requests}).execute()
request = drive_service.files().export_media(fileId=result['documentId'],
                                             mimeType='application/pdf')

Спасибо

1 Ответ

0 голосов
/ 05 июля 2019
  • Вы хотите вставить встроенное изображение в центр документа, используя Google Docs API.
  • Вы уже использовали Google Docs API с клиентской библиотекой Google для Python.

Если мое понимание верно, как насчет этой модификации? В этой модификации я изменил тело вашего запроса.

Точка модификации:

  • Для выравнивания изображения по центру используется updateParagraphStyle.

Модифицированное тело запроса:

Пожалуйста, замените тело запроса следующим образом.

requests = [
    {
        'replaceAllText': {
            'containsText': {
                'text': '{{ customer.name }}',
                'matchCase': 'true'
            },
            'replaceText': context['customer'],
        }
    },
    {
        "insertInlineImage": {
            "location": {
                "index": 55
            },
            "uri": "https://www.gstatic.com/images/branding/product/1x/docs_64dp.png",
            "objectSize": {
                "height": {
                    "magnitude": 50,
                    "unit": "PT"
                },
                "width": {
                    "magnitude": 50,
                    "unit": "PT"
                }
            }
        }
    },
    {
        "updateParagraphStyle": {
            "range": {
                "startIndex": 55,
                "endIndex": 56
            },
            "paragraphStyle": {
                "alignment": "CENTER"
            },
            "fields": "alignment"
        }
    }
]

Справка:

Если это не тот результат, которого вы хотите, я прошу прощения.

...