Распечатайте все символы для шрифта в [закрытом] MS Word

5
задан niton 18 March 2015 в 01:05
поделиться

4 ответа

Есть какая-то конкретная причина, по которой он должен быть в Word? Это просто для визуализации всех символов шрифта? Если это так, вы можете использовать Font Book в OS X и перейти к Print, выбрать Report Type: Repetoire и сохранить в PDF.

Edit: Кажется, я пропустил «автоматические тесты». Не обращайте внимания.

1
ответ дан 15 December 2019 в 06:28
поделиться

Блин ... Я сделал что-то подобное давным-давно ... Да, это возможно.

Хорошим началом является MSDN


Отредактировано для добавления:

Я знал, что делал что-то подобное раньше. Просматривая некоторые из моих старых писем, я нашел макрос, который я отправил моему другу, содержащий именно это. Вот он:

Sub GenerateFontCatalog()
'
' Macro created in 05/14/2008 by Paulo Santos
'
Dim i As Long
Dim j As Long
Dim fnt As String
Dim doc As Document
Dim fnts() As String

'*
'* Get all font names
'*
Word.StatusBar = "Reading Font Names..."
ReDim fnts(Word.FontNames.Count)
For i = 1 To Word.FontNames.Count
    fnts(i) = Word.FontNames.Item(i)
    DoEvents
Next

'*
'* Sort alphabetically
'*
Word.StatusBar = "Sorting Font Names..."
For i = 1 To UBound(fnts)
    For j = i + 1 To UBound(fnts)
        If (fnts(i) > fnts(j)) Then
            fnt = fnts(i)
            fnts(i) = fnts(j)
            fnts(j) = fnt
        End If
    Next
    DoEvents
Next

Word.StatusBar = "Generating Font Catalog..."

Set doc = Application.Documents.Add()
doc.Activate

'*
'* Page configuration
'*
With ActiveDocument.PageSetup
    .Orientation = wdOrientPortrait
    .TopMargin = CentimetersToPoints(2)
    .BottomMargin = CentimetersToPoints(2)
    .LeftMargin = CentimetersToPoints(2)
    .RightMargin = CentimetersToPoints(2)
End With

For i = 1 To UBound(fnts)
    '*
    '* Write font name
    '*
    Selection.Font.Name = "Arial"
    Selection.Font.Size = 10
    If (i > 1) Then
        Selection.TypeParagraph
        Selection.ParagraphFormat.KeepTogether = False
        Selection.ParagraphFormat.KeepWithNext = False
        Selection.TypeParagraph
    End If
    Selection.TypeText fnts(i)
    Selection.ParagraphFormat.KeepWithNext = True
    Selection.TypeParagraph

    '*
    '* Write font sample
    '*
    Selection.Font.Name = fnts(i)
    Selection.Font.Size = 16
    Selection.TypeText "ABCDEFGHIJKLMNOPQRSTUVWXYZ" & Chr(11)
    Selection.TypeText "abcdefghijklmnopqrstuvwxyz" & Chr(11)
    Selection.TypeText "0123456789"
    Selection.ParagraphFormat.KeepTogether = True

    DoEvents
Next

'*
'* Adjust cursor position
'*
Selection.HomeKey Unit:=wdStory
Selection.InsertBreak Type:=wdSectionBreakNextPage
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.MoveUp Unit:=wdLine, Count:=1

Word.StatusBar = "Generating Font Index..."
For i = 1 To UBound(fnts)
    Selection.Font.Name = "Arial"
    Selection.Font.Size = 10
    Selection.TypeText fnts(i) & vbTab
    Selection.Font.Name = fnts(i)
    Selection.TypeText "ABC abc 123"
    Selection.TypeParagraph
Next

'*
'* Split the document in two columns
'*
With Selection.Sections(1).PageSetup.TextColumns
    .SetCount NumColumns:=2
    .EvenlySpaced = True
    .LineBetween = False
End With
Selection.HomeKey Unit:=wdStory, Extend:=True
Selection.ParagraphFormat.TabStops.Add Position:=Selection.Sections(1).PageSetup.TextColumns(1).Width, Alignment:=wdAlignTabRight, Leader:=wdTabLeaderSpaces

Selection.HomeKey Unit:=wdStory
Word.StatusBar = ""

End Sub
1
ответ дан 15 December 2019 в 06:28
поделиться

Было бы неплохо вставить

Быстрый коричневый лис перепрыгивает через ленивая собака

и петля через шрифты, которые нужно протестировать с помощью макроса

.
0
ответ дан 15 December 2019 в 06:28
поделиться

Похоже, неплохой компромисс - создать html файл с &#XXX; записи для каждого символа, а затем открыть его с помощью MS Word.

0
ответ дан 15 December 2019 в 06:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: