2015-02-27 1 views
1

Я хочу, чтобы пользователь ghostscript оптимизировал PDF-файлы.Ghostscript - reembed font

Мои файлы генерируются iText, и есть шрифт, который встроен слишком много раз - 3000+;

Я хочу перепечатать документ с помощью ghostscript, который удалит все вложенные и встраивает его только один раз в файл.

Вы знаете, как это сделать?

И дополнительный вопрос - есть ли разница между ghostscript и ghost4j?

Thanks

ответ

0

Вы не можете этого сделать, скорее всего. Не видя файл, я не могу быть уверенным, но вероятность того, что каждый шрифт встроен в подмножество. То есть он содержит только несколько из глифов, которые первоначально присутствовали в шрифте.

Итак, если первый экземпляр содержит, скажем, a, c, f и g, а второй экземпляр содержит b, e и h, вы можете видеть, что два шрифта на самом деле разные.

Хуже того, текст обычно перекодируется, поэтому коды символов не то, что вы ожидаете. В приведенном выше примере «a» не будет иметь код символа 0x61 (ASCII для «a»), он будет иметь код символа 1. c будет 2, f будет 3 и так далее. Но во втором случае, код символа 1 будет «б», код символа 2 будет «х» и т.д.

Там нет простого способа рекомбинировать несколько подмножеств шрифта, а также повторно закодировать каждый набор текст в «комбинированный» шрифт.

Если устройство pdfwrite обнаруживает несколько подмножеств шрифтов, которые имеют совместимые кодировки (используемые коды символов уникальны в каждом шрифте), они объединят их вместе. Он не будет пытаться повторно закодировать их еще раз, поэтому, если два шрифта используют одни и те же коды символов (как в моем примере выше), pdfwrite просто испустит два шрифта.

Предполагая, что вы уже пробовали запустить файл через pdfwrite и не получили желаемого результата, то это не значит, что вы не можете добиться результата, который вы хотите с помощью текущего кода.

Возможно, вы можете указать iText не подмножать шрифты, что позволит решить проблему у вас в источнике, а не пытаться исправить ее впоследствии.

 Смежные вопросы

  • Нет связанных вопросов^_^