Я считаю, что ваша цель заключается в следующем.
- Вы хотите соединить 2 фигуры с линией в Google Slides.
- Вы хотите добиться этого, используя Slides API с Google Apps Script .
Для этого, как насчет этого ответа?
Точки модификации:
- В
createLine
нет свойства lineProperties
. - Нет свойства
lineType
в LineProperties
. - В вашем теле запроса свойство
fields
не используется. - Для подключения 2 фигуры с линией, в вашей ситуации, как насчет следующего потока?
- Создайте объект линии, используя
createLine
. - Обновите объект линии, используя
lineProperties
. lineProperties
можно использовать для существующего объекта линии, используя UpdateLinePropertiesRequest
.
Модифицированный скрипт:
Когда ваш скрипт изменяется, он становится следующим:
function addConnections() {
var myPresentation = SlidesApp.getActivePresentation()
var presentationId = myPresentation.getId();
var slideId = myPresentation.getSlides()[0].getObjectId();
var lineObjectId = "sampleline001";
var startShape = "queryD200";
var endShape = "queryD201";
var requests = [
{createLine: {
objectId: lineObjectId,
lineCategory: "CURVED",
elementProperties: {pageObjectId: slideId, size: {height: {magnitude: 1 ,unit: "PT"}, width: {magnitude: 1, unit: "PT"}}}
}},
{updateLineProperties: {
objectId: lineObjectId,
lineProperties: {startConnection: {connectedObjectId: startShape}, endConnection: {connectedObjectId: endShape}},
fields: "startConnection,endConnection"
}}
];
Slides.Presentations.batchUpdate({requests: requests}, presentationId);
}
Пример сценария:
В качестве другого шаблона вы также можете добиться этого, используя вместо этого Slides service API слайдов.
function addConnections() {
var myPresentation = SlidesApp.getActivePresentation()
var presentationId = myPresentation.getId();
var slide = myPresentation.getSlides()[0];
var slideId = slide.getObjectId();
var startShape = "queryD200";
var endShape = "queryD201";
var line = slide.insertLine(
SlidesApp.LineCategory.CURVED,
slide.getPageElementById(startShape).asShape().getConnectionSites()[0],
slide.getPageElementById(endShape).asShape().getConnectionSites()[0]
);
}
Результат:
Если оба сценария работают над двумя фигурами, можно получить следующий результат:
Примечание:
- Я не уверен, что идентификаторы объектов формы
queryD200
и queryD201
являются правильными. Поэтому, пожалуйста, будьте осторожны.
Ссылки: