Проблема с ASCII
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Проблема с ASCII
Может и нет но у меня не получается.
clarion v5 ee
В проге организован вывод отчета в текстовый файл.
Пользователю для его распечатки необходимо его отыскать, открыть или блокнотом или WordPad-ом, и послать на печать.
Устраняю так.
Создал новую форму Viewer (с полем Ascii viewer)
добавил на нее кнопку control templates для печати файла
установил флаг preview (при этом класс по умолчанию AsciiPrintClass)
-------------------------------------------
Теперь о проблеме
мне необходимо установить печать и просмотр в одном шрифте.
в просмотрщике и preview я добился в просмотрьщике в property
в preview в модуле подрихтовал
как установить шрифт для печати.
clarion v5 ee
В проге организован вывод отчета в текстовый файл.
Пользователю для его распечатки необходимо его отыскать, открыть или блокнотом или WordPad-ом, и послать на печать.
Устраняю так.
Создал новую форму Viewer (с полем Ascii viewer)
добавил на нее кнопку control templates для печати файла
установил флаг preview (при этом класс по умолчанию AsciiPrintClass)
-------------------------------------------
Теперь о проблеме
мне необходимо установить печать и просмотр в одном шрифте.
в просмотрщике и preview я добился в просмотрьщике в property
в preview в модуле подрихтовал
как установить шрифт для печати.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
Ну в просмотре отчета ты просто установил средство отображения шрифта на экране, и к печати это никакого отношения не имеет ...
Если ты печатаешь текстовый файл - в нем можно задать шрифты или их замену только при помощи ESC-последовательностей, которые настроят принтер на печать нужным шрифтом (или загрузят их в принтер). Подробнее - можно посмотреть в описании любого матричного принтера.
2 вариант - это печать через MS Word. Можно загрузить текстовый файл, установить шрифт и отправить его на печать с просмотром в самом MS Word или вообще без его визуального открытия.
Если ты печатаешь текстовый файл - в нем можно задать шрифты или их замену только при помощи ESC-последовательностей, которые настроят принтер на печать нужным шрифтом (или загрузят их в принтер). Подробнее - можно посмотреть в описании любого матричного принтера.
2 вариант - это печать через MS Word. Можно загрузить текстовый файл, установить шрифт и отправить его на печать с просмотром в самом MS Word или вообще без его визуального открытия.
Где я могу почитать про эти последовательности.
Я к сожалению новичек.
Про експорт в Ворд тоже почитаю
Среда исполнения Вин2000 принтер лазерник ХП 1200,1300 с драйверами 6Л (не матричный)
наверно код втыкать сюда
! СЮДА
Viewer1.AddItem(Printer3) !Activates ASCII print Facilities[/code]
Я к сожалению новичек.
Про експорт в Ворд тоже почитаю
Среда исполнения Вин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
Дополнительно
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 ???
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
Про управляющие последовательности к ASCII можно прочитать в руководствах по матричным принтерам. В старых руководствах это все было точно. Все идет от UNIX еще с 1980-х годов. Сейчас я отказался от этого. Если в ASCII, то лучьше без ESC-операторов, т.к. потом иногда нужно брать текст в WORD, EXCEL и т.д.
Можно попробовать ASCII-файл-отчет взять
редактором Bred2r. Редактор вызвать из программы командой
RUN('Bred2r.exe <полное имя файла>'). Редактор работает на несколько видов кодировок, разные шрифты (целиком на файл), размеры шрифтов. Масштабирование тектса для экрана и печати происходит синхронно. Выбор принтера и т.д.
Можно попробовать ASCII-файл-отчет взять
редактором Bred2r. Редактор вызвать из программы командой
RUN('Bred2r.exe <полное имя файла>'). Редактор работает на несколько видов кодировок, разные шрифты (целиком на файл), размеры шрифтов. Масштабирование тектса для экрана и печати происходит синхронно. Выбор принтера и т.д.
-
- Ветеран
- Сообщения: 311
- Зарегистрирован: 08 Июль 2005, 22:04
Тысячу лет этим не занимался и уже многое забыл.Если хочешь печатать на лазернике, то нужно найти книжку по его PCL/Сейчас такие книги к принтерам не прилагаются.А делать нужно следующее:
в первой строке текстового файла задаешь ESC-последовательность типа такой(посмотрел в старой своей проге):
<27>&k0S<27>(s0S(<27>(S4B<27>&l8D
это что-то типа елита конденсет(<27> - это и есть ESC)
в первой строке текстового файла задаешь ESC-последовательность типа такой(посмотрел в старой своей проге):
<27>&k0S<27>(s0S(<27>(S4B<27>&l8D
это что-то типа елита конденсет(<27> - это и есть ESC)