Xojo Conferences

Platforms to show: All Mac Windows Linux Cross-Platform

FAQ.How to rotate a PDF page with CoreGraphics?
Answer: This code opens a PDF and draws the first page into a new PDF with 90° rotation.
// Rotate a PDF page

// our files
dim sourcefile as FolderItem = SpecialFolder.Desktop.Child("test.pdf")
dim destfile as FolderItem = SpecialFolder.Desktop.Child("rotated.pdf")

// open PDF
dim pdf as CGPDFDocumentMBS = sourcefile.OpenAsCGPDFDocumentMBS

// query media size of first page
dim r as CGRectMBS = pdf.MediaBox(1)

// create new PDF
dim c as CGContextMBS = destfile.NewCGPDFDocumentMBS(r,"title","Author","Creator")

// create rotated rectangle
dim nr as new CGRectMBS(0,0,r.Height,r.Width)

// create new page
c.BeginPage nr

const pi = 3.14159265

// rotate by 90°
c.RotateCTM pi*1.5

// fix origin
c.TranslateCTM -r.width,0

// draw PDF
c.DrawCGPDFDocument pdf,r,1

// cleanup

c = nil

// show in PDF viewer
Notes: This code is Mac only as it needs CoreGraphics.

Feedback, Comments & Corrections

The biggest plugin in space...

MBS FileMaker blog