Re: Printer_Lib
Posted: Thu Oct 10, 2013 5:57 pm
Print_Image() should be after Print_StartPrinting()
Print_Image() should be after Print_StartPrinting()
Code: Select all
Print_DrawText(25, 62, 175, 100, InterventionTxt)
Do you mean the distance between the paper margins?But how would I get the printing width To define the box?
Code: Select all
Enumeration
#Logo
EndEnumeration
Define *RX = AllocateMemory(SizeOf(long))
Define *RY = AllocateMemory(SizeOf(long))
Define *RW = AllocateMemory(SizeOf(long))
Define *RH = AllocateMemory(SizeOf(long))
sInterventionTxt.s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam molestie commodo magna, id rutrum enim suscipit ac. Nunc tempor faucibus magna, vel volutpat tellus luctus et. Nam quis diam non nunc sagittis cursus non nec ante. Suspendisse egestas magna ac diam pulvinar eu iaculis eros mattis. Sed scelerisque molestie felis, in facilisis tellus varius quis. Nam dictum dignissim auctor. Nam dolor dui, commodo ut iaculis ut, faucibus pellentesque turpis. Etiam sagittis lacinia eros, et sollicitudin quam dictum ut. Fusce sagittis porttitor nunc, a tempor eros iaculis sit amet. Aliquam erat volutpat. Duis nisi magna, hendrerit at consectetur nec, placerat sit amet lectus. Etiam a orci et nibh porttitor suscipit. Quisque quis congue ligula. In sed augue dolor. Maecenas malesuada quam tempus nulla sagittis nec tincidunt velit eleifend. Proin auctor, felis ut rutrum facilisis, odio odio pretium ipsum, vitae hendrerit nisi sem eu leo. Nunc tincidunt elit vitae erat commodo euismod. Aliquam id enim ante. Sed mattis felis non urna molestie mollis. Maecenas faucibus interdum dui non dapibus. Integer ut sapien dui, sed pretium libero. Vestibulum condimentum, diam nec ullamcorper bibendum, metus purus commodo turpis, vel posuere erat metus id justo. Quisque lectus mauris, sodales at semper ut, feugiat sed mauris. Maecenas aliquet eros et lectus gravida ac tristique mauris adipiscing. Fusce quis justo ac leo pharetra feugiat. Pellentesque suscipit, urna vel semper tempor, nunc dui volutpat enim, nec facilisis est est non orci. Praesent vestibulum ultrices lectus ut molestie. Integer non dolor dui. Vestibulum varius dolor nec arcu ultricies auctor porta orci sollicitudin. Sed lacus lectus, semper eget sodales a, lacinia ac justo."
CreateImage(#Logo,533,253,24)
If StartDrawing(ImageOutput(#Logo))
Box(0,0,533,253,RGB(056,180,074))
StopDrawing()
EndIf
sFile.s = Str(Date())
sIrsNbr.s = "000001/2013"
sIRSheader.s = "Relatório de Assistência nº: " + sIrsNbr
sOPT.s = "ORIENTATION = " + Str(#DMORIENT_PORTRAIT) + ", "
sOPT + "PAPERSIZE = " + Str(#DMPAPER_A4)
;UsePNGImageDecoder()
;LoadImage(#logo, "AFVCR - logo IRS.png")
Print_SetDebug(#True)
If Print_OpenPrinter(Print_GetDefaultPrinter(), sOPT)
Print_SetUnits(#PRINT_MM)
Debug Print_GetDeviceCaps(#HORZSIZE) ;Paper Width in mm
Debug Print_GetDeviceCaps(#VERTSIZE) ;Paper Height in mm
Debug Print_GetDeviceCaps(#PHYSICALWIDTH) ;Paper Width in printer units (mm 10ths)
Debug Print_GetDeviceCaps(#PHYSICALHEIGHT) ;Paper Height in printer units (mm 10ths)
Debug Print_GetDeviceCaps(#PHYSICALOFFSETX) ;Paper Left Margin in printer units (mm 10ths)
Debug Print_GetDeviceCaps(#PHYSICALOFFSETY) ;Paper Top Margin in printer units (mm 10ths)
Print_StartPrinting(sFile)
Print_Image(#Logo, 20, 10, 141, 67)
Print_Font("trebuchet ms", 12, #PB_Font_Bold)
Print_SetTextColor(#Black)
;Calc Rectangle to fit text
Print_DrawText(25, 62, 175, 0, sInterventionTxt, #DT_WORDBREAK|#DT_CALCRECT, *RX, *RY, *RW, *RH)
;Print the text in the calculated rectangle
Print_DrawText(25, 62, 175, PeekF(*RH), sInterventionTxt, #DT_WORDBREAK)
Print_SetLineColor(#Red) ;<--
Print_Box(25, 62, 175,PeekF(*RH)) ;<-- Added lines to see that text is good fit in box
Print_Text(100, 10, sIRSheader)
Print_Font("trebuchet ms", 8)
Print_Text(20, 30, sIRSheader)
Print_Line(20, 40, 180, 0)
Print_StopPrinting()
Else
MessageRequester("", "no printer available")
EndIf