natgillin/translations-raw huggingface dataset:
Earlier on in history, every developer of a program that was capable of producing printable output had to write his own printer drivers too. That was quite complicated, because different programs have different file formats. Even programs with the same purpose, for example: word processors, often do not understand each other's formats. There was therefore no common interface to all printers, hence the programmers often supported only a few selected models.
У минулому всі розробники програм, здатних здійснювати друк, повинні були писати і власні драйвери принтера. Завдання з написання драйвера було складною справою, оскільки різні програми працювали з файлами у різних форматах. Навіть програм з однаковим призначенням, наприклад, текстові процесори, не підтримували роботу з форматами документів інших текстових процесорів. З цих причин не існувало загального інтерфейсу для всіх принтерів, отже програмісти часто обмежувалися підтримкою декількох обраних ними моделей принтерів.
A new device appearing on the market required the program authors to write a new driver if they wanted their program to support it. Also for manufacturers, it was impossible to make sure their device was supported by any program known to the world (although there were far fewer than today).
Якщо для авторів програми була важлива підтримка нового принтера після появи його на ринку, вони мали написати новий драйвер. Крім того, виробник принтерів не міг бути впевненим, що його принтер зможе працювати з усіма можливими програмами (хоча таких програм і було набагато менше ніж зараз).
Having to support ten application programs and a dozen printers, meant a system administrator had to deal with 120 drivers. So the development of unified interfaces between programs and printers became an urgent need.
Підтримка друку у десяти програмах на десяти принтерах вимагала від адміністратора системи встановлення 100 драйверів. Отже розробка уніфікованих інтерфейсів між програмами і принтерами стала дуже важливою задачею.
The appearance of Page Description Languages, describing the graphical representation of ink and toner on sheets of paper (or other output devices, like monitors, photo typesetters, & etc;) in a common way, was a move that filled a big gap.
Поява мов опису сторінки (Page Description Languages або PDL), які у загальний спосіб описували розподіл чорнила або тонера сторінками паперу, стала відповіддю на потребу у такому інтерфейсі.
One such development was & PostScript; by Adobe. It meant that an application programmer could concentrate on making his program generate a & PostScript; language description of his printable page, while printing device developers could focus on making their devices & PostScript; literate.
Одним з варіантів таких мов була & PostScript;, створена компанією Adobe. Поява цієї мови опису сторінок означала, що програміст міг зосередитися на написанні коду, який створював опис надрукованої сторінки мовою & PostScript;, а розробники пристроїв для друку могли зосередитися на підтримці & PostScript; у своїх пристроях.
Of course, over time, there came the development of other description methods. The most important competitors to & PostScript; were PCL (Print Control Language, from & Hewlett-Packard;), ESC/ P (from Epson) and GDI (Graphical Device Interface from & Microsoft;).
Звичайно ж, з часом з’ явилися розробки інших способів опису сторінки. Найпоширенішими суперниками & PostScript; були PCL (Print Control Language, мова, створена компанією & Hewlett- Packard;), ESC/ P (мова, створена компанією Epson) і GDI (Graphical Device Interface, мова, створена компанією & Microsoft;).
The appearance of these page description languages made life easier, and facilitated further development for everybody. Yet the fact that there still remained different, incompatible, and competing page description languages keeps life for users, administrators, developers and manufacturers difficult enough.
Поява цих мов опису сторінок зробила життя простішим і полегшила подальшу розробку способів друку, хоча наявність різних несумісних мов опису сторінок, які конкурували одна з одною, все ще ускладнювала життя користувачів, адміністраторів, розробників і виробників.
& PostScript; in memory - Bitmaps on Paper
& PostScript; у пам’ яті — растрові зображення на папері
& PostScript; is most heavily used in professional printing environments such as PrePress and printing service industries. In the & UNIX; and & Linux; domains, & PostScript; is the predominant standard as a PDL. Here, nearly every program generates a & PostScript; representation of its pages once you push the Print button. Let us look at a simple example of (hand-made) & PostScript; code. The following listing describes two simple drawings:
Мова & PostScript; найширше використовувалася у середовищах для професійного друку, зокрема PrePress, та у друкарській промисловості. У середовищах & UNIX; і & Linux; & PostScript; є основною мовою опису сторінок (PDL). У цих середовищах майже всі програми можуть створювати & PostScript; - представлення сторінок одразу після натискання кнопки « Надрукувати ». Давайте розглянемо простий приклад (самописного) коду & PostScript;. У наведеному нижче коді описано два простих креслення:
& PostScript; Code
Код & PostScript;
This tells the imaginary & PostScript; pen to draw a path of a certain shape, and then fill it with different shades of gray. The first part translates into more comprehensive English as Go to coordinate (100,100), draw a line with length 50 upward; then one from there to the right, then down again, and finally close this part. Now fill the drawn shape with 70% darkness gray.
За допомогою цього коду можна наказати уявному « перу » & PostScript; намалювати контур певної форми, а потім заповнити його різними відтінками сірого кольору. Першу частину коду можна перекласти зрозумілою українською мовою як « Перейди до точки з координатами (100, 100), намалюй лінію довжини 50 вгору, потім таку саму праворуч, потім вниз і, нарешті, повернися до початкової точки. Тепер заповни контур 70% сірим кольором. »
Rendered & PostScript;
Показаний & PostScript;
example rendered as an image.
зображення інтерпретації прикладу
Of course, & PostScript; can be much more complicated than this simplistic example. It is a fully fledged programming language with many different operators and functions. You may even write & PostScript; programs to compute the value of Pi, format a hard disk or write to a file. The main value and strength of & PostScript; however lies in the field to describe the layout of graphical objects on a page: it also can scale, mirror, translate, transform, rotate and distort everything you can imagine on a piece of paper -- such as letters in different font representations, figures, shapes, shades, colors, lines, dots, raster...
Звичайно ж, код & PostScript; може бути набагато складнішим за наведений тут спрощений приклад. Мова & PostScript; є повноцінною мовою програмування з багатьма операторами та функціями. Мовою & PostScript; можна навіть писати програми для обчислення числа & pi;, форматування жорсткого диска або запису до файла. Але основна цінність і сила & PostScript; полягає у описі компонування графічних об’ єктів на сторінці: за допомогою цієї мови можна масштабувати, віддзеркалювати, пересувати, перетворювати, обертати і викривляти майже будь- який об’ єкт, який можна уявити надрукованим на папері, зокрема літери з різних шрифтів, фігури, форми, відтінки, кольори, лінії, крапки, растрові зображення...
A & PostScript; file is a representation of one or more pages to be printed, in a relatively abstract way. Ideally, it is meant to describe the pages in a device-independent way. & PostScript; is not directly visible; it only lives on hard disks and in RAM as a coded representation of future printouts.
Файл & PostScript; — це відтворення однієї або декількох сторінок для друку у відносно абстрактний спосіб. За ідеальних умов, цією мовою можна описати сторінки у спосіб, який не залежатиме від пристрою друку. & PostScript; не можна « побачити », дані зберігаються на жорстких дисках та у оперативній пам’ яті як закодоване представлення майбутніх відбитків.
Raster Images on Paper Sheets
Растрові зображення на аркушах паперу
What you see on a piece of paper is nearly always a raster image. Even if your brain suggests to you that your eyes see a line: take a good magnifying glass and you will discover lots of small dots... (One example to the contrary are lines that have been drawn by pen plotters). And that is the only thing that the marking engines of today's printers can put on paper: simple dots of different colors, size and resolution, to make up a complete page image composed of different bitmap patterns.
Те, що ви звикли бачити на папері, майже завжди є « растровим зображенням ». Навіть якщо ваш мозок припускає, що ваші очі бачать лінію, за використання збільшувального скла ви побачити лише набір маленьких точок... (одним з контрприкладів є лінії, намальовані « перовими графопобудовниками »). Це все, що можуть зобразити на папері сучасні « рушії розмітки » — прості точки різних кольорів, розмірів та щільності, призначені для створення « зображення сторінки », що складається з різних бітових візерунків.
Different printers need the raster image prepared in different ways. Thinking about an inkjet device: depending on its resolution, the number of inks used (the very good ones need 7 different inks, while cheaper ones might only use 3), the number of available jets (some print heads have more than 100!) dispensing ink simultaneously, the dithering algorithm used, and many other things, the final raster format and transfer order to the marking engine is heavily dependent on the exact model used.
Для різних принтерів растрові зображення слід готувати у різний спосіб. Якщо говорити про струминні принтери, залежно від роздільної здатності зображення, кількості чорнил (високоякісні принтери можуть використовувати 7 чорнил різних кольорів, дешевші моделі — лише 3 чорнила), кількість сопел (на головках деяких принтерів понад 100 сопел!) здатних розбризкувати чорнило одночасно, використаного алгоритму дизерингу, та багатьох інших факторів остаточний формат растрового зображення і порядок передачі його частин рушію розмітки сильно залежать від того, яку саме модель принтера використано.
Back in the early life of the Line Printer Daemon, printers were machines that hammered rows of ASCII text mechanically on to long media, folded as a zig-zag paper snake, drawn from a cardboard box beneath the table... What a difference from today!
Якщо повернутися у минуле Line Printer Daemon, принтери були машинами, які механічно відтискали рядки тексту у кодуванні ASCII на довгому носієві, згорнутому зиґзаґом папері, « гармошці », який надходив зі скриньки, що стояла поряд зі столом... Як же все змінилося з того часу!
RIP: From & PostScript; to Raster
RIP: від & PostScript; до растрових зображень
Before the final raster images are put on paper cut-sheets, they have to be calculated somehow out of their abstract & PostScript; representation. This is a very computing-intensive process. It is called the Raster Imaging Process, more commonly RIP).
Перш ніж остаточні растрові зображення буде відтворено на папері, їх якимось чином слід розрахувати на основі абстрактного представлення & PostScript;. Таке перетворення є досить складним з точки зору обчислення процесом. Цей процес називається створенням растрового зображення (Raster Imaging Process або частіше RIP).
With & PostScript; printers the RIP -ping is taken care of by the device itself. You just send the & PostScript; file to it. The Raster Imaging Processor (also called the RIP) inside the printer is responsible (and specialized) to fulfill quite well this task of interpreting the & PostScript; -page descriptions and put the raster image on paper.
У принтерах з & PostScript; виконанням RIP переймається сам пристрій. Достатньо лише надіслати до нього файл & PostScript;. Процесор створення растрового зображення (Raster Imaging Processor, його також називаю RIP) у самому принтері відповідає (його спеціально створено для цього) за належне виконання завдання з інтерпретації описів сторінок & PostScript; і відтворення растрового зображення на папері.
Smaller & PostScript; devices have a hardware- RIP built in; it is etched in silicon, on a special chip. Big professional printers often have their RIP implemented as a software- RIP inside a dedicated fast & UNIX; run computer, often a Sun SPARC Solaris or a & SGI; & IRIX; machine.
У менших пристроях & PostScript; передбачено вбудований апаратний RIP: його створено як особливу мікросхему. У великих професійних пристроях RIP реалізовано програмний RIP у спеціально призначеному для цього комп’ ютері під керуванням & UNIX;, часто Sun SPARC Solaris або & SGI; & IRIX;.
Ghostscript as a Software RIP
Ghostscript як програмний RIP
But what happens, if you are not lucky enough to have a & PostScript; printer available?
Що ж робити, як ви не є щасливим власником принтера & PostScript;?
You need to do the RIP -ing before you send the print data to the marking engine. You need to digest the & PostScript; generated by your application on the host machine (the print client) itself. You need to know how the exact raster format of the target printer's marking engine must be composed.
Дані обов’ язково слід обробити RIP до надсилання рушієві розмітки. Код & PostScript;, створений вашим комп’ ютером (або клієнтом друку) має бути оброблено на цьому ж комп’ ютері. Слід визначити точний формат растру рушія розмітки принтера призначення.
In other words, as you ca n't rely on the printer to understand and interpret the & PostScript; itself, the issue becomes quite a bit more complicated. You need software that tries to solve for you the issues involved.
Іншими словами, оскільки ви не можете покладатися на розуміння і обробку & PostScript; самим принтером, справа стає дещо складнішою. Вам потрібне програмне забезпечення, яке розв’ яже цю проблему.
This is exactly what the omnipresent & ghostscript; package is doing for many & Linux;, *BSD and other & UNIX; boxes that need to print to non-PostScript; printers: & ghostscript; is a & PostScript; interpreter, a software RIP capable of running many different devices.
Саме це завдання і виконує розповсюджений пакунок & ghostscript; у багатьох системах & Linux;, * BSD та інших & UNIX; якщо виникне потреба у друці на принтерах, які не підтримують & PostScript;: & ghostscript; є інтерпретатором & PostScript;, програмним RIP, здатним працювати з багатьма пристроями.
Drivers and Filters in General
Загальне уявлення про драйвери і фільтри
To produce rasterized bitmaps from & PostScript; input, the concept of filters is used by & ghostscript;. There are many different filters in & ghostscript;, some of them specialized for a certain model of printer. & ghostscript; filter devices have often been developed without the consent or support of the manufacturer concerned. Without access to the specifications and documentation, it was a very painstaking process to reverse engineer protocols and data formats.
Для створення растрових зображень з коду & PostScript; & ghostscript; використовує фільтри. У & ghostscript; передбачено багато різних фільтрів, деякі з них спеціально призначено для певних моделей принтерів. Спеціалізовані фільтри пристроїв & ghostscript; часто розроблялися без згоди або підтримки виробників принтера. Без доступу до специфікацій та документації дуже важко розшифрувати протоколи і формати даних.
Not all & ghostscript; filters work equally well for their printers. Yet, some of the newer ones, like the stp Filter of the Gimp Print project, produce excellent results leading to photographic quality on a par or even superior to their & Microsoft; & Windows; driver counterparts.
Не всі фільтри & ghostscript; однаково добре працюють з відповідними принтерами, хоча деякі з нових фільтрів, наприклад, фільтр stp з проекту Gimp Print дає чудові результати, створюючи зображення фотографічної якості рівноцінні або навіть кращі за зображення, які створю драйвер для & Microsoft; & Windows;.
& PostScript; is what most application programs produce for printing in & UNIX; and & Linux;. Filters are the true workhorses of any printing system there. Essentially they produce the right bitmaps from any & PostScript; input for non-PostScript; target engines.
& PostScript; — це те, що створюють більшість програм під час друку у & UNIX; і & Linux;. У цих системах друку справжніми робочими конячками є фільтри. Загалом кажучи, фільтри створюють належні растрові зображення з будь- яких даних & PostScript; для рушіїв призначення, які не підтримують & PostScript;.
Drivers and Filters and Backends in CUPS
Драйвери, фільтри і сервери у CUPS
& CUPS; uses its own filters, though the filtering system is based on Ghostscript. Namely the pstoraster and the imagetoraster filters are directly derived from Ghostscript code. & CUPS; has reorganized and streamlined the whole mechanics of this legacy code and organized it into a few clear and distinct modules.
& CUPS; використовує власні фільтри, хоча систему фільтрування і засновано на Ghostscript. Безпосередньо з коду Ghostscript походять фільтри pstoraster і imagetoraster. У & CUPS; цей застарілий код було впорядковано та очищено, на його основі створено декілька простіших модулів з точно визначеним призначенням.
This next drawing (done with the help of & kivio;) gives an overview of the filters and backends inside & CUPS; and how they fit together. The flow is from top to bottom. Backends are special filters: they do n't convert date to a different format, but they send the ready files to the printer. There are different backends for different transfer protocols.
На наступній діаграмі (створеній за допомогою & kivio;) наведено огляд фільтрів і серверів всередині & CUPS; та їх взаємозв’ язки. Потік даних проходить згори вниз. Сервери — це особливі фільтри: вони не перетворюють дані у інший формат, а надсилають готові файли на принтер. Існують різні сервери для різних протоколів передавання даних.
kprinter; dialog started (kivio; draft drawing)
Діалогове вікно & kprinter; (чернетка креслення з & kivio;)
Spoolers and Printing Daemons
Буфери та фонові служби друку
Besides the heavy part of the filtering task to generate a print-ready bitmap, any printing software needs to use a SPOOLing mechanism: this is to line up different jobs from different users for different printers and different filters and send them accordingly to the destinations. The printing daemon takes care of all this.
Окрім важкого завдання з фільтрування для створення растрового зображення для принтера, будь- яке програмне забезпечення для друку має використовувати механізм буферизації: тобто механізм розподілу різних завдань від різних користувачів для різних принтерів і різних фільтрів, який надішле дані точно за призначенням. Всі ці завдання виконає фонова служба друку.
This daemon is keeping the house in order: it is also responsible for the job control: users should be allowed to cancel, stop, restart, & etc; their jobs (but not other peoples's jobs) and so on.
Ця фонова служба підтримує порядок: вона відповідає за керування завданнями. Користувачі повинні отримати змогу скасовувати, призупиняти, перезапускати тощо створені ними завдання (але не завдання інших користувачів).
Excursion: How CUPS uses the power of & PPD; s
Огляд: як CUPS використовує потужність & PPD;
Now that you know how a & PostScript; language file (which describes the page layout in a largely device independent way) is transformed into a Raster Image, you might ask: Well, there are different kinds of raster output devices: first they differ in their resolution; then there are the different paper sizes; it goes on with many finishing options (duplex prints, pamphlets, punched and stapled output with different sheets of colored paper being drawn from different trays, & etc;). How does this fit into our model of device-independent & PostScript;?
Тепер, коли ми познайомилися з тим, як файл мовою & PostScript; (мовою, яка описує компонування у максимально незалежний від пристрою спосіб) перетворюється на растрове зображення, ви можете запитати: Гаразд, існує багато типів пристроїв створення растрових зображень. Вони, по- перше, відрізняються за роздільною здатністю, по- друге, за розміром паперу. Пристрої можуть виконувати багато функцій з остаточної обробки (двобічний друк, друк брошур, друк з полями для прошивання, коли аркуші паперу різних кольорів беруться з різних лотків тощо). Як же все це вкладається у нашу модель незалежного від пристроїв & PostScript;?
The answer comes with so called & PostScript; Printer Description (PPD; files. A & PPD; describes all the device dependent features which can be utilized by a certain printer model. It also contains the coded commands that must be used to call certain features of the device. But & PPD; s are not a closed book, they are simple ASCII text files.
Відповідь на це питання полягає у використанні так званих файлів описів принтерів & PostScript; (PostScript; Printer Description або & PPD;). У файлі & PPD; описано всі незалежні від пристрою функції, якими можна скористатися для певної моделі принтера. У цьому файлі також містяться закодовані команди, які слід використовувати для виклику певних можливостей пристрою. Але файли & PPD; зовсім не є якимось набором незрозумілих даних: це просто текстові файли у кодуванні ASCII.
& PPD; s were invented by Adobe to make it easy for manufacturers to implement their own features into & PostScript; printers, and at the same time retain a standard way of doing so. & PPD; s are well documented and described by Adobe. Their specification is a de-facto open standard.
& PPD; було « винайдено » Adobe для того, щоб полегшити виробникам реалізацію власних можливостей у принтерах & PostScript; і водночас зберегти стандартний спосіб внесення нових можливостей. Компанією Adobe було створено досить добру і докладну документацію щодо & PPD;. Специфікація на ці файли фактично є відкритою.
Device Dependent Print Options
Залежні від пристрою параметри друку
Remember, advanced & PostScript; printing was originally only developed for use on & Microsoft; & Windows; and Apple & Mac; systems. For a long time, all of the feature rich printing on modern devices was simply unavailable for & Linux; and & UNIX;. & CUPS; changes this decisively. & CUPS; is closely tied with & PPD; s, and therefore existing & PPD; s can be utilized to the full by all systems powered by & CUPS;.
Пам’ ятайте, додаткові можливості друку & PostScript; від початку розроблялися лише для операційних систем & Microsoft; & Windows; і Apple & Mac;. Тривалий час всі багаті можливості друку на сучасних пристроях були просто недоступними для користувачів & Linux; і & UNIX;. Поява & CUPS; рішуче змінила цю ситуацію. & CUPS; тісно пов’ язано з файлами & PPD;, отже у системах з встановленим & CUPS; існуючі файли & PPD; можна використати повною мірою.
Using & PPD; s, printer manufacturers were able to insert device-specific hardware features into their products, for features such as duplexing, stapling, punching, finishing, & etc;. The printer drivers load this & PPD; just like an additional configuration file. Thus the printer driver learns about the available device options and how to call them; the driver also presents them in a & GUI; to the user. Through this mechanism you are still able to print device-independent & PostScript; page description language files and specify device-dependent finishing options on top, which are added to the application-generated & PostScript;.
За допомогою файлів & PPD; виробники принтерів могли додавати до власних продуктів специфічні для апаратної частини принтерів можливості, зокрема призначені для двобічного друку, прошивання, брошурування тощо. Драйвери принтерів завантажували такі файли & PPD; як додаткові файли налаштування. За їх допомогою драйверові принтера ставали відомими параметри пристрою та спосіб їх використання, після обробки даних драйвер показував відповідні пункти у інтерфейсі користувача. Таким чином, було уможливлено друк « незалежних від пристрою » файлів мовою опису сторінок & PostScript; і визначення специфічних для пристрою параметрів остаточної обробки, доданих у створеному програмою файлі & PostScript;.
Where to get the & PPD; s for & PostScript; Printers
Звідки взяти & PPD; для принтерів & PostScript;