печат под дос с мастилен принтер - проблем

7 отговора 205 прегледа
#1

печат под дос с мастилен принтер - проблем

Здравейте!
Програмата е писана на "С". За да разпечатана нещо на принтера използвам функцията:
fprintf(prn, "Каквото ще се принтира %s %d", променливи);
На обикновен матричен принтер това върши идеална работа. Но днес пробвах да разпечатам нещо по този начин на мастилен принтер HP DeskJet 890c и резултата беше следния - разпечата се само един ред (една функция fprintf();) и принтера изкара листа (сложи край на печата).
Проблема в принтера ли е или не се правят така нещата с печата?

Животът е гаден, но това му е хубавото...
Отговор
в отговор на Jony++ #2

Re: печат под дос с мастилен принтер - проблем

Здрасти,

Както обича да казва програмистът: "При мен си работи!"

Заинтригувах се от проблема ти и си направих следното програмче:

#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" на латиница само).

Отговор
в отговор на pyrx #3

Re: печат под дос с мастилен принтер - проблем

Мерси много!!!
Разбрах къде ми е грешката. Аз не използвам този ред:
prn = fopen( "lpt1", "w" );
а параметъра на fprintf(); - stdprn. Сега като добавих този ред всичко е на ред.

А мажеш ли да ми кажеш как да накарам принтера да печата с различно cpi /брой символи на инч/? За някой принтери се прави от драйвера, но като нямам подходящ драйвер, мога ли някак си да го накарма да печата с различно cpi от собствената програма? Нямам предвид кондензирания шршфт, той е твърде сбит, а нещо междинно.

Животът е гаден, но това му е хубавото...
Отговор
в отговор на Jony++ #4

Re: печат под дос с мастилен принтер - проблем

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

Сбит шрифт: #15
Отмяна на сбития шрифт: #18

12 знака на инч: ESC - "M"
Отмяна на 12 знака на инч: ESC - "P"
(нормалния трябва да е 10 знака на инч - по спомени)

за тези нови DeskJet не се надявам да работи, но си заслужава да се пробва.

Отговор
в отговор на Jony++ #5

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

Отговор
в отговор на kur #6

Re: печат под дос с мастилен принтер - проблем

Извинете, не поясних! Имах предвид cpi на матричен принтер, който няма драйвер. Иначе за мастилния принетр който ползвам дори и кондензирания печат не работи.

Животът е гаден, но това му е хубавото...
Отговор
в отговор на kur #7

Re: печат под дос с мастилен принтер - проблем

Навремето имаше една мноого полезна програмка "helppc"
там ги има почти всички ESC - последователности за матрични и лазерни принтери
преди печат подай "инициализация на принтера" (в момента не се сещам за последователноста )
и след това си печатай както си искаш! :)))

Късмет!!!

Отговор
в отговор на Jony++ #8

Re: печат под дос с мастилен принтер - проблем

някъде ми се търкаля HP DOSJet - и върши работа за НР принтери под ДОС - за смяна на шрифтове и каквото се сетиш още даже имам и един ЛЕТРИКС за матрични принтери . Ама как да ти го пратя?

Отговор