【问题标题】:Setting the autofit text property设置自动调整文本属性
【发布时间】:2023-03-27 16:17:01
【问题描述】:
我想将文本框自动修复设置为缩小形状,
我不明白如何在溢出时将现有的自动调整设置为 SHRINK 文本
我试过了
Slides.Presentations.Pages[0].get(presentationId, pageObjectId).pageElements[3].shape.shapeProperties.autofit
【问题讨论】:
标签:
google-apps-script
google-slides-api
google-slides
【解决方案1】:
您正在尝试使用 GET 请求来设置 shape 的属性。
如果你查看请求的documentation页面:
GET https://slides.googleapis.com/v1/presentations/{presentationId}/pages/{pageObjectId}
获取演示文稿中指定页面的最新版本。
此外,您使用的字段也是错误的。 Pages 是请求的一部分,您不能向它传递任何参数,pageObjectId 实际上是页面的 ID,而不是您尝试修改的对象的 ID。
为了设置更新对象的形状属性,您必须提出以下请求:
POST https://slides.googleapis.com/v1/presentations/{presentationId}:batchUpdate
并使用以下正文:
{
"requests": [
{
"updateShapeProperties": {
"objectId": "OBJECT_ID",
"shapeProperties": {
"autofit": {
"autofitType": "AUTOFIT_TYPE"
}
},
"fields": "autofit.autofitType"
}
}
]
}
但是,请务必注意以下几点,因为这可能是您收到 Autofit types other than NONE are not supported 错误的原因:
如果提出的请求可能会影响文本在其边界文本框中的大小,则该字段会自动设置为 NONE。在这种情况下,fontScale 应用于fontSize,lineSpacingReduction 应用于lineSpacing。这两个属性也都重置为默认值。
Google 的问题跟踪器here 已经提出了这种担忧,您可以看到这确实是这种情况下的预期行为。您可以改为使用here 表单提交功能请求,并提供所有必要的详细信息。
参考