THotPDF.CompactFontSubsetting

THotPDF

 

Properties  EnableFontSubsetting  FontEmbedding

Определяет, перенумеровывают ли сабсеты шрифтов оставленные глифы — за счёт этого они становятся значительно меньше

 

Синтаксис Delphi:

property CompactFontSubsetting: Boolean;

 

Синтаксис C++:

__property bool CompactFontSubsetting;

 

Описание

Установите CompactFontSubsetting в true перед BeginDoc, чтобы строить компактные сабсеты шрифтов. Обычный сабсет сохраняет нумерацию глифов исходного шрифта: неиспользуемые глифы опустошаются, но шрифт по-прежнему объявляет каждый глиф и несёт для каждого запись позиции и ширины. Для CJK-шрифта с 20 000–30 000 глифов только эти таблицы добавляют свыше 200 KB до сжатия, даже если на странице показано два символа

 

Компактный сабсет перенумеровывает оставленные глифы в плотный диапазон и перестраивает глифовые таблицы только для них. Контент страницы по-прежнему ссылается на исходные номера глифов как на CID, а явный stream /CIDToGIDMap (ISO 32000-1 9.7.4.2) отображает их на перенумерованные глифы, поэтому текст, ширины и извлечение текста не меняются. Два китайских иероглифа в SimSun занимают около 25 KB данных шрифта в обычном сабсете и около 3 KB в компактном

 

Свойство применяется к TrueType-шрифтам, которые записываются как Type 0, когда включён EnableFontSubsetting, и к шрифту, зарегистрированному через RegisterUnicodeTTF, — он сабсетится всегда. OpenType-CFF-шрифты используют обычный сабсет. Если компактный сабсет для шрифта построить не удаётся, HotPDF откатывается к обычному

 

По умолчанию свойство выключено, поэтому существующий вывод не меняется. Для PDF/A зарегистрированный шрифт всегда получает компактный сабсет. Компактный сабсет лучше всего подходит для финального вывода: текст, добавленный в документ позже тем же шрифтом, потребует нового сабсета, а объединяемые позже документы не смогут использовать общий сабсет одного и того же шрифта

 

См. также: EnableFontSubsetting, FontEmbedding, RegisterUnicodeTTF