Метод CopyAsPicture в VBA в Word (я использую Word 2010 и 2016) предназначен для преобразования заданного фрагмента текста (некоторая строка, выбранная в документе) в изображение.
Microsoft предоставляет этот пример сценария в своих руководствах:
Sub CopyPasteAsPicture()
'Origin: https://docs.microsoft.com/en-us/office/vba/api/word.selection.copyaspicture
ActiveDocument.Content.Select
With Selection
.CopyAsPicture
.Collapse Direction:=wdCollapseEnd
.PasteSpecial DataType:=wdPasteMetafilePicture
End With
End Sub
Для тестирования метода CopyAsPicture я использовал, однако, следующий скрипт, который я нашел в связанном вопросе на этом форуме:
Sub CopySelPasteAsPicture()
' Take a picture of a selection and paste it at the document end
' Source: /7918792/preobrazovanie-teksta-v-izobrazhenie-v-microsoft-word
With Selection
.CopyAsPicture
End With
ActiveDocument.Content.Select
With Selection
.Collapse Direction:=wdCollapseEnd
.TypeParagraph
.TypeParagraph
.PasteSpecial DataType:=wdPasteMetafilePicture
End With
End Sub
Я проверил это, но обнаружил две проблемы с ним:
1) Размер текста игнорируется.Размер текста, скажем, 28 pt будет отображаться в полученном изображении как 12 pt или что-то в этом роде
2) Не все лица шрифта распознаются.У меня есть несколько специальных шрифтов (как в otf, так и в ttf), которые я хочу таким образом изобразить.Эти шрифты игнорируются, и вместо этого я получаю изображение стандартного шрифта (Times New Roman или любой другой).
Я не нахожу справки по этим вопросам в документации Microsoft по VBA.
Дополнительная информация:
1) Почему я хочу это сделать?Я использую некоторые редкие шрифты, которых обычно нет у людей, и включение их в .docx также не работает надежно.Я должен поделиться этими документами с коллегами, и они должны также видеть символы из специальных шрифтов.
2) Генерация изображений работает с кириллическими символами в стандартных шрифтах.Пока все хорошо.
3) Генерация изображений также работает со шрифтами, которые вместо картинок имеют клипарты (такие специальные шрифты используются, например, для детских книг или учебников для людей, обучающих чтению и письму)
4) Шрифтто, что в моем случае не изобразил (но заменил картинками некоторого стандартного системного шрифта), это шрифт, который я получил как .otf, но я преобразовал его в .ttf (потому что я думал, что мог тогда включать в документы, но это сделалотоже не работает).- До сих пор я не проверял, будет ли он работать с оригинальным otf, но я сомневаюсь в этом, потому что до сих пор не было проблем с шрифтами ttf и otf.
Вопрос:
Я хотел бы понять , почему размер шрифта и некоторые грани шрифта игнорируются.
Конечно, идеи, как это решить, также приветствуются.