Совмещение машиночитаемых кодов с пикселями печатающего устройства

 

Изобретение относится к печатающим устройствам. Техническим результатом является повышение точности печати машиночитаемого кода за счет коррекции и компенсации искажений, вводимых различными печатными устройствами. Для этого вводят битовое отображение кода машинно-считываемого кодового изображения, предназначенного для печати, в битовое отображение выводимого принтером изображения, анализируют физические характеристики массива пикселей принтера на основе полученных характеристик воспроизведения, трансформируют битовое отображение кода машинно-считываемого кодового изображения путем изменения размеров и осуществления поворота до точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения и осуществляют печать. 4 с. и 5 з.п.ф-лы, 7 ил.

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

Идентификационные коды, например одномерные коды (штриховые коды) и двумерные коды (Datastrip-коды), нашли широкое применение для идентификации элементов данных, изделий и/или физических лиц, когда эти коды считываются машинами, обладающими искусственным интеллектом. Однако такие машиночитаемые коды должны быть напечатаны очень точно для того, чтобы гарантировать то, что код (коды) равномерно и точно считываются машиной (машинами), обладающей искусственным интеллектом. Даже небольшие искажения в процессе печати могут привести к тому, что в результате будет напечатан код, который не поддается считыванию (не читается) конкретной машиной, делая таким образом кодирование непригодным для той цели, для которой оно предназначено.

Например, двумерные коды, такие как коды, используемые Datastrip Products Inc., при печати кода должны быть, как правило, точно совмещены с массивом пикселей конкретного печатающего устройства для предотвращения геометрического искажения битового отображения кода. Геометрические искажения получаются в результате небольшого масштабирования горизонтальных и вертикальных размеров некоторыми драйверами печатающих устройств и прикладными программными средствами печати (например, драйверами печатающих устройств Windows и графическими прикладными программными средствами Windows).

Небольшое масштабирование (например, 99,5%-100,5%) не является необычным в битовом отображении, распечатываемом из Windows. Факторы масштабирования заставляют битовое отображение кода расширяться или сужаться благодаря репликации или удалению строк и/или столбцов точек в битовом отображении. Это разрушает низкоуровневые, локализованные, геометрические характеристики таких кодов, делая их более трудными для считывания, менее поддающимися считыванию и, возможно, делая коды нечитаемыми.

Большой проблемой, связанной с печатью изображений битового отображения при использовании покупных программных средств в независимых от устройства рабочих конфигурациях, например Microsoft Windows (TM), является то, что применение этих программных средств приводит к небольшому масштабированию и/или повороту получаемого выхода печати. Для большинства целей текстообработки и иллюстраций эти факторы масштабирования и поворота остаются незаметными. Однако при попытке печати изображений битового отображения кодированных данных, которые требуют обеспечения точных геометрических характеристик, сдвиги пикселей и добавленные или утраченные строки пикселей, распределенных по печатному изображению, в результате небольшого масштабирования или поворота могут привести к значительным геометрическим искажениям.

Пример попыток скорректировать фактор масштабирования или поворота, характерный для печатающего устройства, в прикладных задачах текстообработки описан в патенте США, выданном 17 октября 1995 года Заку и др. В этом патенте описан способ получения растрового шрифта из контурного шрифта, предусматривающий операции получения растровой метрики и метрики знаков шрифтовых знаков в зависимости от случайных шрифтовых элементов, масштабирования шрифтовых знаков до выбранного размера и выходного разрешения и изменения толщины вертикального и горизонтального штрихов каждого знака до требуемой толщины. По существу сущность изобретения Зака и др. заключается в модификации внешнего вида конкретного знака для того, чтобы сделать внешний вид знака единообразным для считывающего устройства.

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

Применяемый ниже термин "интерпретивное печатающее устройство" будет использовано для ссылки на печатающее устройство, которое осуществляет язык описания страницы в самом печатающем устройстве, а термин "неинтерпретивное печатающее устройство" будет использован для описания печатающего устройства, которое только печатает изображение, создаваемое вне его. Примером интерпретивного печатающего устройства является печатающее устройство Postscript (ТМ) (Postscript - торговая марка компании Adobe Systems, Inc.), так же как печатающее устройство Apple Laserwriter, выпускаемое на промышленной основе компанией Apple Computer, Inc., которая использует интерпретатор языка Postscript в печатающем устройстве. Описания страницы, передаваемые печатающему устройству, фактически являются языковыми программами Postscript, которые при интерпретации посредством языкового интерпретатора в печатающем устройстве заставляют печатающее устройство печатать изображение. Примером неинтерпретивного печатающего устройства является печатающее устройство Hewlett Packard Laserjet Series IV, выпускаемое компанией Hewlet Packard, Inc.

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

Дополнительно после анализа физических характеристик массива пикселей указанного принтера и перед печатью машинно-считываемого кодового изображения на принтере трансформируют битовое отображение кода машинно-считываемого кодового изображения путем коррекции по сдвигу в той степени, которая требуется для точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения целым кратным указанных физических характеристик массива пикселей указанного принтера.

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

Дополнительно после анализа физических характеристик массива пикселей указанного принтера и перед печатью машинно-считываемого кодового изображения на принтере трансформируют битовое отображение кода машинно-считываемого кодового изображения путем осуществления поворота в той степени, которая требуется для точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения целым кратным указанных физических характеристик массива пикселей указанного принтера. Также дополнительно после анализа физических характеристик массива пикселей указанного принтера и перед печатью машинно-считываемого кодового изображения на принтере трансформируют битовое отображение кода машинно-считываемого кодового изображения путем коррекции по сдвигу в той степени, которая требуется для точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения целым кратным указанных физических характеристик массива пикселей указанного принтера.

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

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

Настоящее изобретение обеспечивает технологии печати изображений битового отображения кодированных данных при использовании стандартного покупного прикладного программного обеспечения, например, графических программ и программ текстообработки, так что изображения битового отображения точно совмещены с сеткой пикселей целевого печатающего устройства независимо от любого поворота или масштабирования, которое может быть использовано прикладным программным обеспечением. Ниже, на такие изображения битового отображения будут ссылаться как на "пиксель-совмещенные" относительно конкретного печатающего устройства.

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

Краткое описание чертежей.

Фиг. 1А-1D - иллюстрация воздействия масштабирования на битовое отображение в соответствии с настоящим изобретением.

Фиг. 2 - блок-схема автоматизированной системы (системы с управлением от ЭВМ) для печати изображений пиксель-совмещенного битового отображения кодированных данных на печатающем устройстве, соответствующем настоящему изобретению.

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

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

Ниже приведено подробное описание настоящего изобретения.

Как показано на фиг.1А-1D, на фиг.1А иллюстрируется битовое отображение конкретного двумерного кода, а на фиг.1В - как этот код должен выглядеть, будучи напечатанным. Как показано, битовое отображение, приведенное на фиг. 1А, состоит из множества массивов 3х3, где массив всех битов "1" приводит к получению в процессе печати черного квадрата, тогда как массив всех битов "0" приводит к получению в процессе печати белого квадрата, то есть в этой области нет печати.

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

На фиг.2 приведена блок-схема автоматизированной системы 100 для печати машинно-считываемых изображений, которая содержит компьютер 140, прикладное программное обеспечение 150 на компьютере 140, программное обеспечение 160 формирования изображения на компьютере 140, программное обеспечение 170 драйвера печати на компьютере 140 и печатающее устройство 180. Пользователь обеспечивает данные для кодирования 110, кодируемые в битовое отображение кода посредством программного обеспечения 160 формирования изображения. Другие пользовательские данные 120 могут быть обеспечены (в сочетании с данными для кодирования 110) для обработки посредством прикладного программного обеспечения 150. Программное обеспечение 170 драйвера печати управляет потоком и форматированием данных, формируемых программным обеспечением 160 формирования изображения и прикладным программным обеспечением 150 к печатающему устройству 180. Пользовательские данные 110 и другие пользовательские данные, как правило, будут находиться в запоминающем устройстве 130, соединенном с компьютером 140.

Как правило, пользователь будет использовать прикладное программное обеспечение 150 (например, систему подготовки текстов или задающую программу) для обработки других пользовательских данных. Результатом такой обработки является печатная страница. После обработки данных для кодирования 110 посредством программного обеспечения формирования изображения пользователь может комбинировать изображение, полученное в результате, с другими пользовательскими данными 120, используя возможности внесения прикладного программного обеспечения. (Такие возможности внесения хорошо известны и очевидны для обычных квалифицированных специалистов в этой области техники и поэтому не будут дополнительно описываться в этой заявке.) После этого комбинированные выходные данные передают посредством прикладного программного обеспечения 150 через посредство программного обеспечения 170 драйвера печати к печатающему устройству 180.

На фиг.3 приведена блок-схема 200, на которой показаны обработка и поток данных для способа печати пиксель-совмещенных изображений битового отображения на интерпретивном печатающем устройстве. Пользовательские данные 210, обеспечиваемые пользователем для кодирования в битовое отображение кода, кодируются посредством программного обеспечения 230 формирования изображения в соответствии с набором параметров (например, предполагаемые номинальное значение числа точек на дюйм для конкретного печатающего устройства, размер и форма элементов изображения и так далее). Программное обеспечение 230 формирования изображения создает описание 240 изображения, содержащее защитную оболочку 242 изображения и участок 244 изображения. Защитная оболочка 242 изображения, по существу, является программой в языке описания страницы, поддающейся интерпретации посредством интерпретивного печатающего устройства 280 для анализа физических характеристик массива пикселей печатающего устройства и для изменения размеров и ориентации участка 244 изображения, что необходимо для точного совмещения с целым кратным числом пиксельного разрешения печатающего устройства. То есть, если печатное устройство имеет разрешение 300 точек на дюйм, но имеет нецелочисленный фактор масштабирования, используемый прикладной программой (например, 205%), то защитная оболочка изображения будет обнаруживать масштабирование и заставлять изображение печататься при ближайшем целочисленном факторе масштабирования (например, 200%), который не приводит к сжатию изображения 244.

Защитная оболочка 242 изображения работает также аналогичным образом с факторами поворота, заставляя изображение 244 печататься только при целых числах, кратных 90o. Прикладное программное обеспечение 260 обрабатывает дополнительные пользовательские данные 250 и вносит описание 240 изображения для включения в печатный выход. Выходные данные из выхода прикладного программного обеспечения 260 поступают к драйверу 262 печати, который форматирует их в описание 270 страницы для печатающего устройства. Скопированное описание 272 изображения, по существу идентичное описанию 240 изображения, включают в описание 270 страницы. Описание 270 страницы, по существу, является программой для выполнения интерпретатором языка описания страницы резидентным в интерпретивном печатающем устройстве 280 для получения печатного выхода.

На фиг.4 приведена блок-схема 300, на которой показаны обработка и поток данных для способа печати пиксель-совмещенных изображений битового отображения на неинтерпретивном печатающем устройстве 390. Пользовательские данные 310 обеспечиваются пользователем для кодирования в изображение битового отображения посредством программного обеспечения 320 формирования изображения. Дополнительные пользовательские данные 330 обеспечиваются пользователем для обработки посредством прикладного программного обеспечения 340, например, программой текстообработки или графической программой для получения печатного выхода на неинтерпретивном печатающем устройстве 390. Программа 320 формирования изображения создает описание 350 изображения, содержащее набор параметров 350А изображения (например, предполагаемые размер элементов изображения, ориентация и так далее), битовое отображение 350В изображения, представляющее кодирование пользовательских данных 310. Прикладное программное обеспечение 340 обрабатывает программу 320 формирования изображения в качестве программы фильтрации ввода для введения пользовательских данных 310 в кодированное битовое отображение его печатного выхода. Однако в этом случае описание 350 изображения, получаемое посредством программы 320 формирования изображения (действующей в качестве программы фильтрации для прикладного программного обеспечения 340), передают к драйверу 370 печати посредством процесса 360 масштабирования и поворота, который во многом выполняет ту же функцию, которая описана в этой заявке выше для защитной оболочки 242 изображения со ссылкой на фиг.2.

В процессе 360 масштабирования и поворота делается запрос драйвера 370 печати в отношении физических характеристик печатающего устройства и параметров настройки масштабирования и поворота, сделанной прикладным программным обеспечением 340. В процессе масштабирования и поворота осуществляют выбор ближайшего целого кратного числа масштабирования для параметра масштаба, установленного прикладным программным обеспечением 360, при котором битовое отображение кода 350В точно совмещается с пиксельным разрешением печатающего устройства 390, и выбор ближайшего числа, кратного повороту на 90o, для параметра поворота, установленного прикладным программным обеспечением, и передача битового отображения изображения драйверу 370 печати при этих установочных параметрах. После передачи битового отображения 350В изображения драйверу 370 печати параметры настройки масштабирования и поворота, выполненного прикладным программным обеспечением, восстанавливаются. Драйвер 370 печати формирует изображение 380 печати, форматированное для печати посредством неинтерпретивного печатающего устройства 390.

Способы, показанные и описанные выше со ссылкой на фиг.3 и 4, дают по существу идентичные конечные результаты. Основное различие между этими способами заключается в том, что способ, иллюстрируемый на фиг.3, обеспечивает осуществление совмещения изображения посредством использования программы совмещения с описанием изображения для выполнения в интерпретивном печатающем устройстве, посредством интерпретатора языка описания страницы, тогда как в способе, иллюстрируемом на фиг.4, процесс совмещения осуществляется внутри компьютера (например, указанного на фиг.2 ссылочным номером 140) перед передачей печатающему устройству.

Ниже описан характерный пример Postscript-кода для защитной оболочки изображения. Более конкретно, основная схема следующего кода разбита на две части. Первая часть контролирует разрешение печатающего устройства и определяет некоторые основные параметры выбранной в настоящее время системы координат печати, определяет, имеется или отсутствует недопустимый поворот или сдвиг координатной системы. Если это имеет место, то первая часть формирует сигнал останова, заставляет выполняться вторую ошибочную часть вывода на печатающее устройства кода (через посредство управляющего сигнала останова между этими двумя частями). Ошибочная часть вывода на печатающее устройство печатает изображение, имеющее форму и ориентацию, которое имело бы изображение, если бы оно было напечатано в текущей координатной системе (но не печатает действительной полосы), и выводит на печать перечень соответствующих величин, определенных первой частью.

Первая часть кода использует параметр состояния (Progress), показывающий, где имеет место повреждение. Если этот параметр состояния равен шести, то это указывает на то, что повреждение отсутствует. Если его величина меньше шести, то его значение указывает на то, сколь велика первая часть кода прежде, чем была обнаружена проблема.

Объяснительные замечания вставлены в код в форме Postscript-комментариев, которые начинаются с символа %.

% Начало первой части защитной оболочки % изображения. Обеспечение останова при % обнаружении проблемы. При этом параметр % состояния (Progress) указывает, как далеко прошел % первый процесс до тех пор, пока не появилась % проблема.

% Установка индикатора состояния на нуль.

/Progress О def
% Определение newline-функции для использования
% при печати изображения чередования данных, так
% что, если значение параметра состояния равно шести,
% то изображение полосы есть данные в стеке (то есть
% данные изображения полосы), нормально печатается
% при использовании newline-процедуры (nl). Если
% нет, то данные в стеке удаляются из стека и
% игнорируются.

/NL {Progress 6 eq {nl} {pop} ifelse} def
% Установка числа точек на дюйм (DPI) равное
% ожидаемому числу точек на дюйм печатающего
% устройства. Это значение вводят посредством
% программы, которая добавляет этот код к данным
% изображения.

/DPI 300 def
% Преобразование точки (1 дюйм, 0 дюймов) через
% посредство матрицы печатающего устройства,
% устанавливаемой по умолчанию, для определения
% фактического разрешения печатающего устройства в
% DPI. (Примечание: Координатная система,
% устанавливаемая по умолчанию, выражена в точках,
% причем 72 точки составляют 1 дюйм (25,4 мм)).

72.0. matrix defaultmatrix dtransform dup
% Определение фактического разрешения (DPI)
% печатающего устройства посредством анализа
% результата предшествующего преобразования.

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

/Actual DPI exch abs def
0. Eq {/ActualDPI exch abs def} {pop} ifelse
% Определение пригодного значения, эквивалентного
% восьми точкам в собственном разрешении
% печатающего устройства.

/EightPoint 8.72. div ActualDPI mul def
% Инициализация сообщения об искажении: "*нет
% искажения*" ("*Nо Errow*").

/StrippErrMsg (*No Errow*) def
% Определение функций для выбора максимума или
% минимума из двух величин Postscript-стека.

/Мах {/mxop2 exch def dup
/mxop1 exch def
myop2 1t myop2 exch {pop mxop1} if }def
/Min {/mnop2 exch def dup
/mnop1 exch def
mnop2 1t mnop2 exch {pop mnop1} if }def
% Определение функции для экстрагирования знака
% численного значения Postscript-стека.

/Sign {dup О. ne {dup abs div} if cvi} def
% Определение функции для экстрагирования фактора
% масштабирования путем сравнения численного
% значения Postscript-стека с требуемыми
% (ожидаемыми) паспортными данными DFI.

/ScaleFactor
{dup O.Ne
(dup Sign exch DPI div 0.98 abs cvi 1 Max mul} {cvi}
ifelse} def
% Определение функции обработки искажения, которая
% копирует сообщение об искажении в Postscript-стек
% в "StripErrMsg" и осуществляет директивный останов,
% запрещающий выполнение первой части кода.

/StripError {/StripErrMsg exch def stop} def
% Проверка величины (0,0) в Postscript-стеке.

/ZeroCheck {О. eq and} def
% Замена величины нулем, если она меньше 1/50
% другой величины.

/Thresh {
/Thop2 exch def dup Thop2 exch div abs 0.02 1t
{0.} {Thop2} ifelse} def
% Функция, которая охватывает точки (х, у) и приводит
% Thresh- функцию к нулю, если х- или у-часть
% отличаются менее чем на 1/50 друг от друга.

/Squelch { /Sqop2 exch def dup
/Sqop1 exch def abs
Sqop2 abs gt
{Sqop1 Sqop2 Thresh} {Sqop2 Sqop1 Thresh exch} ifelse} def
% Функция, которая возвращает "истинное состояние",
% если имеет место ось сдвига.

/ShearEnCheck {O.eq {).eq}.eq} {О.ne} ifelse}def
% Преобразование точки (0,0) для определения начала
% отсчета исходной координатной системы.

О О transform
/udyO exch cvi def
/udxO exc cvi def
% Определение реакции текущей координатной
% системы на смещения только по оси х и смещения
% только по оси у, используя 1 дюйм (72 точки) в
% качестве тестовой величины.

72.0.dtransform
/xyDPI exch def
/xxDPI exch def
0.72 dtransform
/yyDPI exch def
/yxDPI exch def
% Нет проблем при начальной установке. Увеличение
% индикатора состояния.

/Progress Idef
% Проверка координатной системы на нулевую ширину,
% нулевую длину и поворот осей. Если обнаружена
% проблема, то выполнить процедуру "StripErrow"
% исправления искажения.

xxDPI xyDPI ZeroCheck {(Zero With) StripError} if
xyDPI yyDPI ZeroCheck {(Zero Length) StripError} if
xxDPI yyDPI ZeroCheck {(XAxis Collapse) StripError} if
xyDPI yyDPI ZeroCheck {(YAxis Collapse) StripError} if
% Проверка основной координатной системы.

% Увеличение индикатора состояния.

/Progress 2 def
% Регулировка ("squelch") координатной системы для
% удаления какого-либо незначительного (то есть
% менее чем 2%) поворота или сдвига.

xxDPI xyDPI Squelch
/xySq1 exch def
/xxSq1 exch def
yxDPI yyDPI Squelch
/yySq1 exch def
/yxSq1 exch def
xxSq1 yxSql Squelch
/yxSq1 exch def
/xxSq1 exch def
xxSq1 yySql Squelch
/yySq1 exch def
/xySq1 exch def
% Выполнение регулировок. Увеличение индикатора
% состояния.

/Progress 3 def
% Проверка координатной системы на наличие
% недопустимой величины сдвига или поворота. При
% наличии проблемы выполнения процедуры StripError.

xxSq1 xySq1 ShearErrCheck
{(Shear/Rotxx-xy) StripError} if
yxSq1 yySq1 ShearErrCheck
{(Shear/Rot.yx-yy) StripError} if
xxSq1 yxSq1 ShearErrCheck
{(Shear/Rot.xx-yx) StripError} if
xySq1 yySq1 ShearErrCheck
{(Shear/Rot.xy-yy) StripError} if
% Проверка сдвига и поворота. Увеличение индикатора
% состояния.

/Progress 4 def
% Экстрагирование факторов масштабирования из
% отрегулированных величин.

/xxS xxSq1 ScaleFactor def
/xyS xySq1 ScaleFactor def
/yxS yxSq1 ScaleFactor def
/yyS yySq1 ScaleFactor def
% Проверка фактора масштабирования. Увеличение
% индикатора состояния.

/Progress 5def
% Определение матрицы координатной системы в
% зависимости от целочисленных факторов
% масштабирования для применения при печати
% последующих данных изображения.

/SSMatrix [xxS xyS yyS udxO udyO] def
% Преобразование от 72 точек на дюйм (пространство
% пользователя) в пространство устройства, то есть
% цифра 1 теперь относится к одному пикселю (или к
% их целому кратному числу) в зависимости от
% факторов масштабирования в SSMatrix. При
% использовании этой матрицы для последующей
% печати полосы, данные изображения (которые
% определены в зависимости от пикселей печатающего
% устройства), вынуждены печататься полностью
% совмещенными с координатной системой
% печатающего устройства при целочисленном факторе
% масштабирования.

SSMatrix setmatrix
% Все идет хорошо. Индикатор состояния
% устанавливается на 6 и нормально заканчивается
% первая часть кода (то есть без директивного
% останова).

/Progress 6 def
}
% Проверка, нормально ли закончена первая часть кода.

% Если нет, то выполняется вторая часть - обработка
% искажения.

Stopped {
% Восстановление и сохранение исходной координатной
% системы (и графической конфигурации).

Grestore
gsave
% Формирование горизонтального фактора
% масштабирования на основе ширины данных
% изображения. Значение "istrpwid" вводят
% посредством программы, которая добавляет запись
% этого кода к данным изображения).

istrpwid 72 div 1 scale
% Формирование точечного представления контура
% полосы в текущей координатной системе, чтобы
% графически показать, как бы полоса была повернута,
% сдвинута или масштабирована, если бы она была
% напечатана в этой ориентации.

0.5 setlinewidth
newpath
О О moveto
О -144 lineto
72 -144 lineto
72 O lineto
closepath
stroke
% Для печати данных искажения выбор 8 точек шрифта
% Helvetica
/Helvetica findfont 8 scalefont setfont
% Завершение точечного представления полосы.

18 O moveto
36 О rlineto
0-7 rlineto
-36 O rlineto
closepath stroke
% Определение высоты линии текста для печати
% сообщения (9 точек).

/leftedge 5 def
% Установка исходного положения для печати
% сообщения.

leftedge Inestep 2 mul moveto
gsave
% Определение специальной newline-функции (Senl)
% для "показа" линии текста в стеке, затем пошаговое
% продвижение к следующему положению линии.

Senl {show grestore О linestep rmoveto gsave} def
% Следующие сообщения печатаются без ограничения
% какими-либо условиями.

(****ERROR*****) Senl
(ReqstdDPI=)show DPI 20 string cvs Senl
(ActualDPI=)show ActualDPI 20 string cvs Senl
(xxDPI=)show xxDPI 20 string cvs Senl
(xyDPI=)show xyDPI 20 string cvs Senl
(yxDPI=)show yxDPI 20 string cvs Senl
(yyDPI=)show yyDPI 20 string cvs Senl
% Следующие сообщения печатаются, если индикатор
% состояния равен по меньшей мере 3.

Progress 3 ge {
(xxSql=)show xxSql 20 string cvs Senl
(xySql=)show xySql 20 string cvs Senl
(yxSql=)show yxSql 20 string cvs Senl
(yySql=)show yySql 20 string cvs Senl} if
% Следующие сообщения печатаются, если индикатор
% состояния равен по меньшей мере 5.

Progress 5 ge {
(xxS=)show xxS 20 string cvs Senl
(xyS=)show xyS 20 string cvs Senl
(yxS=)show yxS 20 string cvs Senl
(yyS=)show yyS 20 string cvs Senl} if
% Печать описания текста того, что было неправильным,
% после значения индикатора состояния.

StripEirMag Senl
(Progress=) show Progress 200 string cvs show grestore
} if
Вероятно, что для квалифицированного специалиста в этой области техники станут очевидными возможные изменения и модификации, которые могут быть сделаны, при этом предполагается, что формула изобретения охватывает все такие изменения и модификации, которые соответствуют сущности настоящего изобретения и находятся в пределах его объема.


Формула изобретения

1. Способ, осуществленный на процессоре принтера, печати машинно-считываемых кодовых изображений на выбранном принтере, имеющем известные и доступные характеристики воспроизведения, причем каждое из указанных машинно-считываемых кодовых изображений определено битовым отображением кода и имеет прямолинейные двухмерные геометрические характеристики, заключающийся в том, что вводят битовое отображение кода машинно-считываемого кодового изображения, предназначенного для печати, в битовое отображение выводимого принтером изображения с помощью программных средств, без учета возможности внесения искажений в указанное изображение, получают для процессора принтера характеристики воспроизведения указанного выбранного принтера, анализируют с помощью указанного процессора принтера физические характеристики массива пикселей указанного принтера на основе полученных характеристик воспроизведения, трансформируют битовое отображение кода машинно-считываемого кодового изображения путем изменения размеров и осуществления поворота в той степени, которая требуется для точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения целым кратным указанных физических характеристик массива пикселей указанного принтера, осуществляют печать на выбранном принтере трансформированного машинно-считываемого кодового изображения.

2. Способ по п.1, отличающийся тем, что дополнительно после анализа физических характеристик массива пикселей указанного принтера и перед печатью машинно-считываемого кодового изображения на принтере трансформируют битовое отображение кода машинно-считываемого кодового изображения путем коррекции по сдвигу в той степени, которая требуется для точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения целым кратным указанных физических характеристик массива пикселей указанного принтера.

3. Способ, осуществленный на процессоре принтера, печати машинно-считываемых кодовых изображений на выбранном принтере, имеющем известные и доступные характеристики воспроизведения, причем каждое из указанных машинно-считываемых кодовых изображений определено битовым отображением кода и имеет прямолинейные двухмерные геометрические характеристики, заключающийся в том, что вводят битовое отображение кода машинно-считываемого кодового изображения, предназначенного для печати, в битовое отображение выводимого принтером изображения с помощью программных средств, без учета возможности внесения искажений в указанное изображение, получают для процессора принтера характеристики воспроизведения указанного выбранного принтера, анализируют с помощью указанного процессора принтера физические характеристики массива пикселей указанного принтера на основе полученных характеристик воспроизведения, трансформируют битовое отображение кода машинно-считываемого кодового изображения путем изменения размеров и перемещения в той степени, которая требуется для точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения целым кратным указанных физических характеристик массива пикселей указанного принтера, осуществляют печать на выбранном принтере трансформированного машинно-считываемого кодового изображения.

4. Способ по п. 3, отличающийся тем, что дополнительно после анализа физических характеристик массива пикселей указанного принтера и перед печатью машинно-считываемого кодового изображения на принтере трансформируют битовое отображение кода машинно-считываемого кодового изображения путем осуществления поворота в той степени, которая требуется для точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения целым кратным указанных физических характеристик массива пикселей указанного принтера.

5. Способ по п. 3, отличающийся тем, что дополнительно после анализа физических характеристик массива пикселей указанного принтера и перед печатью машинно-считываемого кодового изображения на принтере трансформируют битовое отображение кода машинно-считываемого кодового изображения путем коррекции по сдвигу в той степени, которая требуется для точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения целым кратным указанных физических характеристик массива пикселей указанного принтера.

6. Способ, осуществленный на процессоре принтера, печати машинно-считываемых кодовых изображений на выбранном принтере, имеющем известные и доступные характеристики воспроизведения, причем каждое из указанных машинно-считываемых кодовых изображений определено битовым отображением кода и имеет прямолинейные двухмерные геометрические характеристики, заключающийся в том, что вводят битовое отображение кода машинно-считываемого кодового изображения, предназначенного для печати, в битовое отображение выводимого принтером изображения с помощью программных средств, без учета возможности внесения искажений в указанное изображение, получают для процессора принтера характеристики воспроизведения указанного выбранного принтера, анализируют с помощью указанного процессора принтера физические характеристики массива пикселей указанного принтера на основе полученных характеристик воспроизведения, измеряют разницу ориентации между массивом пикселей, определенным машинно-считываемым кодовым изображением, и указанными физическими характеристиками массива пикселей указанного принтера, сравнивают величину указанной разницы с нулем и с заданным максимально допустимым значением разницы ориентации и, если величина разницы ориентации больше нуля и меньше максимально допустимого значения разницы ориентации, то трансформируют машинно-считываемое кодовое изображение путем устранения разницы ориентации для точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения целым кратным указанных физических характеристик массива пикселей указанного принтера, осуществляют печать на выбранном принтере трансформированного машинно-считываемого кодового изображения, а если величина разницы ориентации больше максимально допустимого значения разницы ориентации, то осуществляют вывод на печать сообщения об искажении.

7. Способ по п.6, отличающийся тем, что сообщение об искажении является графическим изображением искажения.

8. Способ, осуществленный на процессоре принтера, печати машинно-считываемых кодовых изображений на выбранном принтере, имеющем известные и доступные характеристики воспроизведения, причем каждое из указанных машинно-считываемых кодовых изображений определено битовым отображением кода и имеет прямолинейные двухмерные геометрические характеристики, заключающийся в том, что вводят битовое отображение кода машинно-считываемого кодового изображения, предназначенного для печати, в битовое отображение выводимого принтером изображения с помощью программных средств, без учета возможности внесения искажений в указанное изображение, получают для процессора принтера характеристики воспроизведения указанного выбранного принтера, анализируют с помощью указанного процессора принтера физические характеристики массива пикселей указанного принтера на основе полученных характеристик воспроизведения, измеряют величины сдвигового искажения между массивом пикселей, определенным машинно-считываемым кодовым изображением, и указанными физическими характеристиками массива пикселей указанного принтера, сравнивают величину указанного сдвигового искажения с нулем и с заданным максимально допустимым значением сдвигового искажения и, если величина указанного сдвигового искажения больше нуля и меньше максимально допустимого значения сдвигового искажения, то трансформируют машинно-считываемое кодовое изображение путем устранения разницы ориентации для точного соответствия прямолинейных двухмерных геометрических характеристик кодового изображения целым кратным указанных физических характеристик массива пикселей указанного принтера, осуществляют печать на выбранном принтере трансформированного машинно-считываемого кодового изображения, а если величина указанного сдвигового искажения больше максимально допустимого значения разницы ориентации, то осуществляют вывод на печать сообщения об ошибке.

9. Способ по п.6, отличающийся тем, что сообщение об ошибке представляет собой графическое сообщение об ошибке.

РИСУНКИ

Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5



 

Похожие патенты:

Изобретение относится к приборостроению и может использоваться для записи измеряемых сигналов на электрочувствительном носителе информации

Изобретение относится к области вычислительной техники, в частности к оборудованию вывода информации на печать

Изобретение относится к области автоматики и позволяет упростить устВх .7, ройство управления электромеханическим преобразователем

Изобретение относится к вычислительной технике и может быть использовано для вывода данных из ЭВМ на печать

Изобретение относится к вычислительной технике и может быть использовано при вводе информации с помощью пишупщх машин

Изобретение относится к вычислительной технике, в частности к печатающим устройствам

Принтер // 2088969
Изобретение относится к вычислительной технике

Изобретение относится к автоматике и вычислительной технике и может быть использовано для регистрации и анализа переходных процессов в контактной цепи герконов, в частности для экспресс-анализа переходного сопротивления

Изобретение относится к устройствам ввода и вывода информации в вычислительной технике

Изобретение относится к вычислительной технике и автоматике

Изобретение относится к вычислительной технике

Изобретение относится к вычислительной технике, используется в системах автоматического проектирования, например плат печатного монтажа, позволяет упростить устройство, которое содержит пишущий узел 1, планшет 2, корпус 3, шпулю 4 для рулонного носителя информации

Изобретение относится к техническим средствам приема и передачи дискретной информации

Изобретение относится к автоматике и вычислительной технике и может быть использовано в пишущих машинах и вводно-выводных устройствах

Изобретение относится к устройству управления принтером и способу, посредством которого можно контролировать состояние принтера
Наверх