НЯкой да е наясно с API печатането?
7 отговора
170 прегледа
НЯкой да е наясно с API печатането?
не мога да подкарам добре атрични принтери под бейсик
проблема се състи в това че не мга да изключа изваждането на хартия, тоест да печатам .line-by -line a не page-by-page
другото е че този проболем донякъде го решавам със стаия от МСДН но не можах да намеря как чрез API да сменя шрифта за печатане ;((((
ако някой се е мотал с такъв проблем моля ви да помогните със съвет,
възможно е някой да е успял да го направи и с принтер обект ;)))
проблема се състи в това че не мга да изключа изваждането на хартия, тоест да печатам .line-by -line a не page-by-page
другото е че този проболем донякъде го решавам със стаия от МСДН но не можах да намеря как чрез API да сменя шрифта за печатане ;((((
ако някой се е мотал с такъв проблем моля ви да помогните със съвет,
възможно е някой да е успял да го направи и с принтер обект ;)))
Re: НЯкой да е наясно с API печатането?
Добре де, но щом печаташ на матричен принтер, защо не печаташ директно към принтера в ASCII? Доста по-лесно ще му е, и ще е доста по-четлив шрифта. Както знаем, матрични принтери и графика не се понасят много много (24-иглените се справят някак си де). Само трябва да се конвертира кирилицата преди печатане, понеже под DOS тя е в диапазона от 128 до 191 в ASCII таблицата, а под Windows - от 192 до 256. Т.е. налага се преди печат на всеки знак който е с ASCII код по-голям или равен на 192 - да се извади 64 от стойността.
После в кода "отваряш" принтера за печат като файл:
забележи знака ";" след името на променливата. Ако си сложил там тази точка-запетая, то принтера няма да превърти нов ред, а ще чака още данни за текущия. А ако няма такъв знак - значи приема и CrLf, въпреки че никъде не е написан.
За край на страницата можеш да му изпечаташ един Chr(12), и проблема е решен.
Е, това беше в случай, че е допустимо да печаташ в ASCII. А ако трябва да си е Windows-ки формат в графичен режим, тогава продължаваш с API-тата.
Съвета ми е: направи го с възможно най-широко приложение. Да печата на матрични, струйни, лазерни и т.н. принтери. Тези "дребни" неща се ценят от клиента...
----------------------------------
помислих, хареса ми, помислих пак...
После в кода "отваряш" принтера за печат като файл:
Open "lpt1" For Output As #1
Print #1, strLineX;
Close
забележи знака ";" след името на променливата. Ако си сложил там тази точка-запетая, то принтера няма да превърти нов ред, а ще чака още данни за текущия. А ако няма такъв знак - значи приема и CrLf, въпреки че никъде не е написан.
За край на страницата можеш да му изпечаташ един Chr(12), и проблема е решен.
Е, това беше в случай, че е допустимо да печаташ в ASCII. А ако трябва да си е Windows-ки формат в графичен режим, тогава продължаваш с API-тата.
Съвета ми е: направи го с възможно най-широко приложение. Да печата на матрични, струйни, лазерни и т.н. принтери. Тези "дребни" неща се ценят от клиента...
----------------------------------
помислих, хареса ми, помислих пак...
Re: НЯкой да е наясно с API печатането?
това го знам за ASCII принтирането
преблемът е в това че не знае че има разлика в кирилицата ;)))
доста съм се блъскал защо не излиза а излизат кукута;))
благодаря за съвета
лошото е че съм готов с api принтирането и е възможно да пусна sample някъде и тук за програма която отпечатва бланки за ведомости и платежни и всякакви такива подобни.....
преблемът е в това че не знае че има разлика в кирилицата ;)))
доста съм се блъскал защо не излиза а излизат кукута;))
благодаря за съвета
лошото е че съм готов с api принтирането и е възможно да пусна sample някъде и тук за програма която отпечатва бланки за ведомости и платежни и всякакви такива подобни.....
Re: НЯкой да е наясно с API печатането?
ето и процедурка за заместване на стрингов файл за печатане под дос както ти ми каза
s = s.Replace("А", "\'c0")
s = s.Replace("Б", "\'c1")
s = s.Replace("В", "\'c2")
s = s.Replace("Г", "\'c3")
s = s.Replace("Д", "\'c4")
s = s.Replace("Е", "\'c5")
s = s.Replace("Ж", "\'c6")
s = s.Replace("З", "\'c7")
s = s.Replace("И", "\'c8")
s = s.Replace("Й", "\'c9")
s = s.Replace("К", "\'ca")
s = s.Replace("Л", "\'cb")
s = s.Replace("М", "\'cc")
s = s.Replace("Н", "\'cd")
s = s.Replace("О", "\'ce")
s = s.Replace("П", "\'cf")
s = s.Replace("Р", "\'d0")
s = s.Replace("С", "\'d1")
s = s.Replace("Т", "\'d2")
s = s.Replace("У", "\'d3")
s = s.Replace("Ф", "\'d4")
s = s.Replace("Х", "\'d5")
s = s.Replace("Ц", "\'d6")
s = s.Replace("Ч", "\'d7")
s = s.Replace("Ш", "\'d8")
s = s.Replace("Щ", "\'d9")
s = s.Replace("Ъ", "\'da")
s = s.Replace("Ю", "\'de")
s = s.Replace("Я", "\'df")
s = s.Replace("а", "\'e0")
s = s.Replace("б", "\'e1")
s = s.Replace("в", "\'e2")
s = s.Replace("г", "\'e3")
s = s.Replace("д", "\'e4")
s = s.Replace("е", "\'e5")
s = s.Replace("ж", "\'e6")
s = s.Replace("з", "\'e7")
s = s.Replace("и", "\'e8")
s = s.Replace("й", "\'e9")
s = s.Replace("к", "\'ea")
s = s.Replace("л", "\'eb")
s = s.Replace("м", "\'ec")
s = s.Replace("н", "\'ed")
s = s.Replace("о", "\'ee")
s = s.Replace("п", "\'ef")
s = s.Replace("р", "\'f0")
s = s.Replace("с", "\'f1")
s = s.Replace("т", "\'f2")
s = s.Replace("у", "\'f3")
s = s.Replace("ф", "\'f4")
s = s.Replace("х", "\'f5")
s = s.Replace("ц", "\'f6")
s = s.Replace("ч", "\'f7")
s = s.Replace("ш", "\'f8")
s = s.Replace("щ", "\'f9")
s = s.Replace("ъ", "\'fa")
s = s.Replace("ь", "\'fc")
s = s.Replace("ю", "\'fe")
s = s.Replace("я", "\'ff")
s = s.Replace("А", "\'c0")
s = s.Replace("Б", "\'c1")
s = s.Replace("В", "\'c2")
s = s.Replace("Г", "\'c3")
s = s.Replace("Д", "\'c4")
s = s.Replace("Е", "\'c5")
s = s.Replace("Ж", "\'c6")
s = s.Replace("З", "\'c7")
s = s.Replace("И", "\'c8")
s = s.Replace("Й", "\'c9")
s = s.Replace("К", "\'ca")
s = s.Replace("Л", "\'cb")
s = s.Replace("М", "\'cc")
s = s.Replace("Н", "\'cd")
s = s.Replace("О", "\'ce")
s = s.Replace("П", "\'cf")
s = s.Replace("Р", "\'d0")
s = s.Replace("С", "\'d1")
s = s.Replace("Т", "\'d2")
s = s.Replace("У", "\'d3")
s = s.Replace("Ф", "\'d4")
s = s.Replace("Х", "\'d5")
s = s.Replace("Ц", "\'d6")
s = s.Replace("Ч", "\'d7")
s = s.Replace("Ш", "\'d8")
s = s.Replace("Щ", "\'d9")
s = s.Replace("Ъ", "\'da")
s = s.Replace("Ю", "\'de")
s = s.Replace("Я", "\'df")
s = s.Replace("а", "\'e0")
s = s.Replace("б", "\'e1")
s = s.Replace("в", "\'e2")
s = s.Replace("г", "\'e3")
s = s.Replace("д", "\'e4")
s = s.Replace("е", "\'e5")
s = s.Replace("ж", "\'e6")
s = s.Replace("з", "\'e7")
s = s.Replace("и", "\'e8")
s = s.Replace("й", "\'e9")
s = s.Replace("к", "\'ea")
s = s.Replace("л", "\'eb")
s = s.Replace("м", "\'ec")
s = s.Replace("н", "\'ed")
s = s.Replace("о", "\'ee")
s = s.Replace("п", "\'ef")
s = s.Replace("р", "\'f0")
s = s.Replace("с", "\'f1")
s = s.Replace("т", "\'f2")
s = s.Replace("у", "\'f3")
s = s.Replace("ф", "\'f4")
s = s.Replace("х", "\'f5")
s = s.Replace("ц", "\'f6")
s = s.Replace("ч", "\'f7")
s = s.Replace("ш", "\'f8")
s = s.Replace("щ", "\'f9")
s = s.Replace("ъ", "\'fa")
s = s.Replace("ь", "\'fc")
s = s.Replace("ю", "\'fe")
s = s.Replace("я", "\'ff")
Re: НЯкой да е наясно с API печатането?
Ееее, много писане, много нещо. Аз обичам късите сорсове.
----------------------------------
помислих, хареса ми, помислих пак...
Dim intCount As Integer
For intCount = 192 to 255
strText = Replace(strText, Chr(intCount), Chr(intCount - 64))
Next intCount
----------------------------------
помислих, хареса ми, помислих пак...
Редактирано от Щиpлиц на
Re: НЯкой да е наясно с API печатането?
Във връзка с това знаете ли вие как се кирилизира некирилизиран принтер под Windows?
Re: НЯкой да е наясно с API печатането?
Бррр, тоя въпрос направо изтрепа рибата... ;о)
Я, я, разкажи какво е "некирилизиран принтер под Windows"? ;о)) Щото на мене не че ми е много ясно, ама все ми се струваше, че кирилицата в Windows си излиза на принтера като графика. (Освен System Fixed Font).
----------------------------------
помислих, хареса ми, помислих пак...
Я, я, разкажи какво е "некирилизиран принтер под Windows"? ;о)) Щото на мене не че ми е много ясно, ама все ми се струваше, че кирилицата в Windows си излиза на принтера като графика. (Освен System Fixed Font).
----------------------------------
помислих, хареса ми, помислих пак...
Re: НЯкой да е наясно с API печатането?
предполагам че си някаква чиновничка използваща
ажур, НОи ала бала "под" уиндоус ако е така
то слушай :
в българия НЕ СЕ продават некирилизирани принтери - (че кой ще ги купи иначе)
евентуално при задържане на натиск на някое от копчетата ще се влезе в менюто на принтера където може да се настрое nati e language, code table и така нататък всевъзможни настройки, ако принтерът не позволява това то
преди продажба с програматор за ЕНП(ЕЕPROM) е записана кодова таблица на принтера отговаряща на БДС или МИК ...ако е така отиди в сервиз и за 5 лева ще ти го кирилизират
ажур, НОи ала бала "под" уиндоус ако е така
то слушай :
в българия НЕ СЕ продават некирилизирани принтери - (че кой ще ги купи иначе)
евентуално при задържане на натиск на някое от копчетата ще се влезе в менюто на принтера където може да се настрое nati e language, code table и така нататък всевъзможни настройки, ако принтерът не позволява това то
преди продажба с програматор за ЕНП(ЕЕPROM) е записана кодова таблица на принтера отговаряща на БДС или МИК ...ако е така отиди в сервиз и за 5 лева ще ти го кирилизират