Xojo Conferences
MBSSep2018MunichDE
XDCMay2019MiamiUSA

Platforms to show: All Mac Windows Linux Cross-Platform

/MacCG/Carbon Print Manager/Carbon Print Hello
Function:
Required plugins for this example: MBS MacCG Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /MacCG/Carbon Print Manager/Carbon Print Hello
This example is the version from Thu, 6th Apr 2016.
Project "Carbon Print Hello.rbp"
FileTypes
Filetype application/pdf
End FileTypes
Class Window1 Inherits Window
Control NormalTestButton Inherits PushButton
ControlInstance NormalTestButton Inherits PushButton
EventHandler Sub Action() dim pf as CPMPageFormatMBS dim ps as CPMPrintSessionMBS dim pt as CPMPrintSettingsMBS ps=NewCPMPrintSessionMBS if ps<>Nil then pf=NewCPMPageFormatMBS pt=NewCPMPrintSettingsMBS ps.DefaultPageFormat pf ps.DefaultPrintSettings pt if ps.PageSetupDialog(pf) then if ps.PrintDialog(pt,pf) then draw pf,ps,pt,true end if end if else MsgBox "We need Mac OS X 10.2!" end if End EventHandler
End Control
Control SilentTestButton Inherits PushButton
ControlInstance SilentTestButton Inherits PushButton
EventHandler Sub Action() dim pf as CPMPageFormatMBS dim ps as CPMPrintSessionMBS dim pt as CPMPrintSettingsMBS ps=NewCPMPrintSessionMBS if ps<>Nil then pf=NewCPMPageFormatMBS pt=NewCPMPrintSettingsMBS ps.DefaultPageFormat pf ps.DefaultPrintSettings pt draw pf,ps,pt,false else MsgBox "We need Mac OS X 10.2!" end if End EventHandler
End Control
Control TestPreviewButton Inherits PushButton
ControlInstance TestPreviewButton Inherits PushButton
EventHandler Sub Action() dim pf as CPMPageFormatMBS dim ps as CPMPrintSessionMBS dim pt as CPMPrintSettingsMBS dim f as FolderItem ps=NewCPMPrintSessionMBS if ps<>Nil then pf=NewCPMPageFormatMBS pt=NewCPMPrintSettingsMBS ps.DefaultPageFormat pf ps.DefaultPrintSettings pt f=SpecialFolder.Desktop.Child("Preview.pdf") ps.SetDestination pt,2,"application/pdf",f.URLPath if ps.LastError=0 then draw pf,ps,pt,false f.Launch else MsgBox "no preview? "+str(ps.LastError) end if else MsgBox "We need Mac OS X 10.2!" end if End EventHandler
End Control
Control TestFaxButton Inherits PushButton
ControlInstance TestFaxButton Inherits PushButton
EventHandler Sub Action() dim pf as CPMPageFormatMBS dim ps as CPMPrintSessionMBS dim pt as CPMPrintSettingsMBS ps=NewCPMPrintSessionMBS if ps<>Nil then pf=NewCPMPageFormatMBS pt=NewCPMPrintSettingsMBS ps.DefaultPageFormat pf ps.DefaultPrintSettings pt ps.SetDestination pt,3,"com.apple.documentformat.default", "" if ps.LastError=0 then draw pf,ps,pt,true else MsgBox "no fax? "+str(ps.LastError) end if else MsgBox "We need Mac OS X 10.2!" end if End EventHandler
End Control
Control StaticText1 Inherits Label
ControlInstance StaticText1 Inherits Label
End Control
Control ListBox1 Inherits ListBox
ControlInstance ListBox1 Inherits ListBox
End Control
Control StaticText2 Inherits Label
ControlInstance StaticText2 Inherits Label
End Control
Control ListBox2 Inherits ListBox
ControlInstance ListBox2 Inherits ListBox
End Control
Control PrintPDFButton Inherits PushButton
ControlInstance PrintPDFButton Inherits PushButton
EventHandler Sub Action() dim f as FolderItem dim pdf as CGPDFDocumentMBS dim pf as CPMPageFormatMBS dim ps as CPMPrintSessionMBS dim pt as CPMPrintSettingsMBS dim pr as CPMRectMBS dim cr as CGRectMBS dim g as CGContextMBS f=GetOpenFolderItem("Application/pdf") if f<>nil then pdf=f.OpenAsCGPDFDocumentMBS if pdf<>nil then ps=NewCPMPrintSessionMBS if ps<>Nil then pf=NewCPMPageFormatMBS pt=NewCPMPrintSettingsMBS ps.DefaultPageFormat pf ps.DefaultPrintSettings pt f=SpecialFolder.Desktop.Child("print to pdf output.pdf") ps.SetDestination pt,2,"application/pdf", f.URLPath ps.BeginDocumentNoDialog pt,pf pr=pf.AdjustedPageSize cr=CGMakeRectMBS(pr.left,pr.top,pr.Width,pr.Height) ps.BeginPageNoDialog pf,pr g=ps.PageContext g.DrawCGPDFDocument pdf,cr,1 g.SelectFont "Helvetica",18,1 g.SetRGBFillColor 0,0,0,1 g.ShowTextAtPoint "The first page of the pdf file.",20,20 g.FillPath g=nil ps.EndPageNoDialog ps.EndDocumentNoDialog f.Launch else MsgBox "We need Mac OS X 10.2!" end if else MsgBox "Can't open PDF file named """+f.name+"""." end if end if End EventHandler
End Control
EventHandler Sub Open() dim ps as CPMPrintSessionMBS dim pc as CPMPrinterMBS dim ar() as string dim i,index,c as integer dim r as CPMResolutionMBS ListBox1.DeleteAllRows ListBox2.DeleteAllRows ps=NewCPMPrintSessionMBS if ps<>nil then ps.CreatePrinterList(ar,index,pc) for each s as string in ar ListBox1.AddRow s if i=index then ListBox1.CellBold(index,0)=true end if next end if if pc<>nil then c=pc.ResolutionCount for i=1 to c r=pc.IndexedPrinterResolution(i) if r<>nil then ListBox2.AddRow str(r.Horizontal)+" x "+str(r.Vertical) end if next end if End EventHandler
Sub Draw(pf as CPMPageFormatMBS, ps as CPMPrintSessionMBS, pt as CPMPrintSettingsMBS, dialog as boolean) dim g as CGContextMBS dim r as CPMRectMBS dim cr as CGRectMBS dim i as integer r=pf.AdjustedPageSize if dialog then ps.BeginDocument(pt,pf) else ps.BeginDocumentNoDialog(pt,pf) end if pt.LastPage=2 for i=1 to 2 if dialog then ps.BeginPage(pf,nil) else ps.BeginPageNoDialog(pf,nil) end if g=ps.PageContext if ps.LastError<>0 then MsgBox "PageContext lasterror: "+str(ps.LastError) end if if g<>Nil then cr=CGMakeRectMBS(0,0,r.width,r.height) g.SetGrayFillColor 0.5,0.5 g.SetGrayStrokeColor 0.5,0.5 g.FillRect cr cr=CGMakeRectMBS(100,100,200,200) g.SetRGBFillColor 1,0,0,0.5 cr.Left=20 cr.Top=10 cr.Width=150 cr.Height=200 g.FillRect cr g.SetRGBFillColor 0,1,0,0.5 cr.Left=120 cr.Top=10 cr.Width=150 cr.Height=200 g.FillRect cr g.SetRGBFillColor 0.0, 0.7, 0.9, 1.0 g.SelectFont "Helvetica", 36.0, 1 g.ShowTextAtPoint "Hello World on page "+str(i),20,r.height/2 g=nil else MsgBox "g is nil!?" end if if dialog then ps.EndPage else ps.EndPageNoDialog end if next if dialog then ps.EndDocument else ps.EndDocumentNoDialog end if End Sub
End Class
MenuBar Menu
MenuItem UntitledMenu3 = ""
MenuItem UntitledMenu2 = "File"
MenuItem FileQuit = "Quit"
MenuItem UntitledMenu0 = "Edit"
MenuItem EditUndo = "Undo"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "Cut"
MenuItem EditCopy = "Copy"
MenuItem EditPaste = "Paste"
MenuItem EditClear = "Clear"
End MenuBar
Class App Inherits Application
End Class
End Project

See also:

Feedback, Comments & Corrections

The items on this page are in the following plugins: MBS MacCG Plugin.





Links
MBS Xojo Chart Plugins