Как распечатать кириллицу?

  • Автор темы maksimus
  • Дата начала
M

maksimus

Гость
#1
Необходимо печатать текст с помощью:

var
f:textfile;
begin
assignfile(f,'lpt1');
rewrite(f);
writeln(f,'хххххх');
closefile(f);
end.

где ххххххх- текст написанный русскими буквами.
Но при распечатке получается абракадабра.
Подскажите, кто знает, плиз, каким образом с помощью этой процедуры распечатать русские буквы.
 

admin

Well-Known Member
08.08.2003
2 754
1
#2
maksimus
это ты на поскале делаешьь?
просто не все принтеры печатают кириллицу из DOS насколько я знаю.
 
M

maksimus

Гость
#3
<!--QuoteBegin-QUOTE+Серёга-->
<span class="vbquote">(QUOTE @ Серёга)</span><!--QuoteEBegin-->maksimus
это ты на поскале делаешьь?[/quote]
Нет это в Delphi
 
B

Barmutik

Гость
#4
Ну тогда есть такой объект TPrinter... который заведует принтерами.. через него всё можно и печатать...

У меня вроде не было проблем с русскими буквами .. попробуй .. если останутся спрашивай подробнее ...
 
M

maksimus

Гость
#5
<!--QuoteBegin-Barmutik+30:01:2005, 11:15 -->
<span class="vbquote">(Barmutik @ 30:01:2005, 11:15 )</span><!--QuoteEBegin-->Ну тогда есть такой объект TPrinter... который заведует принтерами.. через него всё можно и печатать...

У меня вроде не было проблем с русскими буквами .. попробуй .. если останутся спрашивай подробнее ...[/quote]
TPrinter печатает строку за два прохода, а мне нужно печатать одну строку в один проход (при возврате каретки должна печататься вторая строка).
 

admin

Well-Known Member
08.08.2003
2 754
1
#6
maksimus
странно
может это зависит не от Tprinter а от качества печати которое стоит?
по умолчанию на каждом принтере струином винда ставит среднее качество печати за 2 прохода, за 1 проход - низкое.
я с печатью особо не заморачивался никогда, но может просто TPrinter берет дефолтные драиверовые настройки Windows?
 
M

maksimus

Гость
#7
<!--QuoteBegin-Серёга+30:01:2005, 15:00 -->
<span class="vbquote">(Серёга @ 30:01:2005, 15:00 )</span><!--QuoteEBegin-->maksimus
странно
может это зависит не от Tprinter а от качества печати которое стоит?
по умолчанию на каждом принтере струином винда ставит среднее качество печати за 2 прохода, за 1 проход - низкое.
я с печатью особо не заморачивался никогда, но может просто TPrinter берет дефолтные драиверовые настройки Windows?[/quote]
Забыл отметить: программа будет работать в банке, принтер матричный, печать на рулонах, заранее не известен объем печатаемой информации
 
B

Barmutik

Гость
#8
TPrinter сам конкретно ничего не печатает .. он лиш передаёт виндозному объекту принтера упралвющие команды ..

Так что он непосредственно ниrак не управляет сколькими проходами печатать .. судя по всему (как уже выше указали Вам) это
зависит от настроек качества печати Вашего принтера.. Никто Вам не мешает конкретно на Ваш сеанс печати ставить другие настройки
через тот же объект TPrinter
 
M

maksimus

Гость
#9
<!--QuoteBegin-Barmutik+30:01:2005, 18:27 -->
<span class="vbquote">(Barmutik @ 30:01:2005, 18:27 )</span><!--QuoteEBegin-->TPrinter сам конкретно ничего не печатает .. он лиш передаёт виндозному объекту принтера упралвющие команды ..

Так что он непосредственно ниrак не управляет сколькими проходами печатать .. судя по всему (как уже выше указали Вам) это
зависит от настроек качества печати Вашего принтера.. Никто Вам не мешает конкретно на Ваш сеанс печати ставить другие настройки
через тот же объект TPrinter[/quote]
Подскажите, пожалуйста, каким образом можно настроить качество печати? Может есть какой-нибудь исходничек?
 
B

Barmutik

Гость
#10
Установка качества печати задача специфичная для каждого вида принтера .. я бы сказал даже для каждого драйвера принтера..

Я если мне нужно было настроить размер бумаги и качество печати обычно просто вызывал диалог опций принтера, там настраивал требуемые настройки и потом печатал...

Я думаю что если требуется настраивать конкретно один параметр то следует ковыряться в низкоуровневых виндозных функциях и драйвере принтера.
 
M

maksimus

Гость
#11
Всем огромное спасибо за помощь.
Я уже разобрался сам.
Это оказалось элементарно: chartooem(х,b), а дальше writeln(f,b).
 

admin

Well-Known Member
08.08.2003
2 754
1
#12
maksimus
одна фигня
у тебя это не будет на USB принтерах тогда работать по идее :)
 
B

Barmutik

Гость
#13
Да нет .. вопрос вообще не в том ... он просто из ДОС в Виндовс кодировку перевёл и всё ...

К принтеру и вообще к печати это никакого отношения не имеет ...