DYMO-Printer SDK Wrapper for PureBasic
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

188 lines
4.4 KiB

; if you want to use your version of COMatePLUS include it before include DYMO
;#COMATE_NOINCLUDEATL = #True ; Works, if wanted
;XIncludeFile "COMatePLUS\COMatePLUS_Residents.pbi" ; Include this file too or use IncludePath
;XIncludeFile "COMatePLUS\COMatePLUS.pbi" ; Include COMatePLUS
; include DYMO.pbi !OR! DYMO_DLL.pbi
XIncludeFile "DYMO.pbi" ; use DYMO include (with COMatePLUS)
;XIncludeFile "DYMO_DLL.pbi" ; use DYMO32.dll / DYMO64.dll
EnableExplicit
OpenConsole("DYMO Example")
; Show Objects in current loaded .label
Procedure ShowObjects(VariableOnly = #True)
Protected NrObjects, Object.s, i
NrObjects = DYMO_ExamineObjects(VariableOnly) ; #False = we want to list all object, not only those who can be changed
If NrObjects > 0
For i = 0 To NrObjects - 1
Object = DYMO_NextObject()
PrintN(#TAB$ + "Object: " + Object + " - Value: " + DYMO_GetText(Object))
Next
Else
PrintN("NO Objects found")
EndIf
EndProcedure
Define i
; first of all we have to initialize some things
If Not DYMO_Init()
MessageRequester("Error", "DYMO-Objects couldn't be created!")
End
EndIf
; search and list printer(s)
Define NrPrinters, PName.s
NrPrinters = DYMO_ExaminePrinters()
PrintN("DYMO-Printer found: " + Str(NrPrinters))
; list all printers
If NrPrinters > 0
For i = 0 To NrPrinters - 1
PName = DYMO_NextPrinter()
Print(#TAB$ + "'" + PName + "'")
If DYMO_IsTwinTurboPrinter(PName)
PrintN(" (TwinTurbo)")
Else
PrintN("")
EndIf
Next
Else
PrintN("NO Printers found")
EndIf
PrintN(#LF$)
; select a printer
;DYMO_SelectPrinter("MyDYMOprinter")
; show selected printer
PrintN("Current selected printer: " + DYMO_GetCurrentPrinterName())
Print(#TAB$ + "Selected tray: ")
Select DYMO_GetCurrentPaperTray()
Case #DYMO_Tray_Unknown
PrintN("Unknown")
Case #DYMO_Tray_Right
PrintN("Right")
Case #DYMO_Tray_Left
PrintN("Left")
Case #DYMO_Tray_Auto
PrintN("Auto")
EndSelect
PrintN(#LF$)
; Open label file
#LabelFile = #PB_Compiler_FilePath + "Sample_101x54.label"
If DYMO_OpenLabel(#LabelFile)
PrintN("File <" + #LabelFile + "> loaded")
Else
PrintN("Can't load file <" + #LabelFile + ">")
EndIf
; Open label file from URL
#LabelURL = "file://" + #PB_Compiler_FilePath + "Sample_101x54.label"
If DYMO_OpenLabel(#LabelFile)
PrintN("File from URL <" + #LabelURL + "> loaded")
Else
PrintN("Can't load file from URL <" + #LabelURL + ">")
EndIf
; Show Objects in current loaded .label
ShowObjects(#False) ; #False = we want to list all object, not only those who can be changed
PrintN(#LF$)
; open from memory
Define *Buf, BufSize
*Buf = ?Label_Sample_89x28_Start
BufSize = ?Label_Sample_89x28_End - ?Label_Sample_89x28_Start
If DYMO_OpenMemory(*Buf, BufSize)
PrintN("new label from buffer loaded")
Else
PrintN("Can't load label from buffer")
EndIf
; Show Objects in current loaded .label
ShowObjects()
PrintN(#LF$)
; let's set some new values
DYMO_SetField("CODE39", "NEW39")
DYMO_SetField("TXT", "newText")
DYMO_SetField("EAN8", "8888888")
DYMO_SetField("ADR2", "newAddress2")
DYMO_SetAddress("new Address")
DYMO_SetAddress("new new Address2", 2)
DYMO_SetImageFile("LOGO", "Sample_Logo.bmp")
PrintN("Modified objects")
ShowObjects() ; show new values
PrintN(#LF$)
; print some labels ... uncomment DYMO_PrintLabel() to send to printer
PrintN("Print one label")
;DYMO_PrintLabel()
PrintN("Print one label using right tray")
;DYMO_PrintLabel(1, #DYMO_Tray_Right)
; create more modifications and send all together to printer, as one job
DYMO_SetPrintMode(#False) ; print faster but in lower Quality (for labels with barcode or graphic)
DYMO_StartPrintJob()
For i = 1 To 5
PrintN("Create label nr. " + Str(i))
DYMO_SetField("CODE39", Str(i))
DYMO_SetField("TXT", "more Text")
DYMO_SetField("EAN8", Str(i * 8))
DYMO_SetField("ADR2", "more Address2" + #LF$ + "new line")
DYMO_SetAddress("more Address" + #LF$ + "new line")
DYMO_PrintLabel(1, #DYMO_Tray_Auto, #True) ; Auto switch tray and show print dialog
Next
PrintN("Send job to printer")
;DYMO_StopPrintJob() ; send job to printer, uncomment to send to printer
PrintN(#LF$)
PrintN("Any key to close ...")
Repeat
Until Inkey()
; CleanUp
DYMO_Release()
; Include sample label
DataSection
Label_Sample_89x28_Start:
IncludeBinary "Sample_89x28.label"
Label_Sample_89x28_End:
EndDataSection
; ExecutableFormat = Console
; CursorPosition = 1
; FirstLine = 1
; Folding = -
; CompileSourceDirectory
; EnableCompileCount = 0
; EnableBuildCount = 0
; EnableExeConstant
; EnableUnicode

Impressum | Datenschutz