Platforms to show: All Mac Windows Linux Cross-Platform
/MacCocoa/PDFKit/Create Page with custom stamp annotation
Function:
Required plugins for this example: MBS MacBase Plugin, MBS MacControls Plugin, MBS Main Plugin, MBS MacCocoa Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /MacCocoa/PDFKit/Create Page with custom stamp annotation
Function:
Required plugins for this example: MBS MacBase Plugin, MBS MacControls Plugin, MBS Main Plugin, MBS MacCocoa Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /MacCocoa/PDFKit/Create Page with custom stamp annotation
Project "Create Page with custom stamp annotation.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
EventHandler Sub Open()
dim doc as new PDFDocumentMBS
dim page as new MyPDFPageMBS
// set page size
dim r as new NSRectMBS(0, 0, 595, 842) // DIN A4 paper
page.boundsForBox(page.kPDFDisplayBoxMediaBox) = r
dim m as new MyPDFAnnotationStampMBS(200, 300, 80, 100)
page.addAnnotation m
// add page
doc.insertPage(page, 0)
// write page
dim file as FolderItem = SpecialFolder.Desktop.Child("test.pdf")
if doc.write(file) then
file.Launch
quit
else
MsgBox "Failed to write file."
end if
End EventHandler
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)
transformContextForBox(box)
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
End Class
Class MyPDFAnnotationStampMBS Inherits PDFAnnotationStampMBS
EventHandler Function drawWithBox(box as integer, g as NSGraphicsMBS) As boolean
dim p as PDFPageMBS = me.page
if p<>nil then
p.transformContextForBox box
end if
// set clipping path
dim path as NSBezierPathMBS = NSBezierPathMBS.bezierPathWithRect(self.bounds)
g.setClip(path)
// draw a blue rectangle
dim b as NSRectMBS = me.bounds
g.setFillColor NSColorMBS.blueColor
g.fillRect b
g.setFillColor NSColorMBS.blackColor
g.drawAtPoint "Annotation", NSMakePointMBS(b.x+10, b.y + 20)
// return true to disable the default drawing from PDFKit
Return true
End EventHandler
End Class
End Project
See also:
The items on this page are in the following plugins: MBS MacCocoa Plugin.