Страница 1 из 1
Проблема с ASCII
Добавлено: 20 Апрель 2006, 7:20
And234
Может и нет но у меня не получается.
clarion v5 ee
В проге организован вывод отчета в текстовый файл.
Пользователю для его распечатки необходимо его отыскать, открыть или блокнотом или WordPad-ом, и послать на печать.
Устраняю так.
Создал новую форму Viewer (с полем Ascii viewer)
добавил на нее кнопку control templates для печати файла
установил флаг preview (при этом класс по умолчанию AsciiPrintClass)
-------------------------------------------
Теперь о проблеме
мне необходимо установить печать и просмотр в одном шрифте.
в просмотрщике и preview я добился в просмотрьщике в property
в preview в модуле подрихтовал
как установить шрифт для печати.
Добавлено: 20 Апрель 2006, 7:23
And234
Пробовал через report хрень таже.
Чего добился так это печати русских букв но нужно еще и установить шрифт FixedSys cyr устранить смещение.
Добавлено: 20 Апрель 2006, 8:48
Игорь Столяров
Ну в просмотре отчета ты просто установил средство отображения шрифта на экране, и к печати это никакого отношения не имеет ...
Если ты печатаешь текстовый файл - в нем можно задать шрифты или их замену только при помощи ESC-последовательностей, которые настроят принтер на печать нужным шрифтом (или загрузят их в принтер). Подробнее - можно посмотреть в описании любого матричного принтера.
2 вариант - это печать через MS Word. Можно загрузить текстовый файл, установить шрифт и отправить его на печать с просмотром в самом MS Word или вообще без его визуального открытия.
Добавлено: 20 Апрель 2006, 10:17
And234
Где я могу почитать про эти последовательности.
Я к сожалению новичек.
Про експорт в Ворд тоже почитаю
Среда исполнения Вин2000 принтер лазерник ХП 1200,1300 с драйверами 6Л (не матричный)
наверно код втыкать сюда
Код: Выделить всё
MEMBER('debtpay.clw') ! This is a MEMBER module
INCLUDE('ABASCII.INC')
INCLUDE('ABTOOLBA.INC')
INCLUDE('ABUTIL.INC')
INCLUDE('ABWINDOW.INC')
MAP
INCLUDE('DEBTP067.INC') !Local module prodecure declarations
END
Report40 PROCEDURE !Generated from procedure template - Window
FilesOpened BYTE
ViewerActive1 BYTE(False)
AsciiFilename1 STRING(FILE:MaxFilePath),AUTO,STATIC,THREAD
AsciiFile1 FILE,DRIVER('ASCII'),NAME(AsciiFilename1),PRE(A1),THREAD
RECORD RECORD,PRE()
TextLine STRING(255)
END
END
ViewWindow WINDOW('View an ASCII File'),AT(3,7,296,136),FONT('FixedSys',7,,),SYSTEM,GRAY
LIST,AT(5,5,285,110),USE(?AsciiBox),IMM,FONT('FixedSys',7,,),FROM('')
BUTTON('&Print...'),AT(130,120,52,11),USE(?Print)
BUTTON('&Close'),AT(255,120,35,10),USE(?Close)
END
ThisWindow CLASS(WindowManager)
Init PROCEDURE(),BYTE,PROC,VIRTUAL
Kill PROCEDURE(),BYTE,PROC,VIRTUAL
Reset PROCEDURE(BYTE Force=0),VIRTUAL
TakeAccepted PROCEDURE(),BYTE,PROC,VIRTUAL
TakeEvent PROCEDURE(),BYTE,PROC,VIRTUAL
TakeFieldEvent PROCEDURE(),BYTE,PROC,VIRTUAL
TakeWindowEvent PROCEDURE(),BYTE,PROC,VIRTUAL
END
Toolbar ToolbarClass
Viewer1 AsciiViewerClass
Printer3 AsciiPrintClass ! Ascii Printer for ?AsciiBox
CODE
GlobalResponse = ThisWindow.Run()
ThisWindow.Init PROCEDURE()
ReturnValue BYTE,AUTO
CODE
SELF.Request = GlobalRequest
ReturnValue =PARENT.Init()
IF ReturnValue THEN RETURN ReturnValue.
SELF.FirstField = ?AsciiBox
SELF.VCRRequest &= VCRRequest
SELF.Errors &= GlobalErrors
SELF.AddItem(Toolbar)
CLEAR(GlobalRequest)
CLEAR(GlobalResponse)
SELF.AddItem(?Close,RequestCancelled)
OPEN(ViewWindow)
SELF.Opened=True
INIMgr.Fetch('Report40',ViewWindow)
CLEAR(AsciiFilename1)
ViewerActive1=Viewer1.Init(AsciiFile1,A1:Textline,AsciiFilename1,?AsciiBox,GlobalErrors,EnablePrint)
IF ~ViewerActive1 THEN RETURN Level:Fatal.
! СЮДА
Viewer1.AddItem(Printer3) !Activates ASCII print Facilities
Код: Выделить всё
SELF.SetAlerts()
RETURN ReturnValue
ThisWindow.Kill PROCEDURE()
ReturnValue BYTE,AUTO
[/code]
Дополнительно
Добавлено: 25 Апрель 2006, 21:23
And234
ESQ-последовательности HP PCL
ESC E RESET
ESC &l0L perforation skip off
ESC &l0O PORTRAIT
ESC &l1O landscape
ESC &l1H feed from tray
ESC &l26A format bumagi A4
ESC &l1E Top line at 1
ESC &l45F Number of lines 45
ESC &l4D 4 lines-per inch interval
ESC &a9L left margin - 9
ESC &a0R otstup snizu
ESC *c111D Select No 111 font for loading
ESC *c5F after loading font
ESC (111X Select up loaded font No 111
ESC *t300R 300 dot/pi
ESC *b0M Set graphic compression method 0
ESC (0N Char set ECMA-latin 1
ESC (s0t Type face line printer
ESC (s0b Normal weight
ESC (s0s Style upright
ESC (s08.50v Char height (in 1/72inch)
ESC (s16.66h Chars per inch
ESC (s0P Char spacing fixed
ESC *p693Y pozicionirowanie X dot
ESC *p227X pozicionirowanie Y dot
ESC *r0F start graphic at ??
ESC *rB ?????????????
ESC *b2M set graphic compression method 2
ESC *b4Wч 8 raster data 4 bites
ESC *b4Wч ч
ESC *b5WЪ Ъ
ESC *r1A start graphic at current position
ESC *b2M set graphic compression method 2
ESC *b9Wш Ъщ ь
ESC *b10Wэ эщ э
ESC *rB ???????????????? Konec grafiki ???
^L eject ???
Проблема с ASCII
Добавлено: 01 Июнь 2006, 5:40
MIXA-20
Про управляющие последовательности к ASCII можно прочитать в руководствах по матричным принтерам. В старых руководствах это все было точно. Все идет от UNIX еще с 1980-х годов. Сейчас я отказался от этого. Если в ASCII, то лучьше без ESC-операторов, т.к. потом иногда нужно брать текст в WORD, EXCEL и т.д.
Можно попробовать ASCII-файл-отчет взять
редактором Bred2r. Редактор вызвать из программы командой
RUN('Bred2r.exe <полное имя файла>'). Редактор работает на несколько видов кодировок, разные шрифты (целиком на файл), размеры шрифтов. Масштабирование тектса для экрана и печати происходит синхронно. Выбор принтера и т.д.
Добавлено: 01 Июнь 2006, 16:49
lsgsoftware
Тысячу лет этим не занимался и уже многое забыл.Если хочешь печатать на лазернике, то нужно найти книжку по его PCL/Сейчас такие книги к принтерам не прилагаются.А делать нужно следующее:
в первой строке текстового файла задаешь ESC-последовательность типа такой(посмотрел в старой своей проге):
<27>&k0S<27>(s0S(<27>(S4B<27>&l8D
это что-то типа елита конденсет(<27> - это и есть ESC)