Xojo Conferences

Platforms to show: All Mac Windows Linux Cross-Platform

/MacCocoa/PDFKit/Create Page with Page
Required plugins for this example: MBS MacBase Plugin, MBS MacCocoa Plugin, MBS MacControls Plugin, MBS Main Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /MacCocoa/PDFKit/Create Page with Page
This example is the version from Thu, 6th Apr 2016.
Project "Create Page with Page.rbp"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
EventHandler Sub Open() // open template PDF, so we can draw a page from there in our new page dim templateFile as FolderItem = FindFile("template.pdf") dim templateDoc as new PDFDocumentMBS(templateFile) dim templatePage as PDFPageMBS = templateDoc.pageAtIndex(0) // now create new PDF dim doc as new PDFDocumentMBS dim page as new MyPDFPageMBS page.templatePage = templatePage // set page size dim r as new NSRectMBS(0, 0, 595, 842) // DIN A4 paper page.boundsForBox(page.kPDFDisplayBoxMediaBox) = r // add page doc.insertPage(page, 0) // write page dim file as FolderItem = SpecialFolder.Desktop.Child("test.pdf") if doc.write(file) then file.Launch else MsgBox "Failed to write file." end if End EventHandler
Function FindFile(name as string) As FolderItem // Look for file in parent folders from executable on dim parent as FolderItem = app.ExecutableFile.Parent while parent<>Nil dim file as FolderItem = parent.Child(name) if file<>Nil and file.Exists then Return file end if parent = parent.Parent wend End Function
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
Class MyPDFPageMBS Inherits PDFPageMBS
EventHandler Sub drawRect(box as integer, g as NSGraphicsMBS) // draw old page // scale it down and move to middle of page g.saveGraphicsState dim r as NSRectMBS = self.boundsForBox(0) g.ScaleCoordinates 0.5, 0.5 g.TranslateCoordinates r.Width/4, r.Height/4 templatePage.draw(g) g.restoreGraphicsState // and something on top g.SetColorRGB 1.0, 0.0, 0.0, 1.0 g.fillRect 100, 100, 100, 100 dim d as new Dictionary d.Value(NSAttributedStringMBS.NSFontAttributeName) = NSFontMBS.fontWithName("Zapfino", 50) g.drawAtPoint("Hello World", new NSPointMBS(100, 600), d) g.drawAtPoint("Hello World", new NSPointMBS(100, 500)) End EventHandler
Property templatePage As PDFPageMBS
End Class
End Project

See also:

Feedback, Comments & Corrections

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

MBS FileMaker tutorial videos