Platforms to show: All Mac Windows Linux Cross-Platform
/MacCocoa/PDFKit/Create Page with Page
Function:
Required plugins for this example: MBS MacBase Plugin, MBS Main Plugin, MBS MacCocoa Plugin, MBS MacControls 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
Function:
Required plugins for this example: MBS MacBase Plugin, MBS Main Plugin, MBS MacCocoa Plugin, MBS MacControls 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
Project "Create Page with Page.xojo_binary_project"
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:
The items on this page are in the following plugins: MBS MacCocoa Plugin.