Как уменьшить размер RTF со встроенными изображениями?

std::map operator [] не объявляется как const и не может произойти из-за его поведения:

T& оператор [] (константа Key& ключ)

Возвраты ссылка на значение, которое отображается на ключевом эквиваленте ключу, выполняя вставку, если такой ключ уже не существует.

В результате Ваша функция не может быть объявлена const и использовать функцию карты operator[].

std::map find() , позволяет Вам искать ключ, не изменяя карту.

find() возвраты iterator, или const_iterator к std::pair содержащий и ключ (.first) и значение (.second).

В C++ 11, Вы могли также использовать at() для [1 114]. Если элемент не существует, функция бросает std::out_of_range исключение, в отличие от [1 116].

14
задан A_M 10 September 2009 в 12:39
поделиться

2 ответа

Изображение в файле RTF сохраняется в несжатом виде в формате WMF. На Mac это будет macpict. Лучше всего сохранить размер файла меньшим - это связать изображение с документом, а не вставлять копию в документ. Компромисс заключается в том, что вам нужно хранить файлы вместе.

EDIT Можно ли сжимать RTF? Используя zip / rar, вы вернете размер файла, но, очевидно, сначала вам придется распаковать его. Предполагается, что существуют инструменты для сжатия RTF, но я никогда ими не пользовался.

5
ответ дан 1 December 2019 в 12:27
поделиться

Вот лучшее решение

http://support.microsoft.com/kb/224663

Выдержка:

SYMPTOMS

При сохранении документа Microsoft Word, содержащего EMF, PNG, GIF или JPEG графики в качестве другого формата файла (например, Слово 6.0/95 (.doc) или богатый текстовый формат (.rtf), размер файла документ может резко возрасти.

Например, документ Microsoft Word 2000, содержащий JPEG. графический файл, сохраненный в виде документа Word 2000, может иметь размер файла 45 568 байт (44,5 КБ). Однако, при сохранении этого файла в формате Word 6.0/95 (.doc) или как богатый текстовый формат (.rtf), размер файла может вырасти до 1 289 728 байт (1,22 Мб).

CAUSE

Эта функциональность по своей конструкции находится в Microsoft Word. Если В документ Word вставляется EMF, PNG, GIF или JPEG-график, при сохранении документа два экземпляра графики сохраняются в Документ. Графики сохраняются в соответствующих EMF, PNG, GIF или JPEG. формат, а также преобразуются в формат WMF (Windows Metafile).

РЕЗОЛЮЦИЯ

Предупреждение Если вы используете Редактор реестра неправильно, вы можете вызвать серьезные проблемы, которые могут требует переустановки операционной системы. Майкрософт не может гарантируем, что вы сможете решить проблемы, которые возникнут в результате использования реестра. Редактор неправильно. Используйте Редактор реестра на свой страх и риск.

Чтобы предотвратить сохранение Word двух копий графики в документе, и, чтобы уменьшить размер файла документа, добавьте ExportPictureWithMetafile=0 строковое значение в Microsoft Windows Реестр.

17
ответ дан 1 December 2019 в 12:27
поделиться
Другие вопросы по тегам:

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