печат под дос с мастилен принтер - проблем
7 отговора
205 прегледа
печат под дос с мастилен принтер - проблем
Здравейте!
Програмата е писана на "С". За да разпечатана нещо на принтера използвам функцията:
fprintf(prn, "Каквото ще се принтира %s %d", променливи);
На обикновен матричен принтер това върши идеална работа. Но днес пробвах да разпечатам нещо по този начин на мастилен принтер HP DeskJet 890c и резултата беше следния - разпечата се само един ред (една функция fprintf();) и принтера изкара листа (сложи край на печата).
Проблема в принтера ли е или не се правят така нещата с печата?
Животът е гаден, но това му е хубавото...
Програмата е писана на "С". За да разпечатана нещо на принтера използвам функцията:
fprintf(prn, "Каквото ще се принтира %s %d", променливи);
На обикновен матричен принтер това върши идеална работа. Но днес пробвах да разпечатам нещо по този начин на мастилен принтер HP DeskJet 890c и резултата беше следния - разпечата се само един ред (една функция fprintf();) и принтера изкара листа (сложи край на печата).
Проблема в принтера ли е или не се правят така нещата с печата?
Животът е гаден, но това му е хубавото...
Re: печат под дос с мастилен принтер - проблем
Здрасти,
Както обича да казва програмистът: "При мен си работи!"
Заинтригувах се от проблема ти и си направих следното програмче:
Изкомпилирах го под ДОС-а на Windows 98 с компилатора DJGPP.
Принтерът ми е HP DeskJet 400. И си отпечатва трите реда като пич и си изхвърля страницата, както си му е редът. Друг е въпросът, че този принтер е един от последните т.нар. ДОС-принтери - повечето следващи модели са WinPrinter и не могат да печатат под ДОС или Линукс (или печатат само "generic text" на латиница само).
Както обича да казва програмистът: "При мен си работи!"
Заинтригувах се от проблема ти и си направих следното програмче:
#include <stdio.h>
int main()
{
FILE* prn;
prn = fopen( "lpt1", "w" );
fprintf(prn,"Line 1\n");
fprintf(prn,"Line 2\n");
fprintf(prn,"Line 3\n");
fprintf(prn,"%c",0x0C); // new page
fclose(prn);
return 0;
}
Изкомпилирах го под ДОС-а на Windows 98 с компилатора DJGPP.
Принтерът ми е HP DeskJet 400. И си отпечатва трите реда като пич и си изхвърля страницата, както си му е редът. Друг е въпросът, че този принтер е един от последните т.нар. ДОС-принтери - повечето следващи модели са WinPrinter и не могат да печатат под ДОС или Линукс (или печатат само "generic text" на латиница само).
Re: печат под дос с мастилен принтер - проблем
Мерси много!!!
Разбрах къде ми е грешката. Аз не използвам този ред:
prn = fopen( "lpt1", "w" );
а параметъра на fprintf(); - stdprn. Сега като добавих този ред всичко е на ред.
А мажеш ли да ми кажеш как да накарам принтера да печата с различно cpi /брой символи на инч/? За някой принтери се прави от драйвера, но като нямам подходящ драйвер, мога ли някак си да го накарма да печата с различно cpi от собствената програма? Нямам предвид кондензирания шршфт, той е твърде сбит, а нещо междинно.
Животът е гаден, но това му е хубавото...
Разбрах къде ми е грешката. Аз не използвам този ред:
prn = fopen( "lpt1", "w" );
а параметъра на fprintf(); - stdprn. Сега като добавих този ред всичко е на ред.
А мажеш ли да ми кажеш как да накарам принтера да печата с различно cpi /брой символи на инч/? За някой принтери се прави от драйвера, но като нямам подходящ драйвер, мога ли някак си да го накарма да печата с различно cpi от собствената програма? Нямам предвид кондензирания шршфт, той е твърде сбит, а нещо междинно.
Животът е гаден, но това му е хубавото...
Re: печат под дос с мастилен принтер - проблем
Можеш да опиташ обикновените изструкции дали вършат работа за този принтер. По-скоро сбития шрифт не е точно от драйвера. Зависи дали принтера го поддържа. Повечето матрични принтери използваха едни и същи инструкции, като част от тях се запазиха и за някой мастилени.
Сбит шрифт: #15
Отмяна на сбития шрифт: #18
12 знака на инч: ESC - "M"
Отмяна на 12 знака на инч: ESC - "P"
(нормалния трябва да е 10 знака на инч - по спомени)
за тези нови DeskJet не се надявам да работи, но си заслужава да се пробва.
Сбит шрифт: #15
Отмяна на сбития шрифт: #18
12 знака на инч: ESC - "M"
Отмяна на 12 знака на инч: ESC - "P"
(нормалния трябва да е 10 знака на инч - по спомени)
за тези нови DeskJet не се надявам да работи, но си заслужава да се пробва.
Re: печат под дос с мастилен принтер - проблем
obiknoveno HP-tata rabotat sas PCL comandi potarsi s googleto reference za pcl
moze da probas i da pratis takava komanda <ESC>&k#H (<ESC> e ascii(27))kato na mqstoto na # slagai 4isalca(normalniq text bese nqkade okolo 11 <ESC>&k11H) no naj dobre viz se pak s kakav ezik ti raboti printera i potatrsi reference za nego, po lesno se e ot gadaeneto
moze da probas i da pratis takava komanda <ESC>&k#H (<ESC> e ascii(27))kato na mqstoto na # slagai 4isalca(normalniq text bese nqkade okolo 11 <ESC>&k11H) no naj dobre viz se pak s kakav ezik ti raboti printera i potatrsi reference za nego, po lesno se e ot gadaeneto
Re: печат под дос с мастилен принтер - проблем
Извинете, не поясних! Имах предвид cpi на матричен принтер, който няма драйвер. Иначе за мастилния принетр който ползвам дори и кондензирания печат не работи.
Животът е гаден, но това му е хубавото...
Животът е гаден, но това му е хубавото...
Re: печат под дос с мастилен принтер - проблем
Навремето имаше една мноого полезна програмка "helppc"
там ги има почти всички ESC - последователности за матрични и лазерни принтери
преди печат подай "инициализация на принтера" (в момента не се сещам за последователноста )
и след това си печатай както си искаш! :)))
Късмет!!!
там ги има почти всички ESC - последователности за матрични и лазерни принтери
преди печат подай "инициализация на принтера" (в момента не се сещам за последователноста )
и след това си печатай както си искаш! :)))
Късмет!!!
Re: печат под дос с мастилен принтер - проблем
някъде ми се търкаля HP DOSJet - и върши работа за НР принтери под ДОС - за смяна на шрифтове и каквото се сетиш още даже имам и един ЛЕТРИКС за матрични принтери . Ама как да ти го пратя?