2017-02-23 1 views
0

J'ai un document de plusieurs pages et j'utilise un NSView au format A4 pour afficher une seule page (une à la fois). J'utilise un bouton "avant/arrière" pour contrôler la sélection de la page. Ainsi, chaque fois que vous appuyez sur le bouton, la page correcte est redessinée dans NSView. Les dessins sont simples, donc ce n'est pas trop mal.Générer un PDF multi-pages à partir d'un NSView

Mais je ne sais pas comment je peux générer un document PDF multi-pages pour inclure toutes mes pages. Quelqu'un m'a donné un code pour convertir le contenu de NSView en PDF, j'utilise ce code pour générer des PDF d'une seule page, mais j'aime vraiment dessiner toutes les pages dans un seul PDF. Est-ce que quelqu'un peut me dire comment modifier le code suivant pour faire cela? Merci beaucoup.

//////

 var fn: String = fnBase 

    for i in 0...TotalPage - 1 { 

     // This will tell DrawRect to draw page i 
     view.displayedPage = i 

     let bounds = CGRect(origin: CGPointZero, size: view.frame.size) 
     let data: NSData = view.dataWithPDFInsideRect(bounds) 

     fn = fnBase + "\(i+1).pdf" 

     data.writeToFile(fn, atomically: true) 
    } 

Répondre

1

Ma solution:

import Quartz 

var data = documentView.dataWithPDF(inside: NSMakeRect(0.0, 0.0, width, height)) 
let pdfDocument = PDFDocument(data: data)! 

for i in 1..<pages { 
    data = documentView.dataWithPDF(inside: NSMakeRect(0.0, CGFloat(i) * height, width, height)) 
    let pdfPage = PDFPage(image: NSImage(data: data)!)! 
    pdfDocument.insert(pdfPage, at: pdfDocument.pageCount) 
} 
+0

Merci beaucoup. Tecalto. Cela a vraiment résolu mon problème. Très appréciée. Graham –