2017-02-23 45 views
0

У меня многостраничный документ, и я использую NSView формата A4 для отображения одной страницы (по одному). Я использую кнопку «вперед/назад» для управления выбором страницы. Поэтому при каждом нажатии кнопки правильная страница перерисовывается в NSView. Чертежи просты, так что это не так уж плохо.Создание многостраничного PDF-файла из NSView

Но я не знаю, как я могу создать многостраничный 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. Это действительно решило мою проблему. Очень признателен. Грэхем –