On-line: PSP, гостей 2. Всего: 3 [подробнее..]
АвторСообщение





Пост N: 56
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 26.06.09 07:58. Заголовок: опять с печатью проблема


В xHarbour 0.99.61 все работало нормально. После перехода на 1.0.0 все стало распечатываться крякозябрами. Теперь надо где-то кодировку указывать?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 40 , стр: 1 2 All [только новые]


администратор




Пост N: 1268
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.06.09 08:02. Заголовок: rvu Хоть бы кусок к..


rvu
Хоть бы кусок кода показал , что бы ясно было :)

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 58
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 26.06.09 08:27. Заголовок: Файл в кодировке DOS..


Файл в кодировке DOS разбиваю на строчки и вывожу:
oPrinter:TextOut(stroka)

как-то так (выкинул все лишнее), принцип печати, думаю, понятен:

#define FORM_A4 9
#define PS_SOLID 0
#define RGB( nR,nG,nB ) ( nR + ( nG * 256 ) + ( nB * 256 * 256 ) )
#define BLACK RGB( 0x0 ,0x0 ,0x0 )

cPrinter=GetDefaultPrinter()
oPrinter:= Win32Prn():New(cPrinter)
PRIVATE aFonts, x, nColFixed, nColTTF, nColCharSet

oPrinter:Landscape:=.T.

oPrinter:FormType := FORM_A4
oPrinter:Copies := 1
IF !oPrinter:Create()
Alert("Cannot Create Printer")
ELSE
IF !oPrinter:startDoc('Win32Prn(Doc name in Printer Properties)')
Alert("StartDoc() failed")
ELSE
oPrinter:SetPen(PS_SOLID, 1, BLACK)
oPrinter:SetFont('Lucida Console',8,{3,-50})


oPrinter:NewPage()
oPrinter:NewLine()

oPrinter:SetPos(oPrinter:posX(),oPrinter:posY())

oPrinter:TextOut(stroka)


oPrinter:EndDoc()
ENDIF
oPrinter:Destroy()
ENDIF

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 43
Зарегистрирован: 19.12.06
ссылка на сообщение  Отправлено: 26.06.09 09:30. Заголовок: не хватает oPrint..


не хватает oPrinter:Charset(255) после :SetFont



Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 59
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 26.06.09 09:45. Заголовок: Заработало! Спасибо!..


Заработало! Спасибо!

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1333
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.12.09 14:42. Заголовок: rvu Проще использов..


rvu
Проще использовать h**p://www.abeelabs.com/pagescript32/index.php
Их есть у меня

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 24
Зарегистрирован: 03.01.10
ссылка на сообщение  Отправлено: 03.09.10 12:41. Заголовок: рулон?


Есть проблема. Матричный принтер подключен через USB-порт. Надо печатать на рулоне.
Проблема
1) приходится использовать графическую печать класс WIN_PRT. Иначе не работает
2) при печати oPrinter:TextOut() oPrinter:NewLine() делает прогон листа при печати на рулоне даже если не давать
oPrinter:NewPage() - а то и вовсе не все напечатает.
Можно не обращать на это внимание , но заказчик экономит бумагу.
Вопрос
Можно ли вообще печатать графической печатью на матричном принтере через порт USB на "простыне" и
без прогонов, как это делалkось в клиппере при обычной печати? Может кто сталкивался.
Заранее благодарен.






Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 276
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 20.03.13 16:43. Заголовок: Подскажите пожалуйст..


Подскажите пожалуйста... извините, что поднял столь древнюю тему!

Всё сделал, как описано выше с классом win32prn, но на принтере HP LJ P2055 печатает нормально, как ожидалось, но на остальных лазерниках (перепробывал Samsung, Brother, HP LJ 10xx) печатает как бы пропуская одну строку (вставляет между строка печать пустой строки)... Перепробовал кучу методов и свойств - всегда одно и тоже?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2819
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.03.13 18:08. Заголовок: AndreyZh Если мне н..


AndreyZh
Если мне не изменяет память , то такой глюк у кого то уже был и было даже решение.
Поиск надо юзать (я бегло юзанул и не нашел) , хорошо хоть он работает.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 277
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 20.03.13 18:17. Заголовок: Спасибо... но перед ..


Спасибо... но перед экспериментами с классом печати просмотрел все темы, где бы упоминались win32prn или основные методы класса, выбирая их поиском. Нашел способ масштабровать, как по вертикали, так и по горизонтали в проге; ставил разную ширину страниц в установках принтера и etc... то бишь перепробовал довольно много перед обращением к спецам в хХарборе.

Может быть будут советы, хотя бы "где копать"?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2820
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.03.13 18:23. Заголовок: Андрей покажи не бол..


Андрей покажи не большой но самодостаточный пример (как говорит твой тезка )
Я могу проверить у себя на железном принтере Samsung и на куче разных виртуальных принтеров.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 278
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 20.03.13 20:44. Заголовок: Dima пишет: Андрей ..


Dima пишет:

 цитата:
Андрей покажи не большой но самодостаточный пример (как говорит твой тезка )
Я могу проверить у себя на железном принтере Samsung и на куче разных виртуальных принтеров.


Как всегда у меня, что-то часть чего-то, но вроде бы функашку сделал независимой от мои прочих приблуд... Печать файла - достаточно только его имени (прошу прощения за комментарии - это для себя, т.к. изучаю тему):

 
//*** На время включаю директивы препроцессора - затем отключаю
#define FORM_A4 9
#define PS_SOLID 0
#define RGB( nR,nG,nB ) ( nR + ( nG * 256 ) + ( nB * 256 * 256 ) )
#define BLACK RGB( 0x0 ,0x0 ,0x0 )
#define TRUE .T.
#define FALSE .F.
#define CRLF (CHR(13)+CHR(10)) // Конец строки.

* ---------------------------------------------------------------------------
* Вывод текстового файла на принтер в соответствии с параметрами и при
* этом проверяется статус принтера при отражении каждой строки и в начале.
* 1304 При печати использую класс печати xHarbour... Проверка на существо-
* вание файла и принтера уже поизведена.
PROC pPrHarbClass( cFile, nBeg, nEnd, nQty, nLen, nW )
LOCA nPage:=0 // Текущая страница
LOCA nH:=0 // handle
LOCA nQ:=0 // копии
LOCA cBuff:="" // буфер чтения
LOCA cStr:="" // буфер печати
LOCA nSize:=4096 // размер буфера чтения
LOCA cCur:="" // текущая строка
LOCA oPrint // Объект - принтер
LOCA nI:=0, nJ:=0, lStr:=TRUE, cPrinter:=""

// Определяю принтер, используемый по умолчанию в системе
cPrinter := GetDefaultPrinter()

//*** Проверки на возможность использования классов

// Определяем имя объекта класса для принтера, установленного по умолчанию в системе
oPrinter := Win32Prn():New( cPrinter )

// Создаем экземпляр класса и проверка успешности создания... после надо уничтожить его
IF !oPrinter:Create() // Не создан экземпляр класса
* ErrMess("Не создан виртуальный принтер! М/б их нет?",cError)
RETU
ENDI

// В случае успешного создания определяю свойства класса.
oPrinter:Landscape := .F. // портретная ориентация
oPrinter:FormType := FORM_A4 // А4
oPrinter:Copies := 1 // число копий.. ХЗ - не работает

// Обязательно-проверка успешности постановки в очередь с именем
IF !oPrinter:startDoc("Printering USLand")
* ErrMess("StartDoc не смог поставить в очередь печати. Смотрите свойства принтеров, например автономность - обрващайтесь к сист.админу!",cError)

// Уничтожаем раннее созданный экземпляр объекта (класса).
oPrinter:Destroy()
RETU
ENDI

// Определяем перо для рисования линий (толщина шрифта) - форма линий (сплошная, тонкая, черная)
oPrinter:SetPen(PS_SOLID, 1, BLACK)

// Установка шрифта, в зависимости от сжатия текста. В массиве определяется толщина шрифта и высота... подбор эксперимент
/* Массив {x,-Y} x-сжатие по горизонтали, чем меньше, тем сжатие (3-уже, чем 6)
-Y так же сжатие, но может быть толщины линии */
DO CASE
CASE (nLen = 80) .AND. (nW = 6) // Обычный, без сжатия по высоте OK
oPrinter:SetFont("Courier New",10,{4,-41})
oPrinter:lineHeight := 164 // Чем меньше, тем плотнее сжатие ? Это определяет плотность по вертикали
CASE (nLen = 80) .AND. (nW = 8) // Обычный - сжатие по высоте
oPrinter:SetFont("Courier New",10,{4,-41})
oPrinter:lineHeight := 150 // Чем меньше, тем плотнее сжатие ? Это определяет плотность по вертикали
CASE (nLen = 132).AND. (nW = 8) // Сжатый и сжатие по высоте
oPrinter:SetFont("Lucida Console",8,{3,-50}) // oPrinter:SetFont('Courier New', 8,{3,-50})
oPrinter:lineHeight := 150 // ? Это определяет плотность по вертикали
OTHE // Стандартный и сжатый OK
oPrinter:SetFont("Lucida Console", 8,{3,-50})
oPrinter:lineHeight := 164 // ? Это определяет плотность по вертикали
ENDC

// ОБЯЗАТЕЛЬНО - кодировка OEM... иначе козебяки
oPrinter:Charset(255)

// Пробую по моему алгоритму, т.к. нужно выделять страницы
FOR nQ := 1 TO nQty
nH := Fopen( cFile, 0 ) // Открываем файл для чтения
Fseek( nH, 0/*смещение*/, 0/*начало*/ ) // встаём на начало
nPage := 1 // Начальная страница-счетчик.

/* Делаем пока не доберемся до конца файла - считаем в буфер 0 байт
Выводим на принтер текущую копию, анализируя попытки прервать
печать документа */
WHIL Len( cBuff:=FreadStr(nH,nSize) ) <> 0
cStr += cBuff // Пополняемо-обрезаемая строка накопления

// Выделяем строки и страницы из строки накопления
WHIL TRUE

// Не можем выделить полную подстроку из накапливаемой строки - выход.
IF (nI:=At(CRLF,cStr)) == 0 THEN EXIT

// Выделяем логически целую для печати строку. Пробел в начале для выделения пустых строк
cCur := Subs( Token(" "+cStr,CRLF,1), 2 )

// Признак (nJ > 0) конца страницы в строке
nJ := At( Chr(12), cCur )

// Признак окончания страницы, переводим текущий счетчик
IF nJ <> 0
lStr := FALSE
ENDI

// Отрезаем от строки накопления всё после crlf
cStr := Subs( cStr, nI+2 )

// Печатаем, если текущая страница попадает в интервал страниц
IF nPage >= nBeg .AND. nPage <= nEnd
oPrinter:NewLine() // перевод на следующую строку
oPrinter:TextOut(cCur) // выводим текстовую строку

IF !lStr .AND. (nPage < nEnd) // Делаем прогон страницы
oPrinter:NewPage()
ENDI
ENDI

// Увеличиваю счетчик страниц, если случилась смена страницы печати
nPage += IF( lStr, 0, 1 )
lStr := TRUE // Обнуление признака конца страницы
END
END
Fclose( nH ) // Закрываю текстовый файл
NEXT nQ

// Закрываю печать документа
oPrinter:endDoc()

// Уничтожаю объект принтера
oPrinter:Destroy()
RETU

#undef FORM_A4
#undef PS_SOLID
#undef RGB
#undef BLACK
#undef TRUE
#undef FALSE
#undef CRLF




Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 279
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 20.03.13 20:47. Заголовок: cFile - имя файла nB..


cFile - имя файла
nBeg - начальная страница
nEnd - конечная страница
nQty - количество экземпляров
nLen - 132 или 80
nW - 6 или 8

----
без разницы, но какие-то значения д.б. заданы... при вызове раннее определяются умолчания.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2825
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.03.13 21:35. Заголовок: AndreyZh я как бы и..


AndreyZh
я как бы и не ожидал от Вас маленького и самодостаточного примера на 5-10 строк , все как обычно ;)
когда у меня в коде что то начинает работать не так как ожидалось , делаю простые примерчики и тестю,
обычно виноват не (X)harbour а я но всякое бывает конечно.
сделайте простой пример: вывод на печать пары(тройки) строк , лишняя строка при этом будет
иметь место или нет ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 280
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 21.03.13 13:23. Заголовок: Dima пишет: ...обыч..


Dima пишет:

 цитата:
...обычно виноват не (X)harbour а я но всякое бывает конечно. сделайте простой пример: вывод на печать пары(тройки) строк , лишняя строка при этом будет иметь место или нет...


Спасибо за участие... только сейчас добрался до ПК, но те же коки... Правда, как ещё упросить пример НЕ ЗНАЮ!!! ПОМОГИТЕ люди добрые?

 
#define FORM_A4 9
#define PS_SOLID 0
#define RGB( nR,nG,nB ) ( nR + ( nG * 256 ) + ( nB * 256 * 256 ) )
#define BLACK RGB( 0x0 ,0x0 ,0x0 )

* ---------------------------------------------------------------------------
* Головной модуль программы
PROC Main()
LOCA oPrint, nI:=0
LOCA cPrinter:=""

// Определяю принтер, используемый по умолчанию в системе
cPrinter := GetDefaultPrinter()

// Определяем имя объекта класса для принтера, установленного по умолчанию в системе
oPrinter := Win32Prn():New( cPrinter )
oPrinter:Create()
oPrinter:Landscape := .F. // портретная ориентация
oPrinter:FormType := FORM_A4 // А4
oPrinter:Copies := 1 // число копий.. ХЗ - не работает
oPrinter:startDoc("Printering USLand")

// Определяем перо для рисования линий (толщина шрифта) - форма линий (сплошная, тонкая, черная)
oPrinter:SetPen(PS_SOLID, 1, BLACK)

// Шрифты и сжатие.
oPrinter:SetFont("Lucida Console", 8,{3,-53})
oPrinter:lineHeight := 164

oPrinter:Charset(255)

FOR nI := 1 TO 20
oPrinter:NewLine()
oPrinter:TextOut("Установка шрифта, в зависимости от сжатия текста. В массиве определяется толщина шрифта и высота... подбор эксперимент")
oPrinter:NewLine()
oPrinter:TextOut("--------------------------------------------------------------------------------------------------------------------------")
oPrinter:NewLine()
oPrinter:TextOut("--------------------------------------------------------------------------------------------------------------------------")
NEXT nI

oPrinter:endDoc() // Закрываю печать документа
oPrinter:Destroy() // Уничтожаю объект принтера
RETU



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2835
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 13:34. Заголовок: AndreyZh То что над..


AndreyZh
То что надо.
Пустил тест на виртуальный принтер PdfFactory , все нормально.
Копию документа выложить ?

Правда oPrinter:Charset(255) не сработал и вылезли крякозяблы. Собирал с GTWIN

Собирал так
c:\hb32\bin\hbmk2 test -lxhb -lhbwin

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2838
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 13:49. Заголовок: AndreyZh пишет: oPr..


AndreyZh пишет:

 цитата:
oPrinter:Copies := 1 // число копий.. ХЗ - не работает


Действительно не пашет.......
Ни до oPrinter:Create() ни после oPrinter:Create()

Цитата из исходника
 
// These next 6 variables must be set before calling ::Create() if
// you wish to alter the defaults

VAR FormType INIT 0
VAR BinNumber INIT 0
VAR Landscape INIT .F.
VAR Copies INIT 1
VAR PaperLength INIT 0 // Value is * 1/10 of mm 1000 = 10cm
VAR PaperWidth INIT 0 // " " " " " "



Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 281
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 21.03.13 13:51. Заголовок: Сделал на doPdf - пе..


Сделал на doPdf - печать через строчку, на HPLJ P2055 нормально, на Brother через строчку... Как можно на форуме приложить скан?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2839
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 13:57. Заголовок: AndreyZh В форме от..


AndreyZh
В форме ответа вверху есть кнопочки. Вот там где чел нарисован туда и нажми (картинка с компьютера)
Или на обменник сложи

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 785
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 21.03.13 13:59. Заголовок: Dima пишет: Правда ..


Dima пишет:

 цитата:
Правда oPrinter:Charset(255) не сработал и вылезли крякозяблы.


добавьте
REQUEST HB_CODEPAGE_UA1251
hb_cdpselect("UA1251")

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2840
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 14:02. Заголовок: AlexMyr Точно ;) А ..


AlexMyr
Точно ;)
А что с кол-вом копий ? Ведь реально не работает.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 786
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 21.03.13 14:02. Заголовок: напечатал через Cute..


напечатал через CutePDF Writer и Canon MP270 series Printer - нормально

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2841
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 14:10. Заголовок: AlexMyr пишет: напе..


AlexMyr пишет:

 цитата:
напечатал через CutePDF Writer и Canon MP270 series Printer - нормально


и кол-во копий работает если больше 1 ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 282
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 21.03.13 14:11. Заголовок: AlexMyr пишет: напе..


AlexMyr пишет:

 цитата:
напечатал через CutePDF Writer и Canon MP270 series Printer - нормально


Что понимать под "нормально"? Так, как хочу на сс2055...


Как делает на других принтерах тоже самое:


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 787
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 21.03.13 14:12. Заголовок: Так oPrinter:Cr..


Так
oPrinter:Create()
oPrinter:Landscape := .F. // портретная ориентация
oPrinter:FormType := FORM_A4 // А4
oPrinter:Copies := 2 // число копий.. ХЗ - не работает
oPrinter:startDoc("Printering USLand")
не работает,

а так
oPrinter:Copies := 2 // число копий.. ХЗ - не работает
oPrinter:Create()
oPrinter:Landscape := .F. // портретная ориентация
oPrinter:FormType := FORM_A4 // А4

oPrinter:startDoc("Printering USLand")
работает, два листа напечатал Canon.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 283
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 21.03.13 14:17. Заголовок: AlexMyr пишет: Так ..


AlexMyr пишет:

 цитата:
Так
oPrinter:Create()
oPrinter:Landscape := .F. // портретная ориентация
oPrinter:FormType := FORM_A4 // А4
oPrinter:Copies := 2 // число копий.. ХЗ - не работает
oPrinter:startDoc("Printering USLand")
не работает,

а так
oPrinter:Copies := 2 // число копий.. ХЗ - не работает
oPrinter:Create()
oPrinter:Landscape := .F. // портретная ориентация
oPrinter:FormType := FORM_A4 // А4

oPrinter:startDoc("Printering USLand")
работает, два листа напечатал Canon.



Это полезно, но Dima уже дал ссылку...
Dima пишет:

 цитата:
// These next 6 variables must be set before calling ::Create() if // you wish to alter the defaults VAR FormType INIT 0 VAR BinNumber INIT 0 VAR Landscape INIT .F. VAR Copies INIT 1 VAR PaperLength INIT 0 // Value is * 1/10 of mm 1000 = 10cm VAR PaperWidth INIT 0



т.е. параметры до create... но "приручить" принтеры?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2842
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 14:28. Заголовок: AlexMyr а у мну не ..


AlexMyr
а у мну не пашет на PdfFactory PRO кол-во копий
Если печатать из любой другой проги (Word , Excel , OutlookExpress) на этот же принтер то кол-во копий срабатывает

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2843
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 14:29. Заголовок: AndreyZh пишет: ..


AndreyZh пишет:

 цитата:
"приручить" принтеры?


мне кажется что дело тут не в пропуске строк а в межстрочном интервале.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 284
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 21.03.13 14:39. Заголовок: Dima пишет: мне каж..


Dima пишет:

 цитата:
мне кажется что дело тут не в пропуске строк а в межстрочном интервале.


А "что" задаёт этот интервал? Установки на принтерах нет.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2844
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 14:53. Заголовок: AndreyZh пишет: А &..


AndreyZh пишет:

 цитата:
А "что" задаёт этот интервал?


oPrinter:lineHeight

У Вас oPrinter:lineHeight := 164
Попробуйте закоментировать эту строку , по идее результат будет одинаков на разных принтерах

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 285
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 21.03.13 15:02. Заголовок: Dima пишет: oPrinte..


Dima пишет:

 цитата:
oPrinter:lineHeight

У Вас oPrinter:lineHeight := 164
Попробуйте закоментировать эту строку , по идее результат будет одинаков на разных принтерах



ПРЕОГРОМНЕЙШЕЕ СПАСИБО!!! Попался "шалунишка"... теперь буду думать дальше, как мне печатать - народ привык, что 80 строк на листе.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2845
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 15:03. Заголовок: AndreyZh пишет: Что..


AndreyZh пишет:

 цитата:
Что понимать под "нормально"? Так, как хочу на сс2055...




Тут не сработала установка oPrinter:lineHeight := 164

AndreyZh пишет:

 цитата:
Как делает на других принтерах тоже самое:


Тут сработала



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2846
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 15:06. Заголовок: Так а что все таки с..


Так а что все таки с кол-вом копий ? Уже просто интересно ;) Ведь не работает.
Из 2-х библ hbwin и xhb , оставил только одну hbwin , (функции из xhb заменил на аналоги) пересобрал но кол-во копий не работает.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2847
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 15:09. Заголовок: AndreyZh пишет: нар..


AndreyZh пишет:

 цитата:
народ привык, что 80 строк на листе.


В исходнике
::LineHeight := Int( ::PixelsPerInchY / 6 ) // Default 6 lines per inch == # of pixels per line

6 строк на дюйм. То есть нужно подобрать такой LineHeight что бы получилось 80 строк при заданном шрифте

Руками подобрал LineHeight он будет для вашего шрифта от 80 до 85

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 286
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 21.03.13 15:28. Заголовок: Dima пишет: Так а ч..


Dima пишет:

 цитата:
Так а что все таки с кол-вом копий ? Уже просто интересно ;) Ведь не работает.
Из 2-х библ hbwin и xhb , оставил только одну hbwin , (функции из xhb заменил на аналоги) пересобрал но кол-во копий не работает


Таки Вы сами написали:
o:Copyes := 3
Должно быть перед
o:Create

... и всё работает - 3 копии

Dima пишет:

 цитата:
В исходнике
::LineHeight := Int( ::PixelsPerInchY / 6 ) // Default 6 lines per inch == # of pixels per line

6 строк на дюйм. То есть нужно подобрать такой LineHeight что бы получилось 80 строк при заданном шрифте

Руками подобрал LineHeight он будет для вашего шрифта от 80 до 85


За подсказку отдельное спасибо, но и так уже пришлось исходник для Get системы править... думаю, что проше пользователей "перестроить", чем xHarbour переписывать

P.S. Мой вопрос по печати... сейчас оббежал 6 типов принтеров и МФУ - везде единообразно!

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2848
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 15:31. Заголовок: AndreyZh пишет: Так..


AndreyZh пишет:

 цитата:
Таки Вы сами написали:
o:Copyes := 3
Должно быть перед
o:Create


Да писал и да проверил но не работает..........
А нет ли у Вас готовой функции печати TextBox , типа текст в рамке ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 287
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 21.03.13 15:47. Заголовок: Dima пишет: Да писа..


Dima пишет:

 цитата:
Да писал и да проверил но не работает..........


Странно? Взял свой пример, поменял местами и получись три копии на принтере. Мой текст:
 
PROC Main()
LOCA oPrint, nI:=0
LOCA cPrinter:=""

// Определяю принтер, используемый по умолчанию в системе
cPrinter := GetDefaultPrinter()

// Определяем имя объекта класса для принтера, установленного по умолчанию в системе
oPrinter := Win32Prn():New( cPrinter )
oPrinter:Landscape := .F. // портретная ориентация
oPrinter:FormType := FORM_A4 // А4
oPrinter:Copies := 3

// Параметры изменяются до Create
oPrinter:Create()
oPrinter:startDoc("Printering USLand")

// Определяем перо для рисования линий (толщина шрифта) - форма линий (сплошная, тонкая, черная)
oPrinter:SetPen(PS_SOLID, 1, BLACK)

// Шрифты и сжатие.
oPrinter:Charset(255)
oPrinter:SetFont("Lucida Console", 8,{3,-53})
FOR nI := 1 TO 20
oPrinter:NewLine()
oPrinter:TextOut(Str(nI,2)+" [-Мама мыла раму------------------------------------------------------------------------------------------------------]")
NEXT nI
oPrinter:endDoc() // Закрываю печать документа
oPrinter:Destroy() // Уничтожаю объект принтера
RETU



Dima пишет:

 цитата:
А нет ли у Вас готовой функции печати TextBox , типа текст в рамке ?


Увы... да и сейчас взялся за "печать на Харб", т.к. система печати на FoxPro не пашет на 64 разрядных ОС... Мой "dos" подход был: формирую тестовый файл и копирую его на принтер - сейчас делает "тоже самое" процедура в первом примере, хотя и подход через копирование тоже остался.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2849
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 15:57. Заголовок: AndreyZh пишет: Стр..


AndreyZh пишет:

 цитата:
Странно? Взял свой пример, поменял местами и получись три копии на принтере. Мой текст:



Более чем странно. Взял Ваш новый пример и 3 копии не получил , вылезла одна

HArbour 3.2 / BCC 5.5

Собирал так
c:\hb32\bin\hbmk2 test1 -lhbwin -lxhb

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 288
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 21.03.13 16:05. Заголовок: Dima пишет: Более ч..


Dima пишет:

 цитата:
Более чем странно. Взял Ваш новый пример и 3 копии не получил , вылезла одна

HArbour 3.2 / BCC 5.5

Собирал так
c:\hb32\bin\hbmk2 test1 -lhbwin -lxhb


У меня xHarbour 1.2.1 Rev 6633 + BCC 5.5

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2850
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 18:29. Заголовок: Dima пишет: Более ч..


Dima пишет:

 цитата:
Более чем странно. Взял Ваш новый пример и 3 копии не получил , вылезла одна

HArbour 3.2 / BCC 5.5


Интересно проблема в сборке Harbour под BCC 5.5 или классе WIN_PRN !??

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2880
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 18:38. Заголовок: Dima пишет: Интерес..


Dima пишет:

 цитата:
Интересно проблема в сборке Harbour под BCC 5.5


Та же фигня и с MINGW , не пашет кол-во копий (Harbour 3.2)

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 40 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 116
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет