Проблема с ASCII

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
And234

Проблема с ASCII

Сообщение And234 »

Может и нет но у меня не получается.
clarion v5 ee
В проге организован вывод отчета в текстовый файл.
Пользователю для его распечатки необходимо его отыскать, открыть или блокнотом или WordPad-ом, и послать на печать.
Устраняю так.
Создал новую форму Viewer (с полем Ascii viewer)
добавил на нее кнопку control templates для печати файла
установил флаг preview (при этом класс по умолчанию AsciiPrintClass)
-------------------------------------------
Теперь о проблеме
мне необходимо установить печать и просмотр в одном шрифте.
в просмотрщике и preview я добился в просмотрьщике в property
в preview в модуле подрихтовал
как установить шрифт для печати.
And234

Сообщение And234 »

Пробовал через report хрень таже.
Чего добился так это печати русских букв но нужно еще и установить шрифт FixedSys cyr устранить смещение.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8032
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Сообщение Игорь Столяров »

Ну в просмотре отчета ты просто установил средство отображения шрифта на экране, и к печати это никакого отношения не имеет ...
Если ты печатаешь текстовый файл - в нем можно задать шрифты или их замену только при помощи ESC-последовательностей, которые настроят принтер на печать нужным шрифтом (или загрузят их в принтер). Подробнее - можно посмотреть в описании любого матричного принтера.
2 вариант - это печать через MS Word. Можно загрузить текстовый файл, установить шрифт и отправить его на печать с просмотром в самом MS Word или вообще без его визуального открытия.
And234

Сообщение 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]
And234

Дополнительно

Сообщение 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 ???
MIXA-20

Проблема с ASCII

Сообщение MIXA-20 »

Про управляющие последовательности к ASCII можно прочитать в руководствах по матричным принтерам. В старых руководствах это все было точно. Все идет от UNIX еще с 1980-х годов. Сейчас я отказался от этого. Если в ASCII, то лучьше без ESC-операторов, т.к. потом иногда нужно брать текст в WORD, EXCEL и т.д.
Можно попробовать ASCII-файл-отчет взять
редактором Bred2r. Редактор вызвать из программы командой
RUN('Bred2r.exe <полное имя файла>'). Редактор работает на несколько видов кодировок, разные шрифты (целиком на файл), размеры шрифтов. Масштабирование тектса для экрана и печати происходит синхронно. Выбор принтера и т.д.
lsgsoftware
Ветеран
Сообщения: 311
Зарегистрирован: 08 Июль 2005, 22:04

Сообщение lsgsoftware »

Тысячу лет этим не занимался и уже многое забыл.Если хочешь печатать на лазернике, то нужно найти книжку по его PCL/Сейчас такие книги к принтерам не прилагаются.А делать нужно следующее:
в первой строке текстового файла задаешь ESC-последовательность типа такой(посмотрел в старой своей проге):
<27>&k0S<27>(s0S(<27>(S4B<27>&l8D
это что-то типа елита конденсет(<27> - это и есть ESC)
Ответить