ОПТИМИЗИРОВАННОЕ РАЗБИЕНИЕ НА НАБОРЫ ШРИФТОВ ДЛЯ ПУТИ ПЕЧАТИ
OPTIMISED FONT SUBSETTING FOR PRINT PATH

УРОВЕНЬ ТЕХНИКИ
Использование формата документа с фиксированной структурой (например, XPS) в решении для печати, как правило, включает в себя создание документа с фиксированной структурой (например, документа XPS), который позже передают в виде буферного файла на подсистему печати. Зачастую этот документ с фиксированной структурой содержит ресурсы шрифтов, которые используются для воспроизведения документа с фиксированной структурой. Включение ресурсов со шрифтами является полезным, когда документ с фиксированной структурой отправляется от клиента к другому вычислительному устройству (например, серверу печати), так как другое вычислительное устройство может не иметь шрифтов, к которым имел доступ клиент. Встраивание всех шрифтов в документ с фиксированной структурой может генерировать большой файл, создание которого и осуществление связи между компонентами занимает много времени. Перекомпоновка шрифтов (то есть создание меньшей версии того же самого шрифта, которая содержит только необходимые элементы шрифта (например, глифы), используемые в файле) может уменьшить размер файла; однако перекомпоновка шрифтов может задержать начало печати.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Варианты осуществления изобретения определяются формулой изобретения ниже, а не этим разделом. Обзор высокого уровня различных аспектов изобретения предоставлен здесь для того, чтобы предоставить обзор раскрытия и представить набор концепций, которые дополнительно описаны ниже в разделе подробного описания. Этот раздел не предназначен для определения главных особенностей или существенных особенностей заявленного объекта изобретения, равно как он не предполагается для использования в качестве отдельного средства для определения объема заявленного объекта изобретения.
Сущность изобретения, описанная здесь, направлена на предоставление информации для отрисовки шрифтов (например, файла XPS), которая используется для печати документа. Например, принимается файл шрифта, который определяет тип шрифта, содержащийся в документе. Определяется, что количество страниц документа не превышает порог оптимизации перекомпоновки. Когда количество страниц не превышает порог, генерируется перекомпонованный файл шрифта для типа шрифта. Перекомпонованный файл предоставляется, например, через спул-файл (буферный файл) на подсистему печати.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Ниже подробно описаны иллюстративные варианты осуществления настоящего изобретения со ссылкой на прилагаемые чертежи, на которых:
фиг. 1 - блок-схема, изображающая иллюстративное вычислительное устройство, подходящее для использования, в соответствии с вариантами осуществления изобретения;
фиг. 2 - блок-схема иллюстративной операционной среды в соответствии с вариантом осуществления настоящего изобретения;
фиг. 3 - блок-схема иллюстративной операционной среды в соответствии с вариантом осуществления настоящего изобретения; и
фиг. 4 - иллюстративная блок-схема последовательности операций в соответствии с вариантом осуществления настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Сущность вариантов осуществления настоящего изобретения описана здесь с детализацией для удовлетворения нормативных требований. Но само описание не предназначено для обязательного ограничения объема формулы изобретения. Скорее заявленный объект изобретения может быть воплощен иными путями так, чтобы включать в себя другие этапы или комбинации этапов, подобные описанным в этом документе, в сочетании с другими настоящими или будущими технологиями. Термины не должны интерпретироваться как подразумевающие какой-либо определенный порядок среди или между различными этапами, раскрытыми здесь, если и за исключением тех случаев, когда порядок отдельных этапов указан явно.
В целом, вариант осуществления настоящего изобретения направлен на предоставление информации для отрисовки шрифтов (например, файла XPS), которая используется для печати документа. Согласно фиг. 2 принимается файл 216 шрифта, который определяет тип 218 шрифта, содержащийся в документе 214. Выполняется определение, что количество страниц 220 не превышает порог оптимизации перекомпоновки. Генерируется перекомпонованный файл 222 шрифта типа шрифта (например, типа А шрифта). Как изображено стрелкой 224, перекомпонованный файл 222 шрифта предоставляется для использования при печати документа 214.
После краткого описания варианта осуществления, далее описывается фиг. 1, на которой показана и обозначена в целом как
вычислительное устройство 100 иллюстративная операционная среда для реализации вариантов осуществления настоящего изобретения. Вычислительное устройство 100 является всего лишь одним примером подходящей вычислительной среды и не предназначено для предложения какого-либо ограничения относительно объема использования или функциональности вариантов осуществления изобретения. Также вычислительное устройство 100 не должно интерпретироваться как имеющее какую-либо зависимость или требование, относящееся к какому-либо одному или комбинации изображенных компонентов.
Варианты осуществления изобретения могут быть описаны в общем контексте машинного кода или инструкций для использования машиной, в том числе исполняемых компьютером инструкций, таких как программные модули, исполняемые компьютером или другой машиной, например карманным компьютером или другим карманным устройством. Как правило, под программными модулями, в том числе подпрограммами, программами, объектами, компонентами, структурами данных и т.д. имеется в виду код, который выполняет определенные задачи или реализует определенные абстрактные типы данных. Варианты осуществления изобретения могут быть осуществлены в различных конфигурациях системы, в том числе карманных устройствах, бытовой электронике, компьютерах общего назначения, вычислительных устройств с более узкой специализацией и т.д. Варианты осуществления изобретения могут также быть осуществлены в распределенных вычислительных средах, где задачи выполняются устройствами удаленной обработки, соединенными через сеть связи.
Варианты осуществления настоящего изобретения могут быть воплощены в том числе в виде способа, системы или набора инструкций, воплощенных на одном или более машиночитаемых носителях. Машиночитаемые носители включают в себя как энергозависимые, так и энергонезависимые носители, съемные и несъемные носители, и предполагают носители, считываемые базой данных, коммутатором и различными другими сетевыми устройствами. Например, машиночитаемые носители содержат носители, реализованные с помощью любого способа или технологии для хранения информации. Примеры сохраненной информации включают в себя инструкции для использования компьютером, структуры данных, программные модули и другие способы представления данных. Примеры носителей включают в себя, но не ограничиваются только этим, среду доставки информации, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD), голографические носители или другие запоминающие устройства на оптических дисках, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках и другие магнитные запоминающее устройства. Эти технологии могут хранить данные мгновенно, временно или постоянно.
На фиг. 1 вычислительное устройство 100 включает в себя шину 110, которая прямо или косвенно соединяет следующие устройства: память 112, один или более процессоров 114, один или более компонентов 116 для воспроизведения, порты 118 ввода-вывода, компоненты 120 ввода-вывода и источник 122 питания. Шина 110 представляет то, что может быть одной или более шинами (например, адресная шина, шина данных или их комбинация). Хотя различные блоки на фиг. 1 для наглядности показаны с помощью линий, в действительности, разграничение различных компонентов не является полностью однозначным и, метафорически, более правильно линии следовало бы изобразить серыми и нечеткими. Например, можно рассматривать компонент для воспроизведения, например устройство отображения, как компонент ввода-вывода. Также процессоры имеют память. Должно быть понятно, что такова природа данной области техники и что схема на фиг. 1 является просто иллюстрацией примера вычислительного устройства, которое может использоваться применительно к одному или более вариантам осуществления настоящего изобретения. Не проводится различия между такими категориями, как "рабочая станция", "сервер", "ноутбук", "карманное устройство" и т.д., поскольку все они рассматриваются в рамках фиг. 1 и относятся к "вычислительным устройствам".
Вычислительное устройство 100 обычно включает в себя множество машиночитаемых носителей. Например, машиночитаемые носители могут включать в себя оперативную память (RAM); постоянную память (ROM); электрически стираемую программируемую постоянную память (EEPROM); флэш-память или другие технологии памяти; CD-ROM, цифровые универсальные диски (DVD) или другие оптические или голографические носители; магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающее устройства, несущую волну или любую другую среду, которая может использоваться для кодирования требуемой информации и к которой может иметь доступ вычислительное устройство 100.
Память 112 включает в себя компьютерные носители информации в виде энергозависимой и/или энергонезависимой памяти. Память может быть съемной, несъемной или их комбинацией. Иллюстративные устройства включают в себя твердотельную память, жесткие диски, оптические дисководы и т.д. Вычислительное устройство 100 включает в себя один или более процессоров 114, которые читают данные из различных структур, таких как память 112 или компоненты 120 ввода-вывода. Компонент(ы) 116 для воспроизведения представляют сигналы данных пользователю или другому устройству. Иллюстративные компоненты для воспроизведения включают в себя устройство отображения, громкоговоритель, компонент для печати, вибрирующий компонент и т.д.
Порты 118 ввода-вывода позволяют вычислительному устройству 100 быть логически соединенным с другими устройствами, в том числе компонентами 120 ввода-вывода, некоторые из которых могут быть встроенными. Иллюстративные компоненты включают в себя микрофон, джойстик, игровой планшет, спутниковую антенну, сканер, принтер, беспроводное устройство и т.д.
На фиг. 2 иллюстративная операционная среда, подходящая для осуществления варианта осуществления изобретения, изображена и обозначена в целом ссылочной позицией 210. Среда 210 включает в себя документы 214, 226 и 228, оптимизатор 230 перекомпоновки, модуль перекомпонования 232 шрифта и подсистему 234 печати. В варианте осуществления настоящего изобретения оптимизатор 230 перекомпоновки и модуль перекомпонования 232 шрифта обрабатывают документы 214, 226 и 228 по одному перед отправкой каждого документа 214, 226 и 228 в подсистему 234 печати. Например, когда документ 214 преобразуется в формат для печати (например, XPS или другой формат документа с фиксированной структурой), оптимизатор 230 перекомпоновки и модуль перекомпонования 232 шрифта работают совместно для перекомпоновки шрифтов 218, 236 и 238 таким образом, чтобы оптимизировать размер буферного файла и время, которое проходит перед началом печати (то есть время начала печати). Документы 214, 226, 228 могут включать в себя множество форматов, например DIRECT2D, которые при печати могут быть преобразованы в формат документа с фиксированной структурой.
Каждый из документов 214, 226 и 228 изображен включающим в себя тип 218, 236 и 238 шрифта. Аналогично каждый тип 218, 236 и 238 шрифта включает в себя файл 216, 240 и 242 шрифта. Как правило, файл шрифта определяет тип шрифта путем включения в себя набора элементов (например, глифов, знаков, символов и т.д.), которые могут использоваться вычислительным устройством для получения отрисовки типа шрифта. Например, файл 216 шрифта включает в себя набор элементов, которые могут использоваться для отрисовки типа 218 шрифта в документе 214. Для иллюстративных целей тип 218 шрифта изображен как "тип А шрифта", тип 236 шрифта также изображен как "тип А шрифта", а тип 238 шрифта изображен как "тип ZX шрифта". В варианте осуществления настоящего изобретения файл 216, 240 и 242 шрифта включает в себя полный набор элементов, которые используются для отрисовки соответствующего шрифта, независимо от того, включен ли глиф типа шрифта в соответствующий документ. Например, файл 216 шрифта включает в себя полный набор элементов, которые используются для отрисовки типа 218 шрифта, независимо от того, содержится ли глиф типа 218 шрифта в документе 214. Только один тип шрифта каждого документа изображен на фиг. 2; однако, каждый из документов 214, 226 и 228 может также включать в себя дополнительные типы шрифтов. То есть хотя для иллюстративных целей каждый документ 214, 226 и 228 изображен с одним типом шрифта, документ часто включает в себя множество различных типов шрифтов на каждой странице и на протяжении всего документа. Кроме того, каждый из документов 214, 226 и 228 включает в себя некоторое количество страниц 220, 244 и 246. То есть фиг. 2 изображает, что документ 214 включает в себя 17 страниц и что изображена страница 1 из 17. Аналогично документ 226 включает в себя 22 страниц, и изображена страница 1 из 22. Документ 228 включает в себя 14 страниц, и изображена страница 1 из 14.
В другом варианте осуществления оптимизатор 230 перекомпоновки определяет, должен ли файл шрифта (например, 216, 240 и 242) быть перекомпонован. Перекомпоновка файла шрифта включает в себя во время генерации документа с фиксированной структурой включение только тех элементов (например, глифов, знаков, символов и т.д.) шрифта, которые содержатся в документе. Кроме того, оптимизатор 230 перекомпоновки определяет, как файл шрифта должен быть перекомпонован. Оптимизатор 230 перекомпоновки включает в себя анализатор 248 числа страниц, который определяет, удовлетворяет ли число страниц (например, 220, 244 и 246), включенных в документ, порогу оптимизации перекомпоновки (описанному более подробно ниже). Например, когда число страниц в документе удовлетворяет порогу оптимизации перекомпоновки, файла шрифта перекомпоновывается. Оптимизатор 230 перекомпоновки также включает в себя анализатор 252 размера шрифта, который определяет, превышает ли размер шрифта порог размера шрифта. Например, когда размер шрифта превышает порог размера шрифта, файл шрифта перекомпоновывается на основании использования на протяжении всего документа - в противоположность перекомпоновке файла шрифта на основании того как шрифт используется в наборах страниц.
Со ссылкой на фиг. 3 далее описывается порог оптимизации перекомпоновки. Фиг. 3 изображает различные документы 312, 314, 316 и 318 тестовой группы. Как изображено стрелками 320, 322, 324 и 326, каждый документ тестовой группы перекомпоновывается, так что для каждого документа тестовой группы генерируется множество перекомпонованных файлов шрифта. Затем каждый перекомпонованный файл шрифта предоставляется соответствующей подсистеме 346, 348, 350 и 352 печати. Например, когда документ 312 тестовой группы перекомпоновывается, генерируются четыре перекомпонованных файла 328, 330, 332 и 334 шрифта. То есть документ 312 тестовой группы включает в себя 20 страниц и разбивается на набор блоков по 5 страниц, таким образом генерируя четыре перекомпонованных файла 328, 330, 332 и 334 шрифта. Каждый из этих четырех перекомпонованных файлов 328, 330, 332 и 334 шрифта применяется к соответствующему диапазону страниц в пределах 20 страниц документа 312. То есть перекомпонованный файл 328 шрифта включает в себя элементы типа шрифта, которые содержатся в пределах страниц 1-5 документа 314, и не включает в себя элементы, которые не содержатся в пределах страниц 1-5.
Документ 314 тестовой группы разбивается на набор блоков страниц, которые отличаются от блоков по 5 страниц, которые применялись к документу 314. Как изображено стрелкой 322, документ 314 разбивается на набор блоков по 4 страницы, таким образом генерируя пять перекомпонованных файлов 336, 338, 340, 342 и 344 шрифта. Каждый из этих пяти перекомпонованных файлов 336, 338, 340, 342 и 344 шрифта применяется к соответствующему диапазону страниц в пределах 20 страниц документа 314. Например, перекомпонованный файл 336 включает в себя элементы типа шрифта, которые содержатся в пределах страниц 1-4 документа 314, и не включает в себя элементы, которые не содержатся в пределах страниц 1-4. Документ 316 тестовой группы разбивается на набор блоков страниц, которые отличаются от таковых как документа 312, так и документа 314. Документ 318 и стрелка 326 показывают, что документ тестовой группы может включать в себя любое число страниц (то есть 1-N) и может быть разбит на набор блоков страниц, имеющих любое число страниц (то есть 1-Z).
Перекомпоновка документов 312, 314, 316 и 318 тестовой группы, которые имеют различное число страниц, имеет различные влияния на общую производительность печати при рассмотрении различных показателей производительности печати, таких как эффективность, время, требуемое для печати документа, и время до начала печати. Например, разбиение на набор блоков по 4 страницы по сравнению с блоками по 5 страниц может позволить быстрее отправить файл 336 перекомпонованных шрифтов документа 314 в подсистему печати (например, время изображено стрелкой 345), чем перекомпонованный файл 328 шрифтов, так как разбиение на набор пяти страниц занимает больше времени, чем разбиение на набор четырех страниц. Также важен тот факт, что пакет шрифтов не может быть отправлен на принтер, пока не была завершена вся прорисовка набора страниц. Таким образом, задержка может включать в себя не только время, которое требуется для подготовки перекомпонованных шрифтов, но и время для подготовки всей последующей страницы. Однако перекомпоновка блоков по 4 страницы может генерировать более высокое (то есть нежелательное) количество перекрытий элементов перекомпонованных шрифтов между каждым из перекомпонованных файлов 336, 338, 340, 342 и 344. Например, если документ 314 является текстовым документом, страницы 1-4 документа 314 и страницы 5-8 документа 314 могут включать в себя много одинаковых элементов (например, букв) шрифта, так что когда имеет место перекомпоновка блоков по 4 страницы, неоднократно перекомпоновываются одни и те же элементы. Неоднократное перекомпоновка одних и тех же элементов может привести к нежелательной неэффективности.
Вариант осуществления настоящего изобретения направлен на нахождение баланса показателей производительности печати, таких как времени начала печати и эффективность. Например, баланс показателей производительности печати находится путем управления размером (например, числом страниц) документа, которой может быть разбит на набор блоков. Кроме того, баланс показателей находится путем управления числом перекомпонованных файлов, которые генерируются для шрифта, а также размером (то есть числом страниц) наборов страниц, которые перекомпонованы, то есть путем управления тем, сколько страниц перекомпонованы перед пакетной обработкой. Кроме того, баланс показателей находится путем управления размером файлов шрифтов, которые перекомпоновываются. То есть данные, генерируемые при перекомпоновке и печати документов 312, 314, 316 и 318, отправляются анализатору 354 оптимизации перекомпоновки. Иллюстративные данные, которые собираются анализатором 354 оптимизации перекомпоновки, включают в себя количество времени, которое ушло на генерацию буферного файла, количество времени, которое ушло на то, чтобы начать запрос печати, количество времени, которое ушло на то, чтобы завершить запрос печати, размер буферного файла и количество элементов перекрытия перекомпонованного шрифта.
В варианте осуществления анализатор 354 оптимизации перекомпоновки обрабатывает собранные данные для эвристического определения оптимальных параметров перекомпоновки. Анализатор 354 оптимизации перекомпоновки включает в себя информацию 370, которая изображена в покомпонентном виде 372 для иллюстративных целей. Покомпонентный вид 372 изображает то, что оптимальные параметры перекомпоновки включают в себя оптимальное число наборов страниц в документе 356 и оптимальное число страниц в наборе 358 страниц. Например, оптимальное количество наборов страниц в документе 356 может предоставить количество наборов страниц в документе, которое обычно дает количество элементов перекрытия перекомпонованных шрифтов, которое удовлетворяет порогу перекрытия элементов. Кроме того, для оптимального числа страниц в наборе 358 страниц обычно может быть произведено перекомпоновка в течение времени, удовлетворяющего порогу продолжительности времени, который устанавливает максимальное время, требуемое для генерации буферного файла. Произведение оптимального количества наборов страниц в документе 356 и оптимального числа страниц в наборе 358 страниц дает порог 360 оптимизации перекомпоновки, который может использоваться для управления перекомпоновкой по отношению к другим документам. Покомпонентный вид 372 изображает иллюстративный вариант осуществления, в котором оптимальное количество наборов страниц (k) равно 4 наборам в документе, а оптимальное количество страниц в наборе (х) равно 5 страницам в наборе, так что порог (Y) оптимизации перекомпоновки равен 20 страницам.
В дополнение к анализу количества наборов страницы и количества страниц в наборе страниц анализатор 354 оптимизации перекомпоновки может учитывать другие факторы, которые влияют на показатели производительности печати. Например, анализатор 354 оптимизации перекомпоновки может анализировать, как должен учитываться размер шрифта при определении перекомпоновки. То есть иногда шрифт включает в себя большой размер шрифта и большой расширенный набор элементов, которые на самом деле используются в документе. В таком случае может быть определено, что показатели производительности печати оптимизируются путем преобразования документа полностью, а не по блокам страниц. По этой причине анализатор 354 оптимизации перекомпоновки может определить порог размера шрифта, и когда размер шрифта типа шрифта превышает порог размера шрифта, документ перекомпоновывается целиком. Хотя начало печати может быть задержано, когда документ перекомпоновывается целиком, преимущества во времени обработки шрифта и размере буфера реализуются, когда шрифт включает в себя большой размер шрифта и большой расширенный набор элементов, которые на самом деле используются в документе.
Согласно фиг. 2 анализатор 248 числа страниц включает в себя информацию 250. В варианте осуществления информация 250 включает в себя порог оптимизации перекомпоновки, такой как порог 360 оптимизации перекомпоновки, описанный на фиг. 3. В связи с этим, обрабатывая запрос печати, анализатор 248 числа страниц может использовать порог оптимизации перекомпоновки, чтобы определить выше или ниже число страниц для печати порога оптимизации перекомпоновки.
Оптимизатор 230 перекомпоновки также включает в себя анализатор 252 размера шрифта, который используется для определения, превышает ли размер шрифта типа шрифта (например, типа А шрифта) порог размера шрифта. В варианте осуществления настоящего изобретения, когда размер шрифта типа шрифта превышает порог размера шрифта, тип шрифта перекомпоновывается на протяжении всего документа, так что генерируется один перекомпонованный файл шрифта, в отличие от перекомпоновки типа шрифта в наборах страниц. В альтернативном варианте осуществления анализатор 252 размера шрифта может включать в себя список типов шрифта, для которых известно, что они имеют размер шрифта, который превышает порог размера шрифта. В связи с этим, когда анализатор 252 размера шрифта принимает файл шрифта, анализатор 252 размера шрифта может проверить список, чтобы определить, считается ли что файл шрифта уже включает в себя размер шрифта, который требует перекомпоновки шрифта целиком.
Дополнительный вариант осуществления включает в себя модуль перекомпонования 232 шрифта, который перекомпоновывает файлы шрифта в соответствии с указаниями от оптимизатора 230 перекомпоновки. Например, генерация перекомпонованного файла шрифта может включать в себя генерацию множества перекомпонованных файлов шрифта, каждый из которых применяется к соответствующему набору страниц документа. В таком случае модуль перекомпонования 232 шрифта может предоставить первый перекомпонованный файл шрифта для использования для печати документа до генерации второго перекомпонованного файла шрифта. В связи с этим печать может быть начата до завершения буферизации. Например, печать первой страницы может быть начата, не ожидая буферизации первого пакета страниц, то есть печать может быть начата, пока шрифт пакета страниц перекомпоновывается. Соответствующий набор страниц документа может быть определен на основании оптимального количества страниц в наборе страниц (например, 358 на фиг. 3). В дополнительном варианте осуществления, когда перекомпонованный файл был предоставлен в подсистему печати, модуль перекомпонования 232 шрифта осуществляет передачу инструкции по удалению перекомпоновки, которая уведомляет подсистему печати о необходимости удалить перекомпонованный файл шрифта. Предоставляя инструкцию удаления перекомпоновки, подсистема печати может более эффективно управлять своими ресурсами памяти, потому что она знает, что к этому конкретному файлу шрифта более не будет обращений во время этого задания на печать.
В другом варианте осуществления модуль перекомпонования 232 шрифта перекомпоновывает шрифт по всему документу, в отличие от перекомпоновки в блоках страниц. Например, когда размер шрифта типа шрифта превышает порог размера шрифта, модуль перекомпонования 232 шрифта перекомпоновывает тип шрифта по всему документу, так что генерируется один перекомпонованный файл шрифта.
На фиг. 4 изображена блок-схема последовательности операций, которая описывает набор операций, выполняемых в варианте осуществления настоящего изобретения. Набор операций в целом обозначен ссылочной позицией 410, и при описании фиг. 4 могут также делаться ссылки на фиг. 2 и 3. Операции 410 направлены на предоставление информации для отрисовки шрифтов, которая применяется для печати документа. Операция 411 включает в себя определение порога оптимизации перекомпоновки. Например, порог оптимизации перекомпоновки может быть определен согласно описанию фиг. 3. Аналогично порог оптимизации перекомпоновки может быть определен путем обращения к сохраненному значению, например, когда оптимизатор 230 перекомпоновки обращается к информации 250.
В дополнительном варианте осуществления операция 412 включает в себя прием файла шрифта, который определяет тип шрифта, содержащийся в документе, который при печати генерирует некоторое количество страниц. Например, любой из файлов 216, 240 и 242 шрифта может быть принят оптимизатором 230 перекомпоновки.
То есть каждая из линий 215, 227 и 229 изображает соответствующий файл шрифта, передаваемый оптимизатору 230 перекомпоновки. Файл 216 шрифта определяет тип 218 шрифта в документе 214, который при печати генерирует 17 страниц. Файл 240 шрифта определяет тип 236 шрифта в документе 226, который при печати генерирует 22 страницы. Как показано, файлы 216 и 240 шрифтов, оба, определяют один и тот же тип шрифта, который включает в себя "тип А шрифта". Файл 242 шрифта определяет тип 238 шрифта в документе 228, который при печати генерирует 14 страниц. Файл 242 шрифта определяет "тип ZX шрифта", который отличается от типа шрифта, определенного файлами 216 и 240 шрифта. Как указывалось ранее, хотя каждый документ 214, 226, и 228 изображен с одним типом шрифта, документ часто включает в себя множество различных типов шрифтов на каждой странице и на протяжении всего документа.
Операция 414 включает в себя определение, удовлетворяет ли количество страниц порогу оптимизации перекомпоновки, такому как порог оптимизации перекомпоновки, описанному относительно фиг. 3. Например, если порог оптимизации перекомпоновки определен равным 20 страницам, оптимизатор 230 перекомпоновки может определить, что количество страниц 220 (где изображено "17" страниц) не превышает порог оптимизации перекомпоновки. Аналогично, если порог оптимизации перекомпоновки определен равным 20 страницам, оптимизатор 230 перекомпоновки может определить, что количество страниц 246 (где изображено "14" страниц) не превышает порог оптимизации перекомпоновки. С другой стороны, если порог оптимизации перекомпоновки определен равным страницам, оптимизатор 230 перекомпоновки может определить, что количество страниц 244 (где изображено "22" страницы) превышает порог оптимизации перекомпоновки. В случаях, в которых количество страниц превышает порог оптимизации перекомпоновки, весь тип шрифта встраивается в документ с фиксированной структурой, например, как изображено в операции 415.
Операция 416 включает в себя определение, превышает ли размер шрифта типа шрифта порог размера шрифта. Например, анализатор 252 размера шрифта может определить, превышает ли размер шрифта типа 218, 236 или 238 шрифта порог размера шрифта. То есть если порог размера шрифта включает в себя 10 Мбайт, а тип 218 шрифта равен 5 МБ, то анализатор 252 размера шрифта может определить, что размер шрифта типа 218 шрифта не превышает порог размера шрифта. В другом примере тип 238 шрифта может быть равным 15 Мбайт, так что анализатор 252 размера шрифта определяет, что размер типа 238 шрифта превышает порог в 10 Мбайт. В дополнительном варианте осуществления порог размера шрифта является динамическим, например, путем применения порогового процента. Например, порог размера шрифта может быть равным 60%, так что если файл шрифта равен 10 МБ и тип шрифта содержит 5 МБ, файл шрифта перекомпоновывается. Однако в этом примере, если тип шрифта содержит 7 МБ, шрифт отправляется целиком. В другом варианте осуществления анализатор 252 размера шрифта может обращаться к списку известных типов шрифтов, которые включают в себя размер шрифта больше, чем порог размера шрифта, для определения, присутствует ли в списке тип 218, 236 или 238 шрифта.
Операции 410 также включают в себя генерацию перекомпонованного файла шрифта блока страниц 418 или генерацию перекомпонованного файла шрифта всего документа 420. Например, информация 254, информация 256 и информация 258 отправляются оптимизатором перекомпоновки. Информация 254 обозначена как "Док. 1" и соответствует документу 214. Информация 256 обозначена как "Док. 3" и соответствует документу 228. Информация 258 обозначена как "Док. 2" и соответствует документу 226. Модуль перекомпонования 232 шрифта перекомпоновывает "Док. 1" в соответствии с указаниями, предоставленными оптимизатором перекомпоновки. Например, когда количество страниц 220 документа 214 не превышает порог оптимизации перекомпоновки и когда размер шрифта типа 218 шрифта не превышает порог размера шрифта, тип 218 шрифта перекомпоновывается в блоках страниц (то есть операция 418), таким образом генерируя множество файлов 222, 260, 262 и 264 перекомпонованного шрифта. Каждый из множества файлов перекомпонованного шрифта применяется к соответствующему диапазону страниц документа 214. Например, перекомпонованный файл 222 шрифта включает в себя только элементы (например, глифы) типа 218 шрифта, которые содержатся на страницах 1-5 документа 214, и не включает элементы, которые не содержатся на страницах 1-5.
В дополнительном варианте осуществления, когда генерируется первый перекомпонованный файл шрифта (например, 222), первый перекомпонованный файл шрифта направляется в подсистему печати до генерации второго перекомпонованного файла шрифта (например, 260), таким образом инициируя печать раньше, чем если бы весь документ перекомпоновывался. Как было описано выше, число страниц в блоке страниц может основываться на оптимальном количестве страниц в наборе страниц, как определено анализатором 354 оптимизации перекомпоновки. В дополнительном варианте осуществления, после передачи файла 222, 260, 262 и 264 перекомпонованного шрифта в подсистему 234 печати также отправляется управляющая команда 266, 268, 270 и 272 удаления. То есть после передачи файла 222 перекомпонованного шрифта передается управляющая команда 266 удаления, таким образом инструктируя подсистему 234 печати удалить ресурсы со шрифтами, которые были предоставлены до этого момента времени.
В другом примере, когда количество страниц. 246 документа 228 не превышает порог оптимизации перекомпоновки и когда размер шрифта типа 238 шрифта превышает порог размера шрифта, тип 238 шрифта перекомпоновывается на основании его использования на протяжении Док. 3, таким образом генерируя один файл 274 перекомпонованного шрифта (то есть операция 420). В еще одном примере, когда количество страниц 244 (то есть "22" страницы) документа 226 превышает порог оптимизации перекомпоновки (например, 20 страниц), Док. 2 не перекомпоновывается. Вместо этого весь тип 236 шрифта встраивается в документ с фиксированной структурой для печати (то есть операция 415).
Операция 422 включает в себя предоставление перекомпонованного файла шрифта для использования для печати документа. Например, файлы 222, 260, 262, 264 и 274 перекомпонованного шрифта предоставляются в подсистему 234 печати. Как было указано ранее, после того как файл 222, 260, 262 и 264 перекомпонованного шрифта передается в подсистему 234 печати, также передается управляющая команда 266, 268, 270 и 272 удаления.
Один вариант осуществления настоящего изобретения применяется к способу предоставления информации для отрисовки шрифтов, которая используется для печати документа. Способ включает в себя прием файла шрифта, который определяет тип шрифта, содержащийся в документе, который при печати генерирует некоторое количество страниц. Кроме того, определяется, что количество страниц не превышает порог оптимизации перекомпоновки. Способ также включает в себя генерацию перекомпонованного файла шрифта типа шрифта, который не включает в себя элементы типа шрифта, которые не присутствуют, по меньшей мере, в части документа. Перекомпонованный файл шрифта предоставляется для использования при печати документа.
Другой вариант осуществления настоящего изобретения относится к одному или более машиночитаемым носителям с сохраненными на них исполнимыми компьютером инструкциями, которые при исполнении обеспечивают осуществление способа предоставления информации для отрисовки шрифтов, которая используется для печати документа. Способ включает в себя определение порога оптимизации перекомпоновки на основании одного или более документов тестовой группы, при этом документ тестовой группы может разбиваться на некоторое количество наборов страниц, и наборы страниц включают в себя соответствующий набор страниц для печати. Порог оптимизации перекомпоновки равен произведению оптимального количества наборов страницы и оптимального количества страниц в наборе страниц. Принимается файл шрифта, который определяет тип шрифта, содержащийся в документе для печати, который включает в себя некоторое количество страниц. Определяется, что количество страниц не превышает порог оптимизации перекомпоновки. Способ также включает в себя генерацию перекомпонованного файла шрифта набора страниц документа, при этом величина числа страниц набора страниц основывается на оптимальном количестве страниц. Перекомпонованный файл шрифта предоставляется подсистеме печати.
Дополнительный вариант осуществления относится к системе, которая реализована с помощью вычислительного устройства и которая облегчает предоставление информации для отрисовки шрифтов, которая используется для печати документа. Система включает в себя оптимизатор перекомпоновки, который принимает файл шрифта, определяющий тип шрифта, содержащийся в документе для печати, который включает в себя некоторое количество страниц. Система также включает в себя анализатор числа страницы, который определяет, превышает ли количество страниц порог оптимизации перекомпоновки. Система дополнительно включает в себя модуль перекомпонования шрифта, который генерирует для типа шрифта перекомпонованный файл шрифта, который не включает в себя элементы типа шрифта, которые не присутствуют, по меньшей мере, в части документа, при этом перекомпонованный файл шрифта предоставляется подсистеме печати.
Возможно много различных конфигураций различных изображенных компонентов, как и не показанных компонентов, не отступая от объема формулы изобретения, приведенной ниже. Предполагается, что описанные варианты осуществления изобретения являются иллюстративными, а не ограничивающими. Альтернативные варианты осуществления будут очевидны специалистам на основании изучения настоящего раскрытия. Альтернативные средства осуществления вышеупомянутого могут быть осуществлены, не отступая от объема нижеследующей формулы изобретения. Некоторые функциональные возможности и подкомбинации являются полезными и могут использоваться независимо от других функциональных возможностей и подкомбинаций, и они предусмотрены в рамках формулы изобретения.