Para algunas pruebas automáticas, necesito crear un documento de Word que contenga todos los caracteres de una fuente (para varias fuentes diferentes). ¿Existe una manera fácil de crear una macro que recorre todos los caracteres disponibles en una fuente (y los inserta en un documento)?Imprimir todos los caracteres de una fuente en MS Word
Respuesta
Caray ... He hecho algo así hace mucho tiempo ... Sí, es posible hacerlo.
Un buen comienzo es la MSDN
Editado para añadir:
sabía que había hecho algo como esto antes. Al revisar algunos de mis correos electrónicos anteriores, encontré una macro que le envié a un amigo mío que contiene exactamente esto. Aquí está:
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 ""
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
Realmente no necesito una lista de fuentes, sino una lista de todos los caracteres en una fuente. – leonm
Bonito macro (aunque no es exactamente lo que el solicitante quería en este caso particular) - ¡gracias por compartir! – monojohnny
¿Hay alguna razón particular por la que debe estar en Word? ¿Es esto simplemente para visualizar todos los caracteres de una fuente? Si es así, puede usar el Libro de fuentes en OS X y vaya a Imprimir, seleccione Tipo de informe: Repetoire y guarde en PDF.
Editar: Parece que me perdí "pruebas automatizadas". Indiferencia.
Parece un compromiso bastante bueno crear un archivo html con & #XXX; entradas para cada personaje y luego abrir eso con MS Word.
¿Por qué el voto a favor? Parece una solución perfectamente aceptable, especialmente porque no se puede acceder a la lista de caracteres en Word. – leonm
Será buena idea para insertar
El rápido zorro marrón salta sobre el perro perezoso
y bucle a través de las fuentes que necesitan ser probados utilizando una macro.
http://en.wikipedia.org/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog se puede ver para obtener más detalles – Thunder
Programas como MS Word no podrán decirle qué caracteres están disponibles en una fuente. Por lo que puedo decir por experiencia, solo la aplicación "Mapa de caracteres" de la ventana puede mostrarlo. El Mapa de caracteres se puede encontrar en el menú Inicio a través de Accesorios o, alternativamente, mediante Inicio, Ejecutar ... y escribiendo "charmap", pero no existe un método conveniente para recopilar estos caracteres del Mapa de caracteres o MS Word.
Estrictamente en Word, no tengo idea si es posible, pero ya que puede ejecutar scripts en Word, estoy seguro de que es posible leer los archivos de fuente y leer sus datos binarios para recopilar los caracteres disponibles en su interior. ese es el camino largo y posiblemente la única forma de obtener lo que deseas.
No he podido encontrar un programa adecuado en línea para hacer esto por mí tampoco, lo siento.
- 1. ¿Cómo manejas los caracteres "especiales" que MS Word agrega?
- 2. Visual Studio: ¿Imprimir todos los archivos fuente en una solución?
- 3. Imprimir un documento OOXML sin MS Word instalado
- 4. Ejecutar código vba externo en MS Word
- 5. Coldfusion no convierte texto acentuado o caracteres MS Word
- 6. apoyo MS Word en IOS
- 7. Desarrollo de complemento MS Word
- 8. extracción de datos de MS Word
- 9. Resaltado de sintaxis en MS Word
- 10. Lograr la calidad de impresión de MS Word en C#
- 11. Resaltado de sintaxis en el documento de MS Word
- 12. Regex para todos los caracteres de IMPRESIÓN
- 13. Cómo imprimir todos los valores de una matriz en Perl
- 14. Pegar desde MS Word en Textarea
- 15. ¿Cómo puedo detectar los caracteres definidos en una fuente?
- 16. Imprimir caracteres especiales en php
- 17. tinyMCE Eliminación de etiquetas MS Word
- 18. Imprimir recursivamente todos los archivos de Vim
- 19. Retire MS Word "HTML" usando PHP
- 20. Obtener PID de MS-Word ApplicationClass?
- 21. método genérico para imprimir todos los elementos de una matriz
- 22. Eliminar todos los caracteres especiales de una cadena en R?
- 23. Obtener caracteres admitidos de una fuente - en C#
- 24. ¿Cómo evitar la revisión ortográfica del código fuente en MS Word?
- 25. Identificar encabezado en un documento de ms word usando C#
- 26. MS Word document file generate index
- 27. Conversión de documentos de MS Word a PDF en ASP.NET
- 28. ¡MS Word es malo! ¿Hay una buena alternativa?
- 29. Java: PDI de Apache: ¿Puedo obtener un texto limpio de los archivos de MS Word (.doc)?
- 30. Lectura/escritura de archivos de MS Word en Python
Por favor edite su pregunta y reemplace el personaje con glifo. Las fuentes no contienen caracteres sino glifos. – bogdan