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





Пост N: 35
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 07.11.07 21:37. Заголовок: Кто-нибудь пользовался win32prn?


Никак не могу отправить файл на печать, вроде отправляется, но когда смотрю очередь печати, то в свойствах файла написано: размер 0 байт.
Кто-нибудь с win32prn имел дело?

Спасибо: 0 
Профиль
Ответов - 8 [только новые]


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




Пост N: 631
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 08.11.07 10:42. Заголовок: Я пользуюсь Приведи ..


Я пользуюсь
Приведи свой пример

Спасибо: 0 
Профиль





Пост N: 36
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 08.11.07 11:04. Заголовок: Ох, не знаю стоит ли..


Ох, не знаю стоит ли приводить пример, т.к. я внятного описания не нашел и все что я делаю это шаманство.

Собственно, мне нужно отправить файл на принтер. Или хоть что-нибудь туда отправить, хоть строчку. Если можно, приведи лучше ты работающие примеры.


Спасибо: 0 
Профиль
постоянный участник


Пост N: 312
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 08.11.07 11:56. Заголовок: Пример из Harbour co..


Пример из Harbour contrib\win32\test

/*
* $Id: testw32p.prg 7833 2007-10-18 10:23:19Z vszakats $
*/

#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 BLUE RGB( 0x0 ,0x0 ,0x85 )
#define GREEN RGB( 0x0 ,0x85,0x0 )
#define CYAN RGB( 0x0 ,0x85,0x85 )
#define RED RGB( 0x85,0x0 ,0x0 )
#define MAGENTA RGB( 0x85,0x0 ,0x85 )
#define BROWN RGB( 0x85,0x85,0x0 )
#define WHITE RGB( 0xC6,0xC6,0xC6 )

FUNCTION Main()
LOCAL nPrn:=1, cBMPFile:= SPACE( 40 )
LOCAL aPrn:= GetPrinters()
LOCAL GetList:= {}
CLS
IF EMPTY(aPrn)
Alert("No printers installed - Cannot continue")
QUIT
ENDIF
DO WHILE !EMPTY(nPrn)
CLS
@ 0,0 SAY 'Win32Prn() Class test program. Choose a printer to test'
@ 1,0 SAY 'Bitmap file name' GET cBMPFile PICT '@!K'
READ
@ 2,0 TO maxRow(),maxCol()
nPrn:= ACHOICE(3,1,maxRow()-1,maxCol()-1,aPrn,.T.,,nPrn)
IF !EMPTY(nPrn)
PrnTest(aPrn[nPrn], cBMPFile)
ENDIF
ENDDO
RETURN(NIL)

STATIC FUNCTION PrnTest(cPrinter, cBMPFile)
LOCAL oPrinter:= Win32Prn():New(cPrinter), aFonts, x, nColFixed, nColTTF, nColCharSet
oPrinter:Landscape:= .F.
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, RED)
oPrinter:Bold(800)
oPrinter:TextOut(oPrinter:PrinterName+': MaxRow() = '+STR(oPrinter:MaxRow(),4)+' MaxCol() = '+STR(oPrinter:MaxCol(),4))
oPrinter:Bold(0) // Normal
oPrinter:NewLine()
oPrinter:TextOut(' Partial list of available fonts that are available for OEM_')
oPrinter:NewLine()
oPrinter:UnderLine(.T.)
oPrinter:Italic(.T.)
// oPrinter:SetFont('Courier New',7,{3,-50}) // Compressed print
nColFixed:= 40 * oPrinter:CharWidth
nColTTF := 48 * oPrinter:CharWidth
nColCharSet := 60 * oPrinter:CharWidth
oPrinter:TextOut('FontName')
oPrinter:SetPos(nColFixed)
oPrinter:TextOut('Fixed?')
oPrinter:SetPos(nColTTF)
oPrinter:TextOut('TrueType?')
oPrinter:SetPos(nColCharset)
oPrinter:TextOut('CharSet#',.T.)
oPrinter:NewLine()
oPrinter:Italic(.F.)
oPrinter:UnderLine(.F.)
aFonts:= oPrinter:GetFonts()
oPrinter:NewLine()
FOR x:= 1 TO LEN(aFonts) STEP 2
oPrinter:CharSet(aFonts[x,4])
IF oPrinter:SetFont(aFonts[x,1]) // Could use "IF oPrinter:SetFontOk" after call to oPrinter:SetFont()
IF oPrinter:FontName == aFonts[x,1] // Make sure Windows didn't pick a different font
oPrinter:TextOut(aFonts[x,1])
oPrinter:SetPos(nColFixed)
oPrinter:TextOut(IIF(aFonts[x,2],'Yes','No'))
oPrinter:SetPos(nColTTF)
oPrinter:TextOut(IIF(aFonts[x,3],'Yes','No'))
oPrinter:SetPos(nColCharSet)
oPrinter:TextOut(STR(aFonts[x,4],5))
oPrinter:SetPos(oPrinter:LeftMargin, oPrinter:PosY + (oPrinter:CharHeight*2))
IF oPrinter:PRow() > oPrinter:MaxRow() - 10 // Could use "oPrinter:NewPage()" to start a new page
EXIT
ENDIF
ENDIF
ENDIF
oPrinter:Line(0, oPrinter:PosY+5, 2000, oPrinter:PosY+5)
NEXT x
oPrinter:SetFont('Lucida Console',8,{3,-50}) // Alternative Compressed print
oPrinter:CharSet(0) // Reset default charset
oPrinter:Bold(800)
oPrinter:NewLine()
oPrinter:TextOut('This is on line'+STR(oPrinter:Prow(),4)+', Printed bold, ' )
oPrinter:TextOut(' finishing at Column: ')
oPrinter:TextOut(STR(oPrinter:Pcol(),4))
oPrinter:SetPrc(oPrinter:Prow()+3, 0)
oPrinter:Bold(0)
oPrinter:TextOut("Notice: UNDERLINE only prints correctly if there is a blank line after",.T.)
oPrinter:TextOut(" it. This is because of ::LineHeight and the next line",.T.)
oPrinter:TextOut(" printing over top of the underline. To avoid this happening",.T.)
oPrinter:TextOut(" you can to alter ::LineHeight or use a smaller font")
oPrinter:NewLine()
oPrinter:NewLine()
oPrinter:SetFont('Lucida Console',18, 0) // Large print
oPrinter:SetColor( GREEN )
oPrinter:TextOut("Finally some larger print")
oPrinter:Box( 0, oPrinter:PosY+100, 100, oPrinter:PosY+200)
oPrinter:Arc(200, oPrinter:PosY+100, 300, oPrinter:PosY+200)
oPrinter:Ellipse(400, oPrinter:PosY+100, 500, oPrinter:PosY+200)
oPrinter:FillRect(600, oPrinter:PosY+100, 700, oPrinter:PosY+200, RED)

// To print a barcode;
// Replace 'BCod39HN' with your own bar code font or any other font
// oPrinter:TextAtFont( oPrinter:MM_TO_POSX( 30 ) , oPrinter:MM_TO_POSY(60 ), '1234567890', 'BCod39HN', 24, 0 )
//
PrintBitMap( oPrinter, cBMPFile )

oPrinter:EndDoc()
ENDIF
oPrinter:Destroy()
ENDIF
RETURN(NIL)


procedure PrintBitMap( oPrn, cBitFile )
LOCAL oBMP

IF EMPTY( cBitFile )
*
ELSEIF !FILE( cBitFile )
Alert( cBitFile + ' not found ' )
ELSE
oBMP:= Win32BMP():new()
IF oBmp:loadFile( cBitFile )

oBmp:Draw( oPrn, { 200,200, 2000, 1500 } )

// Note: Can also use this method to print bitmap
// oBmp:Rect:= { 200,2000, 2000, 1500 }
// oPrn:DrawBitMap( oBmp )

ENDIF
oBMP:Destroy()
ENDIF
RETURN



Спасибо: 0 
Профиль





Пост N: 37
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 08.11.07 14:30. Заголовок: Петр Спасибо! Мног..


Петр

Спасибо! Многое прояснилось.

Спасибо: 0 
Профиль



Пост N: 1
Зарегистрирован: 12.11.07
ссылка на сообщение  Отправлено: 12.11.07 12:29. Заголовок: Прошу просветить нов..


Прошу просветить новенького, но я не нахожу ни в исходниках Harbour-а, ни xHarbour-а, папку Win32 и Win32Prn соответственно.
И ещё вопрос к знающим людям: в Harbour-е есть RddAds, а в xHarbor-е не нахожу. Раньше была. Или я чего-то не понимаю?

Спасибо: 0 
Профиль
Администратор




Пост N: 633
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.11.07 16:17. Заголовок: xHarbour: win32prn...


xHarbour:

win32prn.prg находится в каталоге source\rtl
rddads - в каталоге contrib\rdd_ads

Harbour:
Класс win32prn находится в каталоге contrib\win32
rddads - в каталоге contrib\rdd_ads


Спасибо: 0 
Профиль



Пост N: 2
Зарегистрирован: 12.11.07
ссылка на сообщение  Отправлено: 12.11.07 18:51. Заголовок: Спасибо, win32prn на..


Спасибо, win32prn нашел, а вот папочки Contrib ну нету в скачанном архиве xharbour-1.0.0-beta1.src. И в предыдущем релизе не было. И в библитеках я его не нахожу. Что не так делаю?

Спасибо: 0 
Профиль
Администратор




Пост N: 634
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 13.11.07 09:08. Заголовок: Раздел contrib наход..


Раздел contrib находится в отдельном архиве
Надо его скачать

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