Crear un PDF paginado: Mac OS X
Estoy creando una aplicación para Mac (en Swift 3 usando Xcode 8, Beta 5) con la que el usuario puede tomar una nota larga y exportarla como PDF.
Para crear este PDF, estoy usando Cocoa'sdataWithPDF:
método con el siguiente 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
}
Esto funciona completamente, pero hay un problema: el PDF solo va en una página, lo que significa que la página se alarga mucho cuando hay mucho texto en la nota. ¿Cómo puedo forzar que el PDF vaya a tantas páginas de tamaño carta como sea necesario, ya sea mientras mi aplicación está exportando el PDF o inmediatamente después?