看看以下内容是否有帮助:
首先,冒着说明显而易见的风险,我首先确定我的 Illustrator 副本确实可以访问我“需要”使用的字体——碰巧,要在代码中使用Monotype Corsiva,它必须是“ MonotypeCorsiva ”!这里的教训是,“真实”字体名称可能与 Illustrator 显示的字体名称不同,并且“真实”字体名称也表示“样式”。我使用了以下代码,它只是将字体及其“样式”列在 Excel 的即时窗口中。此示例需要打开 Illustrator。
Sub IllFnts()
Dim IApp As New Illustrator.Application
Set IApp = GetObject(, "Illustrator.Application")
Dim fnt As Illustrator.TextFont
For Each fnt In IApp.TextFonts
Debug.Print fnt.Name & " - " & fnt.Style
Next
End Sub
然后我添加了一个点文本框,添加了一些文本并使用以下代码更改了 TextFont:
编辑 - 更新以包括应用斜体的方式
Sub TestChngeFnt()
Dim IApp As New Illustrator.Application
If IApp Is Nothing Then
Set IApp = CreateObject("Illustrator.Application")
Else
Set IApp = GetObject(, "Illustrator.Application")
End If
Dim fnt As Illustrator.TextFont
'A distinctive font for reference?
Set fnt = IApp.TextFonts("Algerian")
'Add a Document
Set docRef = IApp.Documents.Add()
'Add some Point Text
Set pointTextRef = docRef.TextFrames.Add()
pointTextRef.Contents = "Some Text in a Point TextFrame"
pointTextRef.Top = 700
pointTextRef.Left = 20
pointTextRef.Selected = True
pointTextRef.TextRange.CharacterAttributes.Size = 35
IApp.Redraw
'Set distinctive font
IApp.Documents(1).TextFrames(1).TextRange.CharacterAttributes.TextFont = IApp.TextFonts.Item(fnt.Name)
MsgBox "Have a look at the text font before changing to another."
'set a new font to 'regular'
Set fnt = IApp.TextFonts("BodoniMT")
IApp.Documents(1).TextFrames(1).TextRange.CharacterAttributes.TextFont = IApp.TextFonts.Item(fnt.Name)
MsgBox "New text font before changing to italics."
'set font to 'italics' within the same font family?
Set fnt = IApp.TextFonts("BodoniMT-Italic")
IApp.Documents(1).TextFrames(1).TextRange.CharacterAttributes.TextFont = IApp.TextFonts.Item(fnt.Name)
End Sub
此示例包含几个消息框,用于暂停代码以观察文本更改。在此示例中应用“斜体”真的是从设计为斜体的同一字体系列中选择一种字体吗?不完全确定这是否是 Illustrator 的“正确”方法或只是一种解决方法,但它可能会让您前进一点。
您可能还会发现此Adobe Illustrator CS5 脚本参考:vbScript很有用,尽管 Excel 中的对象浏览器也是一个很好的入门参考。