1

我正在 Illustrator 中创建一系列标签,在 excel 中使用 VBA(excel 工作表具有填充标签的信息),但我找不到指定 Illustrator 中出现的字体为斜体和特定字体的方法。

使用:

.TextRange.CharacterAttributes.TextFont = appIll.TextFonts.Item("Arial") 

提供与使用相同的结果:

.TextRange.CharacterAttributes.TextFont = appIll.TextFonts.Item("Monotype Corsiva")

不用说,我也不能得到斜体。我对此很陌生,但如果有人让我知道如何指定字体和字体样式,我将不胜感激。谢谢!

            .TextRange.ParagraphAttributes.Justification = aiCenter
            .TextRange.CharacterAttributes.size = dblTopLine1FontSize
            .TextRange.CharacterAttributes.StrokeWeight = 0.35
            .TextRange.CharacterAttributes.StrokeColor = clrStrokeColor
            .TextRange.CharacterAttributes.FillColor = clrFontFillColor
            SetItalics tfrmTopLine1
            .CreateOutline
        End With
4

1 回答 1

0

看看以下内容是否有帮助:

首先,冒着说明显而易见的风险,我首先确定我的 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 的“正确”方法或只是一种解决方法,但它可能会让您前进一点。

您可能还会发现此Adob​​e Illustrator CS5 脚本参考:vbScript很有用,尽管 Excel 中的对象浏览器也是一个很好的入门参考。

于 2014-11-19T23:47:52.150 回答