Процессы печати
При печати файла система направляет коды на принтер. Одни коды
служат для печати отдельных символов, например, букв от a до
z или цифр от до 9; другие задают
формат печатаемого текста, например, подчеркивание или выравнивание текста на
странице. Если вы хотите направить на принтер другие символьные коды,
например, изменить слово этот на данный, достаточно
просто отредактировать файл. Иметь представление о соответствующих этим
символам кодах необязательно.
Однако для изменения режима работы принтера вам необходимо понимать, что
происходит при печати файла, каким образом можно отправить управляющую
информацию на принтер и какими параметрами принтера вы можете
управлять.
Для отправки файла вы можете воспользоваться командой быстрого доступа
Web-администратора системы (введите wsm, затем выберите
Принтеры), Инструментом управления системой (SMIT) или командой . С помощью Web-администратора системы
или SMIT можно также удалить задание печати или изменить его приоритет.
Файл не передается непосредственно на принтер. Web-администратор
системы, SMIT или команда qprt вызывают команду enq и
помещают запрос на печать в очередь. Запрос на печать находится в
очереди до тех пор, пока принтер не станет доступным, после чего команда запускает команду (базовую программу обмена информацией с
принтером). Команда piobe обрабатывает файл и отправляет его
вместе с управляющей информацией на принтер. Поток данных, поступающий
на принтер, включает сам файл и управляющую информацию, заданную с помощью
команды qprt.
Управление процессом печати
Добавить управляющую информацию в поток данных для принтера можно
следующими способами:
-
Включить управляющие коды принтера в файл.
Включите в файл всю управляющую информацию для принтера, которую он будет
использовать при печати данного файла. Например, чтобы название книги
было подчеркнуто, а абзац был напечатан полужирным шрифтом, необходимо в
соответствующих местах файла указать коды начала и конца управляющей
информации для принтера.Некоторые приложения, например, текстовые процессоры, позволяют вставлять в
файл управляющую информацию для принтера. Однако, если принтер нельзя
настроить из приложения, то для вставки управляющих кодов принтера необходимо
воспользоваться системным редактором. Управляющие коды можно узнать у
продавца или у фирмы-изготовителя принтера. - Задайте флаги команд с помощью команды .
Команда qprt и опция SMIT
Запустить задание печати распознают большое число флагов,
управляющих следующими операциями принтера:- Задание уплотненной печати, печати с выделением, двойной печати и печати с
двойной шириной символов. - Печать определенным цветом
- Установка полей и отступов
- Задание плотности строк (на дюйм) по вертикали
- Сохранение горизонтальной позиции на печатной строке при переводе строки и
управление вертикальной табуляцией.
Для каждого задания печати можно указывать свои параметры печати.
Например, ширину шрифта можно задать с помощью команды qprt с
флагом -pчисло, где число — число символов на
дюйм. Команда qprt по умолчанию задает ширину шрифта 10
символов на дюйм; если в файле printtest вы хотите задать
ширину шрифта 12 символов на дюйм, введите команду:qprt -p 12 printtest
Флаг, указанный в командной строке, переопределяет в данном задании
стандартное значение команды qprt. При этом стандартная
ширина шрифта, задаваемая командой qprt, остается равной 10. - Задание уплотненной печати, печати с выделением, двойной печати и печати с
- Изменить стандартные значения команды qprt.
С помощью Web-администратора системы (введите wsm, затем
выберите Printers ) можно изменить или просмотреть параметры
очереди печати для принтера. Для этого можно также воспользоваться SMIT
или командой .Например, если вы хотите заменить стандартную ширину шрифта на 12 символов
на дюйм, запустите Web-администратор системы (введите wsm, затем
выберите Устройства.), выполните команду или SMIT. Выберите принтер из
показанного списка и введите имя и значение атрибута, разделенные знаком
равенства ( = ).Имена атрибутов для флагов команды qprt — это буквы. Для
того чтобы задать 12 символов на дюйм в качестве стандартной ширины шрифта,
укажите p=12.
PJL и JetDirect
Компания Hewlett-Packard разработала язык Printer Job Language (PJL) еще в девяностых. Изначально он был предназначен для расширения команд принтера, но шли годы, и в динамичном мире информационных технологий для этой функции стал использоваться другой язык — Printer Command Language (PCL). С легкой руки HP язык PJL пошел своей дорогой. Его взяли на вооружение другие компании, он оброс новыми функциями… В итоге мы получили что-то сравнимое с ассемблером — язык один, а инструкции на каждое устройство свои.
Даже если взять только устройства HP, то полного описания инструкций и команд в открытом доступе нет (видимо, компания поняла, что выкладывать технические детали в интернет небезопасно). Есть общий мануал, в котором сопоставлены серийные модели принтеров и поддерживаемые ими команды. Также существует инструкция, описывающая действия команд, синтаксис и ошибки. Документ старый, сильно на него полагаться не стал бы.
Помимо языка управления принтерами, HP разработала еще одну интересную штуку, которая служит и по сей день, — JetDirect. Это технология, позволяющая превратить любой принтер в сетевой. На ее основе выпускаются как отдельные принт-серверы, так и встроенные (в принтеры, МФУ и роутеры). JetDirect позволяет подключать устройства к сети и печатать удаленно… причем не только их владельцу!
Ломаем приветствие
С помощью PJL некоторые хакерские приемы применяются в сервисных центрах. Например, так сбрасывают счетчики напечатанных листов или очищают память о вставленных ранее картриджах. Это нельзя сделать из меню самого принтера, поэтому и приходится прибегать к таким уловкам через консоль. Давай и мы разомнемся!
WARNING
Статья написана в образовательных целях. Ни автор, ни редакция не несут ответственности за любой возможный вред, причиненный изложенными здесь материалами.
Сервис JetDirect по умолчанию сконфигурирован на прослушивание TCP-порта 9100. На него мы и будем отправлять команды из консоли. Для опытов я использовал сетевой принтер HP Color LaserJet 3600n со встроенным принт-сервером HP JetDirect Fast Ethernet.
Находим открытый порт 9100 программой Nmap
На открытый порт мы можем подключиться обычным , но так как я приверженец всяких садистских штуковин, то воспользуюсь . Давай попробуем поменять приветствие принтера на дисплее.
Поясню немного команду: — эти символы дают понять принтеру, какой мы используем язык; — это сама команда изменения надписи на дисплее. После нее мы просто пишем то, что хотим вывести.
Посылаем команду на принтер
В итоге получаем результат как на фотографии.
Дисплей принтера до и после отправки команды
Теперь наша надпись будет сиять на дисплее вместо стандартного приветствия, пока кто-то не нажмет любую кнопку на самом устройстве.
Аналогичного эффекта можно добиться, используя оператор (сообщение о готовности) вместо (стандартное сообщение). Команда приобретет следующий вид:
То же самое можно проделать, выполнив печать из файла:
После этих команд на табло принтера снова гордо воссияла надпись HACKED, а это значит, что мы можем отправлять принтеру PJL-команды из файла.
Массовый тест
Взаимодействие принтера и компьютера при печати можно представить как трехслойную модель. На первом слое будет сетевой протокол, затем язык управления принтером (в нашем случае PJL) и последним — язык описания (PostScript).
Тут есть интересный момент: поскольку порт 9100 де-факто зарезервирован для JetDirect, то он прослушивается на получение как команд PJL, так и собственно заданий печати. Другими словами, мы можем послать туда любую строку, которая не относится к PJL. Принт-сервер передаст ее на следующий уровень, где PostScript преобразует ее в задание на печать. Конечно, без взаимодействия с драйвером распечатать форматы типа .docx или .png, скорее всего, нельзя, а вот для обычного файла .txt этого вполне хватит.
Внесу небольшую ремарку: если есть желание получить идентичные надписи на разных моделях и марках принтеров и МФУ — лучше сразу забыть. PostScript не «понимает» форматирование текста, или, если сказать другими словами, шрифт и размер надписи будет разный, тот, который используется по дефолту.
Для проверки создадим текстовый файл , не содержащий команд. Это просто строки с латинскими буквами. Отправляем его на принтер той же командой, и… спустя пару секунд устройство выплюнет распечатанный лист!
В итоге мы имеем возможность печатать документ при помощи JetDirect, просто отправив текст на TCP-порт 9100 из файла или консоли. Можно ли это автоматизировать? Нужно!
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку!
Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя!
Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»
Обработка выборки документов и выборочное перепроведение по видам движений для 1С-Предприятие-7.7 Промо
Обработка позволяет выполнить над подобранным списком документов следующие действия:
1) «Провести»; 2) «Отменить проведение»; 3) «Пометить на удаление»; 4) «Снять пометку на удаление»; 5) «Удалить непосредственно»; 6) «Сменить фирму» (если есть общий реквизит ‘Фирма’). Имеются удобные инструменты для подбора выборки документов (Подбор в обработках ‘ПодборUChoice’ и ‘Консоль1CQA’). Реализованы различные опции обработки документов (в том числе ‘выборочное проведение по видам движений’). Описана технология выборочного проведения документов по видам движений.
1 стартмани
Архитектура расширения параметров безопасности
Расширение параметров безопасности редактора локальных групповая политика является частью средств Configuration Manager безопасности, как показано на следующей схеме.
Архитектура параметров безопасности
Средства настройки и анализа параметров безопасности включают подсистему конфигурации безопасности, которая предоставляет локальный компьютер (не член домена) и групповая политика конфигурацию и анализ политик параметров безопасности. Подсистема конфигурации безопасности также поддерживает создание файлов политики безопасности. Основными функциями подсистемы конфигурации безопасности являются scecli.dll и scesrv.dll.
В следующем списке описаны эти основные функции подсистемы конфигурации безопасности и другие функции, связанные с параметрами безопасности.
-
scesrv.dll
Этот .dll файл размещается в services.exe и выполняется в контексте локальной системы. scesrv.dll предоставляет основные функции Configuration Manager безопасности, такие как импорт, настройка, анализ и распространение политик.
Scesrv.dll выполняет настройку и анализ различных системных параметров, связанных с безопасностью, путем вызова соответствующих системных API, включая LSA, SAM и реестр.
Scesrv.dll предоставляет ТАКИЕ API, как импорт, экспорт, настройка и анализ. Он проверяет, выполняется ли запрос через LRPC (Windows XP), и завершается ошибкой вызова, если это не так.
Обмен данными между частями расширения «Параметры безопасности» осуществляется с помощью следующих методов:
- Вызовы объектной модели компонентов (COM)
- Локальный удаленный вызов процедур (LRPC)
- Протокол LDAP
- Интерфейсы служб Active Directory (ADSI)
- Блок сообщений сервера (SMB)
- API Win32
- Вызовы инструментария управления Windows (WMI)
На контроллерах домена scesrv.dll получает уведомления об изменениях, внесенных в SAM и LSA, которые необходимо синхронизировать между контроллерами домена. Scesrv.dll включает эти изменения в объект групповой политики контроллера домена по умолчанию с помощью интерфейсов API изменения шаблонов внутри процесса scecli.dll.
Scesrv.dll также выполняет операции конфигурации и анализа. -
Scecli.dll
Этот Scecli.dll является клиентским интерфейсом или оболочкой для scesrv.dll. scecli.dll загружается в Wsecedit.dll для поддержки оснастки MMC. Он используется программой установки для настройки безопасности системы по умолчанию для файлов, разделов реестра и служб, установленных INF-файлами API установки.
В командной строке пользовательских интерфейсов конфигурации безопасности и анализа secedit.exe используется scecli.dll.
Scecli.dll реализует расширение на стороне клиента для групповая политика.
Scesrv.dll использует scecli.dll для скачивания применимых файлов групповая политика из SYSVOL, чтобы применить групповая политика параметры безопасности к локальному устройству.
Scecli.dll регистрирует применение политики безопасности в WMI (RSoP).
Scesrv.dll фильтр политики использует scecli.dll для обновления объекта групповой политики контроллера домена по умолчанию при внесении изменений в SAM и LSA.
-
Wsecedit.dll
Расширение параметров безопасности оснастки редактора объектов групповая политика. Это средство используется для настройки параметров безопасности в объекте групповая политика для сайта, домена или подразделения. Параметры безопасности также можно использовать для импорта шаблонов безопасности в объект групповой политики.
-
Secedit.sdb
Эта secedit.sdb — это постоянная системная база данных, используемая для распространения политик, включая таблицу постоянных параметров для отката.
-
Пользовательские базы данных
Пользовательская база данных — это любая база данных, кроме системной базы данных, созданной администраторами в целях настройки или анализа безопасности.
-
. Шаблоны Inf
Эти шаблоны представляют собой текстовые файлы, содержащие декларативные параметры безопасности. Они загружаются в базу данных перед настройкой или анализом. групповая политика политики безопасности хранятся в INF-файлах в папке SYSVOL контроллеров домена, где они скачиваются (с помощью копирования файлов) и объединяются в системную базу данных во время распространения политики.
[Разработчику] Любая таблица значений в OLAP Промо
Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag’n’Drop и ещё много приятных вещей от MS.
Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой.
Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ.
Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.
1 стартмани
Привет история
Первый компьютерный принтер, разработанный Чарльзом Бэббиджем для его разностной машины в 19 веке, был сконструирован с механическим приводом; однако его конструкция механического принтера была создана только в 2000 году.
Первым электронным принтером был EP-101, изобретенный японской компанией Epson и выпущенный в 1968 году.
Первые коммерческие принтеры обычно использовали механизмы от и телетайпов машин. Требование более высокой скорости привело к разработке новых систем специально для использования на компьютерах. В 1980-х годах существовали системы шлейфового колеса, похожие на пишущие машинки, линейные принтеры, которые производили аналогичный вывод, но с гораздо большей скоростью, и матричные системы, которые могли смешивать текст и графика, но производила относительно некачественный результат. Плоттер использовался для тех, кому требуется высококачественная штриховая графика, например чертежи.
. Появление в 1984 году недорогого лазерного принтера с первым HP LaserJet и Добавление PostScript в Apple LaserWriter в следующем году произвело революцию в печати, известную как настольные издательские системы. Лазерные принтеры, использующие смешанный текст и графику PostScript, такие как матричные принтеры, но с уровнем качества, ранее доступным только в коммерческих наборных системах. К 1990 году самые простые задачи печати, такие как листовки и брошюры, теперь создавались на персональных компьютерах, а затем печатались на лазере; дорогие системы офсетной печати выбрасывались на металлолом. HP Deskjet 1988 года предлагал те же преимущества, что и лазерный принтер, с точки зрения гибкости, но давал несколько более низкое качество печати (в зависимости от бумаги) за счет гораздо менее дорогих механизмов. Струйные системы быстро вытеснили с рынка точечно-матричные и ромашковые принтеры. К 2000-м годам высококачественные принтеры такого типа упали ниже уровня 100 долларов и стали обычным явлением.
Быстрое обновление Интернета электронной почты в течение 1990-х и в 2000-х годах в значительной степени вытеснило необходимость в печати как средстве перемещения документов и большом количестве Надежные системы хранения означают, что от «физического резервного копирования» сегодня мало пользы. Даже потребность в печатной продукции для «чтения в автономном режиме» в общественном транспорте или в самолете была вытеснена устройствами чтения электронных книг и планшетными компьютерами. Сегодня традиционные принтеры используются в большей степени для специальных целей, таких как печать фотографий или произведений искусства, и больше не являются обязательным периферийным оборудованием.
Примерно с 2010 года 3D-печать стала областью применения большой интерес, позволяющий создавать физические объекты с теми же усилиями, что и первые лазерные принтеры, необходимые для создания брошюр. Эти устройства находятся на начальной стадии разработки и еще не стали обычным явлением.
Проверка зацикливания групп справочников
Зацикливание групп, то есть ситуация, когда группы подчинены «друг другу», иногда может возникнуть при программном обновлении справочников / обмене данными с другими источниками и может полностью парализовать работу пользователей. Паралич (программа висит, ест память) наступает при попытке 1с отобразить на форме списка иерархию «зацикленного» справочника (при включенной иерархии), при выполнении запросов с иерархией справочника и просто выполнении методов справочника в программном коде, связанных с иерархией. Эта публикация предназначена для выявления и исправления таких ситуаций.
1 стартмани
Автообновление конфигураций 1С Предприятие 7.7 Версия 3.28 Промо
Утилита предназначена для автоматического локального или удаленного обновления или объединения конфигураций программы 1С Предприятие 7.7. Определяет список доступных информационных баз и пользователей. Хранит в зашифрованном виде список паролей. Ожидает выхода пользователей. Встроенный монитор пользователей и журнал выполнения заданий. Поддерживает незарегистрированные в реестре информационные базы. Обновляет регламентированные отчеты. Выгружает и загружает файлы для обновлений из Интернет по протоколам FTP, HTTP. Формирует, отсылает и получает задания на обновления по электронной почте. Отправляет по электронной почте отчеты о выполнении заданий и копии информационных баз
1 стартмани
StartManager 1.4 — Развитие альтернативного стартера Промо
Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.
1 стартмани
Как открыть «Управление печатью»
Так как печать считается одних из базовых задач, сервер печати изначально входит в список системных компонентов Windows. Это значит, что его не нужно дополнительно устанавливать, а можно сразу запускать.
В окне «Выполнить»
Большинство системных утилит поддерживают запуск как из командной строки, так и из окна «Выполнить». Это довольно удобно, ведь эти утилиты открываются из любого окна, а потому к ним легко обратиться. Для этого необходимо выполнить следующие действия:
- Откройте окно «Выполнить». Для этого используйте сочетание клавиш «Win» + «R».
- В открывшемся окне введите команду «printmanagement.msc».
Если вместо нужного окна отобразилась ошибка «Не удается найти команду», значит, эта возможность ограничена администратором либо отключен необходимый компонент.
Для подключения компонента введите во встроенном поиске текст «Управление дополнительными функциями». Нажмите «Добавить компонент». Найдите пункт «Консоль управления печатью» и поставьте галочку напротив пункта. Нажмите «Установить». Если нужного компонента не нашлось, то вам необходимо открыть PowerShell («Win» + «X») и ввести команду: «Get-WindowsCapability -Name PRINT.MANAGEMENT* -Online | Add-WindowsCapability –Online». Повторите алгоритм с первого пункта.
Если команда, наконец, сработала, то у вас должно открыться окно с названием «Управление печатью». В активной области будут отображаться принтеры и их свойства.
В некоторых сборках Windows этот метод не всегда работает, да и добавление нового компонента ради одной команды – это нерационально (но необходимо). Потому предлагаем второй, более легкий способ.
Используя «Поиск»
Возможности «Поиска» в Windows 10 намного шире, чем в более старых версиях Винды. Через эту утилиту пользователь может выполнить команду, найти программу, встроенную утилиту, параметр, файлы или даже совершить поисковый запрос в интернет. Для запуска через опцию поиска необходимо следовать алгоритму ниже:
- Откройте строку поиска. Для этого кликните по значку лупы в панели задач, либо зажмите сочетание клавиш «Win» + «S».
- В открывшемся поле введите команду «printmanagement» либо фразу «Управление печатью».
- Откройте найденный результат.
Готово. Однако, если ничего не было найдено, то, скорее всего, вы некорректно установили нужный компонент либо ваша ОС не поддерживает описываемую возможность. Однако существует и третий метод, возможно, поможет именно он.
Средства администрирования Windows
Средства администрирования – это довольно мощный инструмент, предоставляющий быстрый доступ к множеству встроенных утилит для работы как с ОС, так и аппаратной составляющей. Алгоритм действий:
В меню пуск найдите папку «Служебные». Раскройте ее.
- Внутри найдите раздел «Администрирование».
- Откроется новое окно, в котором нужно найти подраздел «Управление печатью».
Готово. По сути, все перечисленные выше методы приведут к одному и тому же результату. Примечание: эти методы не будут работать в ОС Windows 10 Home. В таком случае пользователь может использовать только утилиту «Принтеры и сканеры», которую легко найти через встроенный поиск.
Фильтр форматирования
В зависимости от значения входного параметра, фильтр
форматирования выполняет форматирование входного файла или передает его
без изменений. Перед выполнением печати файла программа форматирования
передает принтеру команды инициализации, а после завершения печати
восстанавливает состояние принтера, даже если она не изменяет входной
файл.
Драйвер программы форматирования не зависит от устройства. Для
каждого типа (или группы типов) входных данных предусмотрена своя программа
форматирования. Например, для всех поддерживаемых принтеров Proprinters
существует одна программа форматирования.
Фильтр форматирования состоит из двух компонентов:
- Драйвер программы форматирования, не зависящий от устройства
- Собственно программа форматирования, зависящая от устройства
Драйвер программы форматирования вызывается конвейером, и ему передается
имя программы форматирования, которой он будет управлять. Драйвер
динамически загружается, подключается к программе форматирования и вызывает
функцию программы форматирования , которая
указывает, форматировать ли данные или передавать их без изменения.
После того, как функция программы форматирования setup выполнит
необходимые действия, управление вновь передается драйверу. Драйвер
вызывает функцию . Эта функция
выводит строку команд, предназначенных для инициализации принтера, и
возвращает управление драйверу.
Наконец, драйвер вызывает либо функцию , либо функцию для каждой строки файла печати, в
зависимости от кода, полученного им от функции setup. Если
вызвана функция lineout, драйвер программы форматирования выполняет
вертикальную разметку страницы, задавая междустрочный интервал, вертикальную
табуляцию, символы перевода строки и верхнее и нижнее поля. С помощью
функции lineout устанавливаются только междустрочный интервал и
вертикальная табуляция. Остальные функции вертикальной разметки
выполняются автоматически.
Закончив обработку файла, драйвер вызывает функцию , которая выводит строку команд,
предназначенных для восстановления значений атрибутов принтера по умолчанию из
базы данных.
Более подробная информация о том, как программа форматирования принтера
взаимодействует с процедурами форматирования, содержится в .