Crie um PDF paginado - Mac OS X
Estou criando um aplicativo para Mac (no Swift 3 usando o Xcode 8, Beta 5) com o qual o usuário pode fazer uma anotação longa e exportá-la como PDF.
Para criar este PDF, estou usando o Cocoa'sdataWithPDF:
método com o seguinte código:
do {
// define bounds of PDF as the note text view
let rect: NSRect = self.noteTextView.bounds
// create the file path for the PDF
if let dir = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.allDomainsMask, true).first {
// add the note title to path
let path = NSURL(fileURLWithPath: dir).appendingPathComponent("ExportedNote.pdf")
// Create a PDF of the noteTextView and write it to the created filepath
try self.noteTextView.dataWithPDF(inside: rect).write(to: path!)
} else {
print("Path format incorrect.") // never happens to me
}
} catch _ {
print("something went wrong.") // never happens to me
}
Isso funciona completamente, mas há um problema: o PDF fica em apenas uma página, o que significa que a página fica realmente longa quando há muito texto na anotação. Como forçar o PDF a entrar em quantas páginas de tamanho carta precisar, enquanto meu aplicativo está exportando o PDF ou logo após?