如何在 Photoshop 的文本框中垂直居中文本

平面设计 adobe-photoshop 文本 Photoshop脚本
2022-01-02 05:34:54

不能像在 Indd 中那样自动在 Ps 中垂直居中文本,这很烦人。更烦人的是,文本的边界框不能像 Indd 那样“折叠”或“适合文本”。

我可以将文本转换为形状,但随后我失去了颜色。我可以转换为智能对象,但当我导出为 pdf 时,它不再是矢量了。

是否有任何人知道可以使垂直居中文本更容易的工作?

4个回答

对于定位文本,您不需要边界框

我从不在 PS 中对文本使用边界框。我在不拖动的情况下单击文本工具并设置没有框的文本光标。输入文本后,我可以使用对齐按钮将其垂直或水平居中,就像任何其他形状一样——假设我有一些东西要对齐它。

我在 Illustrator 中做同样的事情。例如,我正在制作一个奖状丝带,一个中间有文字的圆圈。我画了一个圆圈,然后写了三行文字,中心对齐,没有边界框,甚至没有靠近圆圈的中心。然后我选择了圆圈和文本,然后点击垂直对齐中心,水平对齐中心,文本在圆圈中完全居中。

没有边界框的居中文本

虽然它不是自动的(您需要为每个文本手动调整它),但您可以使用Baseline Shift“模仿”垂直居中:

在此处输入图像描述

我今天找到了一种我不知道的方法,这部分正如 Michael Osterhus 所说,但我并没有真正理解他的初衷。

  1. 您只需单击一下即可编写文本,而不是可拖动的边界框。这可以放在任何你想要的地方。
  2. 下一步创建一个框,我使用矩形工具创建了一个框,我希望我的文本在该区域中垂直和水平对齐。
  3. 然后我选择了文本层和矩形层,并同时选择了它们,我进入Layer -> Align并按下了Vertical centers两者Horizontal centers

这个简单的策略给了我我所追求的确切结果,所以当你需要以某种方式居中文本时,这个漂亮的技巧非常有用。

如果这在以前不明显,则文本相对于您绘制的矩形水平和垂直对齐,因此如果您希望文本在整个文档上垂直对齐,则需要有一个该大小的矩形,依此类推。

这是我写的一个可能有效的脚本。不过我还没有测试过。

centerTextVertically( app.activeDocument.artLayers.getByName( 'Text-Layer-Name' ) );

/**
 * @param {ArtLayer} textLayer  The text layer to apply the vertical centering.
 */
function centerTextVertically( textLayer ) {
    if ( textLayer.kind !== LayerKind.TEXT ) {
        return; // No-op: Not a text layer
    }

    var verticalCenterOffset = textLayer.textItem.height / 2;
    var textCenterOffset = textLayer.textItem.size / 2;
    textLayer.textItem.baselineShift = textCenterOffset - verticalCenterOffset;
}