2017-02-23 103 views
0

我有一個多頁文檔,並且我使用A4大小的NSView來顯示一個頁面(一次一個)。我使用「向前/向後」按鈕來控制頁面選擇。所以每次按下按鈕,都會在NSView中重新繪製正確的頁面。圖紙很簡單,所以不會太差。從NSView生成多頁PDF

但我不知道如何生成一個多頁PDF文件來包含我所有的頁面。有人給我一些代碼將NSView的內容轉換爲PDF,我使用該代碼來生成單頁PDF,但我真的很喜歡將所有頁面繪製成單個PDF。

有人能告訴我如何修改下面的代碼來做到這一點?非常感謝。

//////

 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) 
    } 

回答

1

我的解決方案:

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

非常感謝。 Tecalto。這真的解決了我的問題。非常感激。格雷厄姆 –