Как извлечь текст из метафайла в C#

Пример Перечислить записи в метафайле в C# показывает, как перечислить записи в метафайле. В этом примере перечислены записи, ищет те, которые представляют команды DrawString, и извлекает их текст.

Следующий код показывает метод обратного вызова, выполняемый для каждой записи метафайла.

Если запись представляет команду DrawString, код создает массив и копирует в него данные команды. Байты с 8 по 11 данных содержат длину строки, нарисованной командой, поэтому код использует BitConverter.ToInt32 для преобразования этих байтов в число, указывающее длину строки.

Символы в строке сохраняются как Unicode, начиная с байта 28 данных. В коде используется System.Text.Encoding.Unicode.GetString, чтобы получить строку. Параметры этого метода дают массив байтов, индекс первого байта в строке (28) и количество байтов в строке. Поскольку это Unicode, каждый символ занимает 2 байта, поэтому общее количество байтов в 2 раза больше количества символов.

После того, как он получит строку, пример добавляет ее в форму ListBox.

Источник: http://csharphelper.com/blog/2016/12/extract-text-from-a-metafile-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *