如何判断文本是否适合其边界形状?

Jos*_*oss 10 google-apps-script google-slides

我正在使用占位符形状和应用程序脚本将 google 电子表格中的数据合并到幻灯片演示文稿中,类似于本示例的内容

我的合并运行良好。我遇到的第一个问题是文本不受包含它的形状的约束。如果文本不适合边界形状,它只会溢出:

文本框的文本溢出边界

如果我能以某种方式以编程方式告诉文本已溢出,那将不会是一个问题。据我所知,虽然我只能得到边界形状高度。即使它现在“包含”覆盖幻灯片上更大高度的文本,它也不会改变。我似乎无法获得实际文本的高度。

有什么方法可以告诉文本范围的高度是多少,或者它已经溢出,以便我可以调整文本的某些特征(字体大小或实际文本的长度等),以便文本受文本框约束?或者至少提醒用户文本已溢出。

如果这有助于描述我正在寻找的属性,那么与此等效的 PowerPoint 将是textrange.boundheight,如果具有类似的属性,那么我希望能够实现类似于AutoSize功能的功能。

将文本合并到幻灯片而没有某种方式使文本适合占位符形状对我来说似乎没什么用。

Kos*_*Kos 2

在此输入图像描述

自 2021 年 1 月起,您可以在 Google 幻灯片编辑器中设置自动调整设置。

当您单击内部形状时,您可以看到新的自动调整设置,默认 设置为“不自动调整”:在此输入图像描述

您可以将其更改为“溢出时缩小文本”:

在此输入图像描述

或者另一个选项:“调整形状大小以适合文本”:

在此输入图像描述

更新(2021 年 7 月):Shape 元素有新autofit属性:

自动调整类型

形状的自动调整类型。如果自动调整类型为AUTOFIT_TYPE_UNSPECIFIED,则自动调整类型将从父占位符(如果存在)继承。NONE如果发出的请求可能会影响其边界文本框内的文本适配,则该字段会自动设置为。在这种情况下,fontScale应用于fontSizelineSpacingReduction应用于lineSpacing。这两个属性也重置为默认值。

fontScale - 只读

应用于形状的字体比例。autofitType NONE对于具有或 的形状SHAPE_AUTOFIT,此值为默认值 1。对于TEXT_AUTOFIT,此值乘以 得到fontSize在编辑器中呈现的字体大小。

lineSpacingReduction - 只读

应用于形状的行间距减小。autofitType NONE对于带有或 的形状SHAPE_AUTOFIT,该值是默认值 0。对于TEXT_AUTOFIT,从 中减去该lineSpacing值得到在编辑器中呈现的行间距。

PSautofitType可能没有在文档中标记为只读,但似乎存在一个错误,目前阻止了一种简单的方法来设置它(设置为除 之外的任何其他值NONE),请参阅https://issuetracker.google.com/issues/189153562#comment5https://developers.google.com/apps-script/reference/slides/autofit(刚刚getAutofitType()可用)