Страницы

Поиск по вопросам

суббота, 16 марта 2019 г.

Сохранение RichTextBox в rtf формат

Нужно сохранить RichTextBox в rtf формат. Вроде ничего сложного, но у меня появилась одна проблема. У меня в RichTextBox есть немного текста. Сохраняю в rtf файл:
exRichTextBox1.SaveFile("zzz.rtf", RichTextBoxStreamType.RichText);
Размер полученного файла как и предполагалось несколько килобайт. Но я еще в RichTextBox вставляю картинки.
exRichTextBox1.InsertImage(Image.FromFile("photo1.jpg")); exRichTextBox1.InsertImage(Image.FromFile("photo2.jpg"));
Так же само сохраняю в файл:
exRichTextBox1.SaveFile("zzz.rtf", RichTextBoxStreamType.RichText);
И полученный файл занимает около 25мб. Сами картинки в суме занимают 1,5мб. Пробивал одну картинку на 0,5мб и полученный файл занимает около 10мб. Короче файл в формате rtf занимает памяти в 15-20 раз больше чем должен. В чем может быть проблема?


Ответ

Как я понял размер полученного RTF файла больше, потому что RTF сохраняет изображение в формате WMF (Windows Metafile), несжатый формат, из-за этого и размер такой большой. И единственный способ уменьшить размер файла, это архивировать его в rar/zip. Или сделать вот эти изменение в реестре, и пересохранить RTF файл в ворде. Тогда размер уменьшится в 2 раза. А если RTF файл сохранить в формате docx, то размер уменьшится в 4 раза (у меня так вышло).

Комментариев нет:

Отправить комментарий