50501

Дослідження текстового та графічного режимів роботи EPSON-сумісних матричних принтерів

Лабораторная работа

Информатика, кибернетика и программирование

Висновок: у даній лабораторній роботі було розглянуто різні шрифти, які використовуються при друку, а також різні режими друку. Було створено програму, яка генерує коди, які розуміє принтер. На симуляторі принтера підтвердилася робочість програми і було роздруковано текст, зображення, а також візитку, яка містила 2 попередні пункти одночасно.

Украинкский

2014-01-25

67.5 KB

2 чел.

Міністерство освіти і науки України

Національний технічний університет України

“Київський політехнічний інститут”

ІПСА

Кафедра Системного проектування

Лабораторна робота №1

«Дослідження текстового та графічного режимів роботи EPSON-сумісних матричних принтерів»

Виконав:

студент групи ДА – 01

Воробік А.В.

Київ 2012

Мета: вивчення принципів роботи, можливостей та програмування EPSON-сумісних принтерів

Виконання завдання

1.1.

Командна послідовність

Шрифт

Символьна

Кодова

ESC SO

27 14

Широкий шрифт

DC4

20

Відміна широкого шрифту

ESC SI

27 15

Стислий шрифт

DС2

18

Відміна стислого шрифту

ESC E

27 69

Жирний шрифт

ESC F

27 70

Відміна жирного шрифту

ESC G

27 71

Подвійний друк

ESC H

27 72

Відміна подвійного друку

ESC M

27 77

Шрифт "еліта"

ESC P

27 80

Шрифт "піка"

ESC S 0

27 83 0

Друк в верхній половині рядку

ESC S 1

27 83 1

Друк в нижній половині рядку

ESC T

27 84

Відміна друку в верхній або нижній частині строки

ESC 1

27 45 1

Режим підкреслювання

ESC 0

27 45 0

Відміна режиму підкреслювання

Результати роботи тестової програми:

  1.   Друк тексту

ESC SO

Vorobik Andriy Vitaliyovich

 

ESC SI

Vorobik Andriy Vitaliyovich

ESC E

Vorobik Andriy Vitaliyovich

ESC G

Vorobik Andriy Vitaliyovich

ESC 1

Vorobik Andriy Vitaliyovich

  1.  Друк зображення

Друк зображення відбувається у режимі графіки одинарної площини ESC К

  1.  Друк візитки

┌─────────────────────────────────────────────────────────────┐

│                                                             │

│                                                             │

│                                  │

│                                  │

│                                  │

│                                  │

│Vorobik Andriy                    │

│                                  │

│                                  │

│                                  │

│DA-01                             │

│                                  │

│                                                             │

│                                                             │

│                                                             │

└─────────────────────────────────────────────────────────────┘

Лістинг програми

#include <iostream>

#include <fstream>

using namespace std;

unsigned char cbuf[160*160];

void text();

void image();

void vizitka()

{

   FILE *f; int i,j;

   f = fopen("visitka.txt", "wb");

   fprintf(f, "%c", 218);

   for(i=0;i<61;i++)

   {

       fprintf(f, "%c", 196);

   }

   fprintf(f, "%c", 191);

   for(j=0; j<2; j++)

   {

       fprintf(f, "\n%c", 179);

       for (i=0;i<=60;i++)

       {

           fprintf(f, " ");

       }

       fprintf(f, "%c", 179);

   }

   for(j=0; j<10; j++)

   {

       int dx=0;

       fprintf(f, "\n%c%c%c%c%c",179,27,'K',163,0);

       fwrite(cbuf+j*160,1,160,f);

       fprintf(f, "%c%c%c", 0,0,0);

       if (j==4) { fprintf( f, "Vorobik Andriy");dx=18;}

       if (j==8) { fprintf( f, "DA-01");dx=5; }

       for (i=0;i<=(33-dx);i++)

       fprintf(f, " ");

       fprintf(f, "%c", 179);

   }

   for(j=0; j<3; j++)

   {

       fprintf(f, "\n%c", 179);

       for (i=0;i<=60;i++)

       {

           fprintf(f, " ");

       }

       fprintf(f, "%c", 179);

   }

   fprintf(f, "\n\r%c", 192);

   for(i=0;i<61;i++)

   {

       fprintf(f, "%c", 196);

   }

   fprintf(f, "%c", 217);

   fclose(f);

}

int main()

{

   text();

   image();

   vizitka();

   return 0;

}

void text()

{

   FILE *stream;

   char *s = "Vorobik Andriy Vitaliyovich";

   stream = fopen("result.txt", "wb");

   fprintf (stream, "%c%c%s%c\n\r", 27, 14,s,20);

   fprintf (stream, "%c%c%s%c\n\r", 27, 15,s,18);

   fprintf (stream, "%c%c%s%c%c\n\r", 27, 69,s,27,70);

   fprintf (stream, "%c%c%s%c%c\n\r", 27, 71,s,27,72);

   fprintf (stream, "%c%c%c%s%c%c%c\n\r", 27, 45,1,s,27,45,0);

   fclose(stream);

}

void image()

{

   unsigned short pixel[]={};

   int h,w,i,y,x;

   char buf=0;

   int pos=0;

   h=160; w=160;

   FILE *res;

   res = fopen("result2.txt", "wb");

   for(y=0; y<h; y=y+8)

   {

       fprintf(res,"%c%c%c%c",27,'K',w,0);

       for(x=0; x<w; x++)

       {

       buf=0;

       for(i=0; i<8; i++)

            {

               buf<<=1;

               if(pixel[x+(y+i)*w]<128)    buf++;

            }

           fputc(buf,res);

           cbuf[pos++]=buf;

       }

       fprintf(res,"\n\r");

    }

   fclose(res);

}

 

Висновок: у даній лабораторній роботі було розглянуто різні шрифти, які використовуються при друку, а також різні режими друку. Було створено програму, яка генерує коди, які розуміє принтер. На симуляторі принтера підтвердилася робочість програми і було роздруковано текст, зображення, а також візитку, яка містила 2 попередні пункти одночасно.


 

А также другие работы, которые могут Вас заинтересовать

23741. Степень числа 44 KB
  – При выполнении каких заданий мы можем получить произведение одинаковых множителей При разложении чисел на простые множители. – Что интересного вы можете сказать о полученном ряде чисел Все числа кратны 10. – Найдите НОК и НОД чисел а и b если: а = 23 3 52 b = 22 32 7. – Что необходимо сделать что бы выполнить задание Надо расписать степени чисел и применить известные алгоритмы – А можно ли выполнить задание не расписывая степени Этот вопрос может вызвать затруднение.
23742. Высказывания 228 KB
  – Назовите число из полученного ряда сумма цифр в котором равна 6. – Какое число данного ряда может быть лишним Например число 50 – двузначное а остальные – трехзначные. На сколько 150 больше 50 во сколько раз 150 больше 50 на сколько 50 меньше 150 – Придумайте числовые выражения частное в которых равно 3. – Найдите число которого равны 21.
23743. Взаимно простые числа 72.5 KB
  2 Тренировать способности к использованию: а понятий простого и составного числа; б признаков делимости на 2 5 10 3 9; в различных способов нахождения НОД; г алгоритмов объединения и пересечения множеств. На доске остаются числа: 375 164 2310 171. – Разложите получившиеся числа на простые множители.
23744. Делимость произведения 48.5 KB
  Делится ли на 37 число 555 555 555 555 − Сформулируйте в общем виде свойство делимости которое вы наблюдаете. Если первое число делится на второе число второе число делится на третье число то первое число делится на третье число. Докажите используя введение обозначений что если первое число делится на второе а второе делится на третье то и первое число делится на третье. Первое число a второе число b третье число c.
23745. Делимость произведения 48.5 KB
  – Что означает что число а делится на число b – Это означает что существует такое число с которое при умножении на b дает а. – И что – Можно заменить число 16 произведением 4 и 4 и получится произведение 4 4 а. Если ктолибо из учащихся по аналогии с предыдущим заданием верно найдет ответ последнего примера – число 555 то учитель просит его обосновать как выполнены действия. – А как можно разделить произведение на число – Разделить один множитель а потом полученный результат умножить на второй множитель.
23746. Делимость произведения 85.5 KB
  Делится ли: на 13 на 5 на 2 на10 – На 13 делится так как 39 делится на 13; на 5 не делится так как ни один из множителей не делится на 5; на 2 делится так как 356 кратно 2; на 10 не делится так как ни один из множителей не делится на 10.– Делится ли 225 на 3 если известно что 225 делится на 15 – Да делится т. 15 делится на3. Известно что: а 686 делится на 49.
23747. Делимость суммы и разности 45.5 KB
  Преобразуйте второе выражение используя распределительное свойство умножения. Для ответа на этот вопрос и для обоснования этого ответа учащиеся могут либо вычислить значения данных выражений либо воспользоваться распределительным свойством умножения. Всегда ли сумма и разность чисел кратных двум будут кратны двум А сумма и разность чисел кратных трем четырем пяти будут соответственно кратны трем четырем пяти Затем учитель предлагает учащимся обобщить наблюдаемое свойство: Сформулируйте гипотезу. Скажите с помощью...
23748. Делимость суммы и разности 33.5 KB
  Сумма 50 и 11 не будет кратна 5 так как значением данной суммы является число 61 а оно не кратно 5 Что можно сказать о слагаемых 50 и 11 Слагаемое 50 делится на 5 а слагаемое 11 – не делится. Если одно из двух чисел делится на некоторое число а другое не делится на это число то их сумма и разность не делятся на это число. Данные числа обозначим буквами a и b третье число буквой c Что нам известно Что одно из двух чисел делится на третье число а другое не делится Пусть например что a делится на c...
23749. Делимость суммы и разности 49 KB
  Если одно из двух чисел делится на некоторое число а другое не делится на это число то их сумма и разность не делятся на это число Формулировка свойства С 2 вывешивается на доску. 5620 не делится на 8 так как число 56 делится на 8 а число 20 не делится на 8 записываю во второй столбик; 160 – 16 80 делится на 8 так как каждое из чисел делится на 8 записываю в первый столбик; 3200 – 72 ´ 9 делится на 8 так как число 3200 делится на 8 и произведение 72 и 9 тоже делится на 8 записываю в первый столбик. – Как определила что...